Node types
A node is the basic unit of compute and cache storage capacity for a dedicated read nodes index. Each shard runs on one node, so the node type you choose determines the performance characteristics and cost of your index. The total number of nodes in your index is calculated asshards × replicas. For example, an index with two shards and two replicas uses four nodes.
There are two node types: b1 and t1. Both are suitable for large-scale and demanding workloads, but they differ in processing power and memory capacity, and they cache different data.
Consider using
t1 nodes if your performance requirements aren’t met by b1 nodes, or if t1 nodes are more cost-effective than b1 nodes for your workload.
When choosing a node type, remember that:
- Both types of nodes provide 250 GB of storage per shard. The difference is in compute and memory, which affects query performance.
- Because
t1nodes cache more data in memory thanb1nodes, an index may require more shards ont1than onb1(for the same data). - You can change node types after creating your index.
Shards
Shards determine the storage capacity of an index. Each shard provides 250 GB of storage, and data is split across all the shards in an index. To respond to a query, the index gathers data from all shards as needed. To determine how many shards you need, calculate your index size and then calculate the number of shards.Replicas
Replicas multiply the compute resources and data of an index, allowing for higher query throughput and availability. Each replica is a complete copy of your index data and has its own dedicated compute resources.- Throughput scales approximately linearly with replicas. For example, if one replica handles 50 QPS at your target latency, two replicas should handle approximately 100 QPS.
- You can scale replicas up or down with no downtime using the API. See Add or remove replicas.
- For high availability, use at least two replicas. The recommended approach is to allocate
n+1replicas wherenis your minimum for throughput. Pinecone distributes replicas across availability zones (up to three per region), so if one zone fails, remaining replicas continue serving queries.
Actual performance varies based on workload characteristics (query complexity, vector dimensions, metadata characteristics), metadata filter selectivity, and node type (
b1 vs t1). Always test with your specific workload.Index fullness
Index fullness measures how much of an index’s allocated capacity is in use. Dedicated read nodes cache all of your data in memory and on local SSD, so fullness tracks both dimensions:memoryFullness: how full the memory cache is.storageFullness: how full the local SSD is.indexFullness: the greater of the two, on a scale of 0 to 1.
b1 nodes holding many low-dimension vectors, or t1 nodes holding high-dimension vectors and lots of metadata. When indexFullness reaches 1.0 (100%), writes are blocked while reads continue.
To check these values on demand, see Monitor index fullness. To track them over time, use the pinecone_db_index_fullness metrics via the Prometheus or Datadog integration. To decide when to add capacity, see Add or remove shards.