Skip to content

Build Independently confirmed2 publishers 3 min read Published

Databricks' Lakebase Search moves Postgres vector indexes from RAM into object storage

Databricks made Lakebase Search generally available, pairing BM25 with a Postgres vector index it says runs 4 times cheaper than pgvector at 100M vectors. The vector index lives in object storage behind a cache, so large agent corpora no longer need RAM sized to the whole index.

The Engineer · Build desk

Send a correction

Illustration accompanying Databricks' Lakebase Search moves Postgres vector indexes from RAM into object storage
Generated illustration

What happened

  • Lakebase Search ships as two Postgres extensions, lakebase_vector for approximate nearest-neighbor search and lakebase_text for BM25 full-text search, on AWS and Azure.
  • Existing pgvector users switch by adding a lakebase_ann index while keeping the same vector types, distance operators and query syntax, with no data migration.
  • lakebase_text adds a lakebase_bm25 index that keeps standard Postgres tsvector types and operators while adding corpus-wide BM25 ranking and top-K pushdown.
  • Databricks says customer Conexiom runs BM25 hybrid search on over 100 million rows using half the compute of its previous pgvector setup.
  • Neon pairs the extensions with TypeScript Functions for ingestion, an OpenAI-compatible embeddings endpoint in AI Gateway, and a trigger that indexes files uploaded to Object Storage.

Why it matters

  • Who has to decide decision Trying lakebase_vector on an existing pgvector table costs an index build and a recall check on real queries; the schema and application code stay as they are.
  • What it costs cost Agent databases that idle between bursts no longer have to keep always-on compute sized to the whole vector index, since the index persists in object storage through suspends.
  • What it limits constraint The fourfold cost claim is a 100-million-vector result against an unnamed pgvector vendor, so teams whose corpora fit in RAM have little evidence it applies to them.
  • What's now possible capability An agent's retrieval tool can pull semantic and exact-term matches from the same Postgres that holds operational data, without an ETL pipeline into a separate search engine.

Databricks starts its case with pgvector's memory model. By its count, a 768-dimension float32 vector needs about 3.3 KB once HNSW graph links and Postgres overhead are included, so 100 million rows need roughly 330 GB of RAM to keep the index resident [11]. When the index spills to disk, Databricks says, queries slow by 10x to 50x [24]. HNSW has no global rebalancing, so restoring search quality takes a full REINDEX that locks the table and blocks writes [12]. Each query also runs in one backend process, and the index scan is never parallelized [13]. Databricks is grading an index it now competes with, though pgvector is also the most installed extension on its own platform [15].

The design follows from where Lakebase keeps data. Durable data sits in object storage, with RAM and local NVMe acting as caches in front of it. On that layout, Databricks writes, HNSW search means a series of random object store reads [5]. lakebase_vector uses hierarchical IVF to narrow each search to a small set of clusters, and RaBitQ quantization to compress vectors so more of the index fits in the cache layers [3]. The durable index stays in object storage [2]. I think IVF is the right choice for a database built this way. A cache in front of object storage handles a few cluster reads better than a chain of random hops through a graph.

Scale to zero is the piece of engineering I would credit first. When compute suspends, the index stays in object storage, and returning traffic reconnects to the same index instead of rebuilding it [4]. By Databricks' own figure, a pgvector index build that spills to disk takes almost 50 hours on a standard cloud instance [25].

The headline benchmark is a VectorDBBench run that Neon says used LAION-100M [20]. Databricks reports twice the throughput of the next best system, and sets the fourfold cost saving against "a cloud Postgres vendor using pgvector", before any autoscaling savings [19]. It reports P99 latency of 71 milliseconds at 97% recall [21]. That leaves about 3 in every 100 true nearest neighbors unreturned [17].

For the result to transfer, a corpus has to be large enough that an HNSW index would spill out of RAM. The recall target has to sit near 97%. Queries also have to keep hitting a working set small enough to stay cached. Databricks' per-vector figure puts a 10-million-row index near 33 GB [18], and at that size I'd expect pgvector's spill penalty to matter much less.

Hybrid search is plain SQL. An application combines vector and keyword results in one query [10]. Neon's example wraps that query in a Function that the agent calls as one tool, and the call returns ranked passages with their sources [16]. The Neon post does not say how the two rankings are merged into a single order.

Jordan Voves, an AI/ML architect at Conexiom, said in the Databricks post: "Lakebase Search gives us a whole new level of scalability over pgvector, and unlocks BM25 in the same serverless database. We use Lakebase to connect data to our agents at scale." [23]

What to watch

  • An independent VectorDBBench run that names the pgvector vendor and instance sizes behind Databricks' 4x cost figure.
  • Documentation of how lakebase_vector and lakebase_text scores are fused into one ranking in hybrid queries.
  • Recall and latency figures for lakebase_vector at corpus sizes well under 100 million vectors, where pgvector's index fits in memory.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence40
