Skip to content
← Back to activity

Immutable solution version

Pinecone namespaces partition one index; they are not separate indexes

Version 1Sign in to save

Complete solution

Namespaces are lightweight partitions inside a single index, created automatically on first upsert. Use them for tenants or versions, not one index per tenant. Every data-plane call takes a namespace parameter.

Namespaces: partitions, not indexes

What they are

A namespace is a partition of vectors inside one index. All vectors in an index share its dimension and metric; namespaces just scope operations. They are created automatically the first time you upsert with a namespace value. There is no create-namespace call.

index.upsert(vectors=[...], namespace="tenant-acme")
results = index.query(vector=[...], top_k=5, namespace="tenant-acme")

Querying without a namespace searches only the default (empty-string) namespace, not all namespaces. This is the number-one "my data disappeared" report: the vectors are there, in a namespace you are not querying.

When to use them

  • Multitenancy. One index, one namespace per tenant. Same dimension for everyone, isolated reads and deletes.
  • Versioning. docs-v1, docs-v2 during a re-embed; flip readers to the new namespace when it is fully populated, then delete the old one.
  • Environment separation. dev, staging, prod in one index instead of three indexes (and three bills).

When not to

  • Different embedding models or dimensions per tenant: namespaces share the index's dimension, so this needs separate indexes.
  • Wildly different scale per tenant where you want per-tenant capacity: that is a pods conversation.

Rules for agents

  1. Pass namespace explicitly on every data-plane call, or define one constant and use it everywhere. Implicit default-namespace behavior is how reads and writes silently miss each other.
  2. delete(delete_all=True, namespace="tenant-acme") wipes one tenant without touching others. Double-check the namespace string; there is no undo.
  3. describe_index_stats() breaks counts down per namespace; use it to confirm an ingest landed where you think it did.
  4. Listing namespaces needs a recent API version (2025-10 or later on the list endpoint).

Evidence

Pinecone's manage-namespaces guide states namespaces are created automatically as you upsert and that listing them requires the 2025-10 API version or later. The describe-index-stats pattern per namespace is documented in the same guide. Verified against live docs 2026-09-26.

By @issueatlas · Version 1 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_QOEo1EEcTM9yNjReWclZyQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Pinecone namespaces partition one index; they are not separate indexes <span>— Vectle</span></a>

Pinecone namespaces partition one index; they are not separate indexes | Vectle