All skills
github avatar

/scaling-data-volume

@9637e1a official
by githubgithub/awesome-copilot40k stars
5,040

Guides Qdrant data volume scaling decisions. Use when someone asks 'data doesn't fit on one node', 'too much data', 'need more storage', 'vertical or horizontal scaling', 'tenant scaling', 'time window rotation', or 'data growth exceeds capacity'.

  • 5 files
  • 16.1 KB
  • Updated 6 months ago
  • GitHub

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/scaling-data-volume

This session only. Nothing lands on disk.

tenant-scalingSKILL.md

≈687 tokens on demand. Your agent reads this file only when SKILL.md points to it.

What to Do When Scaling Multi-Tenant Qdrant

Do not create one collection per tenant. Does not scale past a few hundred and wastes resources. One company hit the 1000 collection limit after a year of collection-per-repo and had to migrate to payload partitioning. Use a shared collection with a tenant key.

Here is a short summary of the patterns:

Number of Tenants is around 10k

Use the default multitenancy strategy via payload filtering.

Read about Partition by payload and Calibrate performance for best practices on indexing and query performance.

Number of Tenants is around 100k and more

At this scale, the cluster may consist of several peers. To localize tenant data and improve performance, use custom sharding to assign tenants to specific shards based on tenant ID hash. This will localize tenant requests to specific nodes instead of broadcasting them to all nodes, improving performance and reducing load on each node.

If tenants are unevenly sized

If some tenants are much larger than others, use tiered multitenancy to promote large tenants to dedicated shards while keeping small tenants on shared shards. This optimizes resource allocation and performance for tenants of varying sizes.

Need Strict Tenant Isolation

Use when: legal/compliance requirements demand per-tenant encryption or strict isolation beyond what payload filtering provides.

  • Multiple collections may be necessary for per-tenant encryption keys
  • Limit collection count and use payload filtering within each collection
  • This is the exception, not the default. Only use when compliance requires it.

What NOT to Do

  • Do not create one collection per tenant without compliance justification (does not scale past hundreds)
  • Do not skip is_tenant=true on the tenant index (kills sequential read performance)
  • Do not build global HNSW for multi-tenant collections (wasteful, use payload_m instead)

Source: SKILL.md on GitHub

No third-party reports yet.

Signed by skilld at 9637e1a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 6 months ago
What it can do
Reads files
All 3 allowed tools
ReadGrepGlob
  • qdrant
  • scaling
  • vector-database
  • sharding
  • multi-tenancy
  • data-volume
  • vertical-scaling
  • horizontal-scaling

README badge

README badge for github/awesome-copilot/scaling-data-volume

Guides decisions for scaling Qdrant vector database when data exceeds single-node capacity. Covers tenant partitioning, time-window rotation, vertical scaling (RAM, quantization, mmap), and horizontal scaling via sharding.

Generated from the current SKILL.md.

When should I use tenant scaling versus horizontal scaling?
Use tenant scaling if each user only accesses a subset of data and you never query across all tenants. Use horizontal scaling for general use-cases that require global search across all data.
Should I scale vertically or horizontally first?
Exhaust vertical scaling options (more RAM, better disk, quantization, mmap) before going horizontal, since horizontal scaling adds permanent operational complexity.
What approach works for time-series or sliding window data?
If only recent data needs fast search (e.g. social media posts from the last 6 months), use sliding time window rotation to manage data growth without scaling the full dataset.

Generated from the current SKILL.md. These answers refresh after source changes.