Adoption25
Hype gap+35
Incentives90
Confidence50
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Lakebase Search brings search to Lakebase Postgres via two extensions, lakebase_vector (scalable approximate nearest neighbor search) and lakebase_text (BM25 full-text search), both generally available on AWS and Azure.

    Reported Supported Source: Databricks blogView cited source
  2. [2]

    lakebase_vector's durable index lives in object storage, while RAM and local storage cache frequently accessed data.

    Reported Supported Source: Neon blogView cited source
  3. [3]

    lakebase_vector combines hierarchical IVF with RaBitQ quantization; IVF narrows the search to a small set of relevant clusters, while RaBitQ compresses vectors so more index data fits in the faster cache layers.

    Reported Supported Source: Neon blogView cited source
  4. [4]

    When compute suspends, the index stays in object storage; when traffic returns, compute reconnects to the same index instead of rebuilding it.

    Reported Supported Source: Neon blogView cited source
  5. [5]

    Lakebase Postgres keeps durable data in cloud object storage with RAM and local NVMe as caches; with this architecture, HNSW search means a series of random object store reads.

    Reported Supported Source: Databricks blogView cited source
  6. [6]

    Because the durable index lives in object storage and compute scales independently, users do not have to size always-on compute around the full index.

    Reported Supported Source: Neon blogView cited source
  7. [7]

    Lakebase Search gives agents vector and BM25 search inside Lakebase Postgres without moving data to a separate search system.

    Reported Supported Source: Neon blogView cited source
  8. [8]

    Switching from pgvector to lakebase_vector does not require migrating data or changing queries; users add a lakebase_ann index while keeping the same vector types, distance operators, and query syntax.

    Reported Supported Source: Neon blogView cited source
  9. [9]

    lakebase_text adds the lakebase_bm25 index type, preserving standard Postgres tsvector types and query operators while adding corpus-wide BM25 ranking and top-K pushdown.

    Reported Supported Source: Neon blogView cited source
  10. [10]

    Applications can combine vector and keyword results in one SQL query.

    Reported Supported Source: Neon blogView cited source
  11. [11]

    A 768-dimensional float32 vector requires roughly 3.3 KB of memory after accounting for HNSW graph links and Postgres overhead; at 100 million rows, about 330 GB of RAM is needed to keep a pgvector index resident.

    Reported Supported Source: Databricks blogView cited source
  12. [12]

    Because HNSW lacks global rebalancing, restoring search quality requires a full REINDEX, which locks the table and blocks production writes.

    Reported Supported Source: Databricks blogView cited source
  13. [13]

    Each pgvector query runs on a single Postgres backend process, so the HNSW index scan is never parallelized.

    Reported Supported Source: Databricks blogView cited source
  14. [14]

    A TypeScript Neon Function can parse, chunk, embed and index data; AI Gateway provides an OpenAI-compatible embeddings endpoint; a storage_object_created trigger invokes the ingestion Function when files are uploaded to Object Storage.

    Reported Supported Source: Neon blogView cited source
  15. [15]

    pgvector is the most installed extension in Lakebase Postgres.

    Reported Supported Source: Databricks blogView cited source
  16. [16]

    A Neon Function can wrap the hybrid query and expose it to an agent as one tool call that runs vector and keyword search in Postgres and returns ranked passages with their sources.

    Reported Supported Source: Neon blogView cited source
  17. [17]

    At 97% recall, roughly 3 of every 100 true nearest neighbors are not returned.

    Derived Supported
  18. [18]

    Using Databricks' figure of about 3.3 KB per 768-dimension vector, a 10-million-row pgvector index needs roughly 33 GB of RAM.

    Derived Supported
  19. [19]

    On the VectorDBBench 100M benchmark, lakebase_vector delivers twice the throughput of the next best system and is 4 times cheaper than a cloud Postgres vendor using pgvector, before accounting for additional savings from autoscaling.

    Reported Insufficient Source: Databricks blog, vendor-run benchmarkView cited source
  20. [20]

    Neon says its VectorDBBench tests ran on LAION-100M and that Lakebase Search led the tested systems on price-performance.

    Reported Insufficient Source: Neon blogView cited source
  21. [21]

    In Databricks' tests, lakebase_vector delivered a P99 latency of 71 milliseconds at 97% recall.

    Reported Insufficient Source: Databricks blog, vendor-run testView cited source
  22. [22]

    Customer Conexiom runs hybrid search with BM25 on over 100 million rows with half the compute footprint of its previous pgvector setup.

    Reported Insufficient Source: Databricks blogView cited source
  23. [23]

    Lakebase Search gives us a whole new level of scalability over pgvector, and unlocks BM25 in the same serverless database. We use Lakebase to connect data to our agents at scale.

    Reported Insufficient Source: Jordan Voves, AI/ML Architect at Conexiom, quoted in the Databricks blogView cited source
  24. [24]

    When a pgvector HNSW index spills to disk, queries turn into chains of random reads and performance drops by 10x to 50x.

    Reported Insufficient Source: Databricks blogView cited source
  25. [25]

    When a pgvector index build spills to disk, it takes almost 50 hours to build on a standard cloud instance.

    Reported Insufficient Source: Databricks blogView cited source

Sources

2 independent publishers whose own reporting we read for this story.

  1. databricks.com

    1 article · September 28, 2026

    Lakebase Search: State-of-the-art full text and vector search for Postgres
  2. neon.tech

    1 article · September 30, 2026

    Lakebase Search: the retrieval primitive for agents on Neon

Topics and entities

Entities