Back to Skills

qdrant-horizontal-scaling

qdrant
Updated 5 days ago
154
18
154
View on GitHub
Designdesigndata

About

This skill helps developers diagnose and implement Qdrant horizontal scaling strategies when data exceeds single-node capacity. It provides guidance on shard configuration, node counts, and replication for fault tolerance and performance. Use it when planning capacity expansion, adding nodes, or optimizing distributed Qdrant deployments.

Quick Install

Claude Code

Recommended
Primary
npx skills add qdrant/skills -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/qdrant/skills
Git CloneAlternative
git clone https://github.com/qdrant/skills.git ~/.claude/skills/qdrant-horizontal-scaling

Copy and paste this command in Claude Code to install this skill

Documentation

What to Do When Qdrant Needs More Capacity

Vertical first: simpler operations, no network overhead, good up to ~100M vectors per node depending on dimensions and quantization. Horizontal when: data exceeds single node capacity, need fault tolerance, need to isolate tenants, or IOPS-bound (more nodes = more independent IOPS).

Most basic distributed configuration

  • 3 nodes, 3 shards with replication_factor: 2 for zero-downtime scaling

Minimum of 3 nodes is important for consensus and fault tolerance. With 3 nodes, you can lose 1 node without downtime. With 2 nodes, losing 1 node causes downtime for collection operations. Replication factor of 2 means each shard has 1 replica, so you have 2 copies of data. This allows for zero-downtime scaling and maintenance. With replication_factor: 1, zero-downtime is not guaranteed even for point-level operations, and cluster maintenance requires downtime.

Choosing number of shards

Shards are the unit of data distribution. More shards allows more nodes and better distribution, but adds overhead. Fewer shards reduces overhead but limits horizontal scaling.

For cluster of 3-6 nodes the recommended shard count is 6-12. This allows for 2-4 shards per node, which balances distribution and overhead.

Changing number of shards

Use when: shard count isn't evenly divisible by node count, causing uneven distribution, or need to rebalance.

Resharding is expensive and time-consuming, it should be used as a last resort if regular data distribution is not possible. Resharding is designed to be transparent for user operations, updates and searches should still work during resharding with some small performance impact.

But resharding operation itself is time-consuming and requires to move large amounts of data between nodes.

  • Available in Qdrant Cloud Resharding
  • Resharding is not available for self-hosted deployments.

Better alternatives: over-provision shards initially, or spin up new cluster with correct config and migrate data.

What NOT to Do

  • Do not jump to horizontal before exhausting vertical (adds complexity for no gain)
  • Do not set shard_number that isn't a multiple of node count (uneven distribution)
  • Do not use replication_factor: 1 in production if you need fault tolerance
  • Do not add nodes without rebalancing shards (use shard move API to redistribute)
  • Do not scale down RAM without load testing (cache eviction causes days-long latency incidents)
  • Do not hit the collection limit by using one collection per tenant (use payload partitioning)

GitHub Repository

qdrant/skills
Path: skills/qdrant-scaling/scaling-data-volume/horizontal-scaling
0
agent-skillsai-agentsclaude-codecodexcursorembeddings

Related Skills

executing-plans

Design

Use the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.

View skill

requesting-code-review

Design

This skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.

View skill

connect-mcp-server

Design

This skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.

View skill

web-cli-teleport

Design

This skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.

View skill