<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>All blog posts in Lakebase Hub</title>
    <link>https://community.databricks.com/t5/lakebase-hub/ct-p/LakebasePostgres</link>
    <description>All blog posts in Lakebase Hub</description>
    <pubDate>Sat, 05 Sep 2026 23:53:16 GMT</pubDate>
    <dc:creator>LakebasePostgres</dc:creator>
    <dc:date>2026-09-05T23:53:16Z</dc:date>
    <item>
      <title>Moving Beyond Manual Changes: A Guide to Shipping Lakebase Schema with Bundles</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/moving-beyond-manual-changes-a-guide-to-shipping-lakebase-schema/ba-p/166160</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Lakebase databases provisioned and changed by application teams between environments, with no record of which schema is deployed where and no repeatable way to promote a change.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Bundles declare Lakebase infrastructure through the &lt;/SPAN&gt;&lt;EM&gt;postgres_*&lt;/EM&gt;&lt;SPAN&gt; resource types. Application-owned tables are a different kind of artifact, versioned and ordered rather than reconciled to an end state, so they ship as migrations applied by a job.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;This post gives you a two-layer bundle pattern keeping infrastructure declarative and schema versioned, then builds environment promotion and branch-based development on top.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Plan for the operational edges: a CI service principal needs its own Postgres role, mode: development doesn't namespace &lt;/SPAN&gt;&lt;EM&gt;postgres_projects&lt;/EM&gt;&lt;SPAN&gt;, and a destroyed project holds its id for seven days.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 24 Aug 2026 09:23:21 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/moving-beyond-manual-changes-a-guide-to-shipping-lakebase-schema/ba-p/166160</guid>
      <dc:creator>AbhilashNagilla</dc:creator>
      <dc:date>2026-08-24T09:23:21Z</dc:date>
    </item>
    <item>
      <title>Re: [Partner Blog] Introduction to Databricks Lakebase: Unified OLTP+OLAP Engine for AI-Native Workl</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/bc-p/165963#M16</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Nice writeup!&lt;/STRONG&gt;&amp;nbsp;This unified OLTP+OLAP approach solves a lot of headaches we deal with when data is scattered across different systems. The database branching thing caught my eye - having dev environments that work like git branches is a game changer.&lt;/P&gt;
&lt;P&gt;Really like the idea of real-time sync without having to build custom ETL pipelines. That's always been such a pain point. Curious to see how the GA version performs compared to what's available now in preview.&lt;/P&gt;
&lt;P&gt;Anyone here actually tried this out with heavy transaction loads? Would love to hear about real-world performance.&lt;/P&gt;
&lt;P&gt;Thanks for putting this together&amp;nbsp;&lt;A id="link_8" class="lia-link-navigation lia-page-link lia-user-name-link" href="https://community.databricks.com/t5/user/viewprofilepage/user-id/148397" aria-label="View Profile of Nivethan_Venkat" target="_blank"&gt;&lt;SPAN class="dbe"&gt;Nivethan_Venkat&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- the diagrams definitely help show how it all connects.&lt;/P&gt;
&lt;P&gt;Cheers, Lou.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Aug 2026 08:32:04 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/bc-p/165963#M16</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2026-08-19T08:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: [PARTNER BLOG] Benchmarking Databricks Lakebase and AWS Aurora (PostgreSQL engine) using pgbench</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/bc-p/157538#M15</link>
      <description>&lt;P&gt;In the environment table the Aurora says DSQL. Is that a typo?&lt;/P&gt;</description>
      <pubDate>Sat, 23 May 2026 15:26:39 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/bc-p/157538#M15</guid>
      <dc:creator>Hari-db</dc:creator>
      <dc:date>2026-05-23T15:26:39Z</dc:date>
    </item>
    <item>
      <title>Building a GraphQL API on Lakebase</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/building-a-graphql-api-on-lakebase/ba-p/152621</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Use GraphQL on Databricks Lakebase with pg_graphql and the Lakebase Data API&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2026 14:11:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/building-a-graphql-api-on-lakebase/ba-p/152621</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2026-03-31T14:11:46Z</dc:date>
    </item>
    <item>
      <title>Lakebase as the Operational Data Store: Bringing Back the Tactical Data Layer</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/lakebase-as-the-operational-data-store-bringing-back-the/ba-p/151832</link>
      <description>&lt;P&gt;&lt;SPAN&gt;A governed, low-latency data layer that transforms data intelligence into real-time operational action.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Mar 2026 15:05:19 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/lakebase-as-the-operational-data-store-bringing-back-the/ba-p/151832</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2026-03-26T15:05:19Z</dc:date>
    </item>
    <item>
      <title>Lakebase Branching Meets Docker: The Migration Safety Net I Wish I Had Years Ago</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/lakebase-branching-meets-docker-the-migration-safety-net-i-wish/ba-p/149945</link>
      <description>&lt;P&gt;&lt;SPAN&gt;In this post, I walk through how to take advantage of Lakebase with instant branching in a dev-ops workflow to add a layer of confidence that catches the databricks migration failures you'd otherwise discover at the worst possible time.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2026 06:32:38 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/lakebase-branching-meets-docker-the-migration-safety-net-i-wish/ba-p/149945</guid>
      <dc:creator>alex_feng</dc:creator>
      <dc:date>2026-03-09T06:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: How to perform Semantic Search in Databricks Lakebase</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/bc-p/141178#M12</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/82106"&gt;@uday_satapathy&lt;/a&gt;&amp;nbsp;- Quite comprehensive example. Thanks.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Dec 2025 16:10:04 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/bc-p/141178#M12</guid>
      <dc:creator>Raman_Unifeye</dc:creator>
      <dc:date>2025-12-04T16:10:04Z</dc:date>
    </item>
    <item>
      <title>How to perform Semantic Search in Databricks Lakebase</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/ba-p/139846</link>
      <description>&lt;P&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;In today's AI-native world, applications are moving beyond keyword matching to embrace&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;semantic search&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;powered by embeddings. This blog post explores how to leverage&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;pgvector on Databricks Lakebase&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class="appsElementsGenerativeaiAstAnimated"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Postgres OLTP database) to natively store, index, and query these embeddings in SQL. Learn the architecture to unify your product metadata, vector data, and operational workloads in a single, scalable Lakehouse-integrated platform for powerful e-commerce search, intelligent recommendations, and more.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Dec 2025 15:58:00 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/how-to-perform-semantic-search-in-databricks-lakebase/ba-p/139846</guid>
      <dc:creator>uday_satapathy</dc:creator>
      <dc:date>2025-12-04T15:58:00Z</dc:date>
    </item>
    <item>
      <title>Re: Operationalize Your Lakehouse: Lakebase for Low-Latency Apps &amp; APIs</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/bc-p/140637#M9</link>
      <description>&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Great post.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;1) The OLTP/OLAP split has been a tax on every data team for a decade. Lakebase finally removes that architectural baggage — one platform, one dataset, real-time by default.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;2) Accelerate AI App development. AI apps shouldn’t need three databases, five sync jobs, and duct tape. This converged platform means you can build real AI systems without fighting your data infra.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;3) Governance is built in.&amp;nbsp;Most “operational databases” become governance blind spots. Unity Catalog governs everything — transactions, features, embeddings, identities — so the compliance gap disappears leading to accelerated velocity of app deployments.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 29 Nov 2025 19:24:03 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/bc-p/140637#M9</guid>
      <dc:creator>venkat-raghavan</dc:creator>
      <dc:date>2025-11-29T19:24:03Z</dc:date>
    </item>
    <item>
      <title>Operationalize Your Lakehouse: Lakebase for Low-Latency Apps &amp; APIs</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/ba-p/136294</link>
      <description>&lt;P&gt; Still copying data into a separate database just to power your apps? Lakebase eliminates the sprawl. Build operational APIs and transactional features directly on the Lakehouse using PostgreSQL — no external databases or custom ETL pipelines needed.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2025 13:59:48 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/operationalize-your-lakehouse-lakebase-for-low-latency-apps-amp/ba-p/136294</guid>
      <dc:creator>zach_goehring</dc:creator>
      <dc:date>2025-11-13T13:59:48Z</dc:date>
    </item>
    <item>
      <title>Re: [PARTNER] Databricks Lakebase Costing: Compute, Storage &amp; Reusable AI/BI Dashboard</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/bc-p/131321#M7</link>
      <description>&lt;P&gt;There is contradictory information about Lakebase and its "serverless" nature.&amp;nbsp; This article confirms my own experience, it is not serverless: ie, to be ready to accept a query, it has to be started and is charged at a minimum of 1 DBU/hour while it is running.&lt;BR /&gt;&lt;BR /&gt;This seems to contradict directly with the product description &lt;A href="https://www.databricks.com/blog/what-is-a-lakebase" target="_self"&gt;here&lt;/A&gt;. Emphasis has been added below to highlight the contradiction:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Serverless&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;: Lakebases are lightweight, and can scale elastically instantly, up and down, &lt;U&gt;&lt;EM&gt;all the way to zero&lt;/EM&gt;&lt;/U&gt;. &lt;U&gt;&lt;EM&gt;At zero, the cost of the lakebase is just the cost of storing the data on cheap data lakes.&lt;/EM&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Tue, 09 Sep 2025 05:50:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/bc-p/131321#M7</guid>
      <dc:creator>gjsau</dc:creator>
      <dc:date>2025-09-09T05:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: [Partner Blog] Introduction to Databricks Lakebase: Unified OLTP+OLAP Engine for AI-Native Workl</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/bc-p/129052#M4</link>
      <description>&lt;P&gt;Awesome details&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/148397"&gt;@Nivethan_Venkat&lt;/a&gt;&amp;nbsp;. Can you please specify the real-world use cases for Lakebase?&lt;/P&gt;</description>
      <pubDate>Thu, 21 Aug 2025 00:31:13 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/bc-p/129052#M4</guid>
      <dc:creator>Sharanya13</dc:creator>
      <dc:date>2025-08-21T00:31:13Z</dc:date>
    </item>
    <item>
      <title>[PARTNER] Databricks Lakebase Costing: Compute, Storage &amp; Reusable AI/BI Dashboard</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/ba-p/127945</link>
      <description>&lt;P&gt;A complete guide to calculating Databricks Lakebase costs. Learn pricing components, SQL examples using system tables, and how to build a reusable LSQL dashboard for cost monitoring.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 14:36:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-databricks-lakebase-costing-compute-storage-amp-reusable/ba-p/127945</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-08-12T14:36:26Z</dc:date>
    </item>
    <item>
      <title>[PARTNER BLOG] Benchmarking Databricks Lakebase and AWS Aurora (PostgreSQL engine) using pgbench</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/ba-p/126575</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="3"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;H1 id="a864" class="ala kf kg bf kh pr alb ps kl pt alc pu kp pv ald pw px py ale pz qa qb alf qc qd alg bk" data-selectable-paragraph=""&gt;A Quick Word Before We Dive In&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph lz ma kg mb b mc alh me mf mg ali mi mj kq alj ml mm ku alk mo mp ky all mr ms mt jz bk" data-selectable-paragraph=""&gt;In&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mb mu"&gt;Part-1&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;we introduced Databricks Lakebase architecture — essentially a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mb mu"&gt;PostgreSQL‑compatible OLTP layer&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that sits next to Delta tables inside the Databricks Lakehouse. If that’s new to you, start&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag amk" href="https://community.databricks.com/t5/technical-blog/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301" target="_self" data-discover="true"&gt;&lt;EM class="alq"&gt;here&lt;/EM&gt;&lt;/A&gt;&lt;EM class="alq"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;and learn more on how to spin it up, connect a psql client, and load a starter dataset into its Postgres‑compatible front‑end. With the environment in place, it’s time to answer the next logical question:&lt;/P&gt;
&lt;BLOCKQUOTE class="aln alo alp"&gt;
&lt;P class="lz ma alq mb b mc md me mf mg mh mi mj kq mk ml mm ku mn mo mp ky mq mr ms mt jz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mb mu"&gt;“How does Lakebase behave under real OLTP pressure, and how does that compare to a well‑known managed Postgres?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P class="pw-post-body-paragraph lz ma kg mb b mc md me mf mg mh mi mj kq mk ml mm ku mn mo mp ky mq mr ms mt jz bk" data-selectable-paragraph=""&gt;This article walks through the methodology, command lines, and metrics captured during benchmarking.&lt;/P&gt;
&lt;H1 class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="aa28" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;Why Benchmark Matters&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;Anecdotes and marketing slides are helpful, but nothing beats&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;an empirical workload run under controlled conditions&lt;/STRONG&gt;. Benchmarks reveal:&lt;/P&gt;
&lt;TABLE class="lia-align-left" style="height: 201px; width: 100%;" border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Trade-off&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;What we learn from benchmarks &lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="43px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Latency vs. Throughput&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="43px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;When does response time rise as you chase higher TPS? &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Scalability limits&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Does performance collapse once the buffer cache is cold?&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="28.375149342891277%" height="44px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Operational complexity&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="63.381123058542414%" height="44px"&gt;How do connection limits, poolers and locking behave at high concurrency?&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by" data-selectable-paragraph=""&gt;It surfaces trade‑offs and behavioural differences so you can decide what matters for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;your&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;application. With that in mind, this article records&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;what we observed&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;when running the same&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;pgbench&lt;/CODE&gt;&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;script against:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="2903" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI id="b144" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(PostgreSQL engine)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1 id="f49b" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;About the Benchmarking Tool - pgbench&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;You can benchmark a Postgres‑compatible engine in many ways:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;custom micro‑services, JVM stress tests,&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and so on. For this study we use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;, the canonical tool that ships with PostgreSQL itself:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="d6a7" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Generates a mix of single‑row selects, updates, and account transfers.&lt;/LI&gt;
&lt;LI id="4d51" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Lets you plug in a same&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;script&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to better mimic your schema (&lt;EM class="yd"&gt;can be found in the repo below&lt;/EM&gt;).&lt;/LI&gt;
&lt;LI id="ba05" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;Produces TPS and latency histograms that are easy to parse and visualise.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1 class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Benchmarking&lt;/H1&gt;
&lt;P&gt;Let's deep dive into the benchmarking of Databricks Lakebase with AWS Aurora&lt;/P&gt;
&lt;H2 id="2979" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Repository &amp;amp; Reproducibility&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Complete procedure for performing the benchmark of Databricks Lakebase is available in the github repo:&amp;nbsp;&lt;/SPAN&gt;&lt;A class="bg yc" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://github.com/dediggibyte/diggi_lakebase&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Benchmark repo — README" style="width: 998px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18535iAD1D48455EF650FD/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753626990118.png" alt="Benchmark repo — README" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Benchmark repo — README&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="7693" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Environment&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG&gt;Hardware / Configuration:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Dimension&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="49px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora DSQL (PostgreSQL)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Compute&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;1 CU (Capacity Unit)- 16GB RAM&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;1 router + 8 shards,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;db.r8g.large&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(8 vCPU each)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Storage&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Delta cache (NVMe SSD)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;gp3&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;100 GiB, 3 k IOPS&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Region&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;us-east-2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(Ohio)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;STRONG&gt;us-east-2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(Ohio)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="18.39904420549582%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Client VM&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="32.97491039426524%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;c7g.xlarge&lt;/STRONG&gt;&lt;SPAN&gt;, same AZ&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="48.62604540023895%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;c7g.xlarge&lt;/STRONG&gt;&lt;SPAN&gt;, same AZ&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="c8fd" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Executions&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase - 240s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$LAKEBASE_HOST" -p "$LAKEBASE_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 240 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Lakebase (240s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18536i59CBAE2DF54E221C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753628312928.png" alt="Environment variables exported — Lakebase (240s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Lakebase (240s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Databricks Lakebase - 180s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$LAKEBASE_HOST" -p "$LAKEBASE_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 180 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Lakebase (180s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18537i5F4570B0FBA09BD9/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753628396726.png" alt="Environment variables exported — Lakebase (180s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Lakebase (180s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora (PGSQL) - 240s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$AURORA_HOST" -p "$AURORA_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 240 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Aurora (240s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18538iC59A783741C487E7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753628586417.png" alt="Environment variables exported — Aurora (240s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Aurora (240s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;AWS Aurora (PGSQL) - 180s Run:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;LI-CODE lang="markup"&gt;pgbench -n \
  -h "$AURORA_HOST" -p "$AURORA_PORT" -U "$PGUSER" \
  -f custom_test.sql \
  -T 180 \
  -c 180 \
  -j 6 \
  "$PGDATABASE"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Environment variables exported — Aurora (180s run)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18539i2C6F5D84D6AFFB42/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753628682558.png" alt="Environment variables exported — Aurora (180s run)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Environment variables exported — Aurora (180s run)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG class="xi gt"&gt;Interpreting&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp; &amp;nbsp;&lt;STRONG class="xi gt"&gt;summary&lt;/STRONG&gt;&lt;/H2&gt;
&lt;TABLE border="1" width="100.10740436341901%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="47px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Field&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="47px" style="background-color: grey;"&gt;&lt;STRONG&gt;Example&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="47px" style="background-color: grey;"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Take-away&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 40px;"&gt;
&lt;TD width="24.544504181600956%" height="57px"&gt;&lt;STRONG&gt;Scaling factor&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="57px"&gt;1&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Internally&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&lt;SPAN&gt;multiplies scaling factor; for the loaded 4 M in respective Database system.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="39px"&gt;&lt;STRONG&gt;Clients&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="39px"&gt;180&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Simultaneous sessions hitting the server.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="37px"&gt;&lt;STRONG&gt;Threads&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="37px"&gt;6&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="37px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Worker threads on the benchmark &lt;/SPAN&gt;&lt;SPAN&gt;&lt;STRONG&gt;driver&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;; keep ≤ driver CPU cores.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="35px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Duration&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="35px"&gt;240 s&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="35px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Timed, steady&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;state window after a 2&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;s ramp&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;up.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Transactions processed&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="40px"&gt;373 785&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Divided by 240 s → TPS.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Latency average&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="40px"&gt;103.60 ms&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="40px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Mean client&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;perceived response time.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="38px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Failed Transactions&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="38px"&gt;0 (0 %)&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="38px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Deadlocks or serialisation retries.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Initial Connection time&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="39px"&gt;24 952 ms&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="39px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;One&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;off cost of opening 180 connections.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="24.544504181600956%" height="37px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;TPS&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="14.523596176821986%" height="37px"&gt;1737&lt;/TD&gt;
&lt;TD width="61.04170296201062%" height="37px"&gt;&amp;nbsp;The headline throughput number.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="d38b" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Workload details&lt;/H2&gt;
&lt;TABLE border="1" width="77.89057830245069%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="43px" style="background-color: grey;"&gt;&lt;STRONG&gt;Parameter&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="43px" style="background-color: grey;"&gt;&lt;STRONG&gt;Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;&lt;STRONG&gt;Tool&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp;16.9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b" style="font-weight: bold;"&gt;&lt;STRONG class="xi gt"&gt;custom_test.sql&lt;/STRONG&gt;&lt;/CODE&gt;&amp;nbsp;- &lt;/SPAN&gt;&lt;SPAN&gt;random look&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;ups + indexed updates&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Dataset&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;STRONG&gt;4 000 000&lt;/STRONG&gt; rows (scale ~ 100)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Concurrency&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;180 clients&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(both engines) &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Threads&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;SPAN&gt;6 (&lt;/SPAN&gt;&lt;STRONG&gt;-j 6&lt;/STRONG&gt;&lt;SPAN&gt;, matches vCPU of driver VM)&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Durations&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&lt;SPAN&gt;180 s &lt;/SPAN&gt;&lt;EM&gt;and&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;240 s runs&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Repeats&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;3 runs each; medians reported&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="22.281959378733575%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Failures&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="55.60903565812402%" height="30px"&gt;&amp;nbsp;&lt;STRONG&gt;0 %&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;in every run&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="7563" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Results at-a-Glance (4 Million‑Row Dataset, 180 Clients)&lt;/H2&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Engine&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Run length&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;TPS (median)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Avg Latency&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="46px" style="background-color: grey;"&gt;&lt;STRONG&gt;Txn(s) Processed&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;180 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1731&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;103.97 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;267 613&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Lakebase&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;240 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1737&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;103.60 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;373 785&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora PostgreSQL&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;180 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1509&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;119.28 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;241 034&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Aurora PostgreSQL&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;240 s&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&lt;STRONG&gt;1508&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;119.37 ms&lt;/TD&gt;
&lt;TD width="20%" height="30px"&gt;&amp;nbsp;331 148&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H3&gt;&lt;SPAN&gt;Key take-aways:&lt;/SPAN&gt;&lt;/H3&gt;
&lt;UL class=""&gt;
&lt;LI id="8830" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Flat lines:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Both engines kept TPS almost flat between&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;180s and 240s&lt;/CODE&gt;, indicating the buffer cache stayed warm.&lt;/LI&gt;
&lt;LI id="54fc" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Latency Delta:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase averaged&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;~15 ms faster per transaction&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;at the same concurrency.&lt;/LI&gt;
&lt;LI id="3af6" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Clean runs:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Zero failed or aborted transactions across all tests.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="2d7d" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;What Else is Observed?&lt;/H2&gt;
&lt;OL class=""&gt;
&lt;LI id="08ed" class="xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Region affinity:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Our first Lakebase attempt used a driver VM in another AZ; TPS cratered by ~50 %. Lesson: keep client and database in the same AZ for OLTP benchmarks.&lt;/LI&gt;
&lt;LI id="4ba9" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Data‑volume resilience:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;A pilot with only 1M rows clocked 1880 TPS on Lakebase. Bumping to 4 M rows shaved off ~8 % — a healthy sign.&lt;/LI&gt;
&lt;LI id="3039" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb acd zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Connection spikes:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Spooling up 180 new sessions took 20–25 s on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="yd"&gt;both&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;engines. Harmless for steady workloads; something to watch for burst‑and‑idle patterns.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 id="3e8e" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Deep‑Dive: Parameter Tuning&lt;/H2&gt;
&lt;TABLE border="1" width="99.07165271966525%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Knob&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;AWS Aurora&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="50px" style="background-color: grey;"&gt;&lt;STRONG&gt;Why it matters&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;shared buffers&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;Ignored&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;75 % RAM&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Aurora benefits from a large shared cache; Lakebase handles buffering internally.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;work_mem&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;4 MB&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;32-64 MB&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Impacts join &amp;amp; sort spilling; not hit in our micro&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;benchmark.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="30px"&gt;&lt;STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;max connections&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="30px"&gt;1024 hard-cap&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="30px"&gt;500 x router&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="30px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Dictates pooler settings.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="57px"&gt;&lt;STRONG&gt;Autovacuum&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="57px"&gt;Auto&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="57px"&gt;Auto&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="57px"&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Neither engine needed vacuum tweaks for this workload.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="19.623655913978496%" height="30px"&gt;&lt;STRONG&gt;Connection pooling&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="20.459976105137397%" height="30px"&gt;&lt;STRONG&gt;Advised&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="14.964157706093186%" height="30px"&gt;&lt;STRONG&gt;Advised&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="44.02486945836553%" height="30px"&gt;&amp;nbsp;Smooths bursty client behaviour.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="5c11" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Observability Shortcuts&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG class="xi gt"&gt;Lakebase UI&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Monitor ▶︎ Lakebase&amp;nbsp;shows live&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;TPS&lt;/CODE&gt;&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;P95 latency&lt;/CODE&gt;&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;active connections&lt;/CODE&gt;&lt;/SPAN&gt;, and&amp;nbsp;&lt;SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;storage utilisation&lt;/CODE&gt;&lt;/SPAN&gt;%.&lt;/P&gt;
&lt;H2&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Databricks Lakebase Metrics" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18543iC18DCFAA8DF54F06/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753631375337.png" alt="Databricks Lakebase Metrics" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Databricks Lakebase Metrics&lt;/span&gt;&lt;/span&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;SPAN&gt;Aurora&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN&gt;CloudWatch metrics (&lt;CODE class="cv zi zj zk zl b"&gt;DatabaseConnections&lt;/CODE&gt;,&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;SelectLatency&lt;/CODE&gt;,&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;CommitLatency&lt;/CODE&gt;) plus&amp;nbsp;&lt;CODE class="cv zi zj zk zl b"&gt;pg_stat_statements&lt;/CODE&gt;&amp;nbsp;for top queries.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AWS Cloudwatch Metrics" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18544i2103495391801AE4/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753631444596.png" alt="AWS Cloudwatch Metrics" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;AWS Cloudwatch Metrics&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H1 id="dc2b" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by"&gt;Conclusion - Key Takeaways and What’s Next&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by" data-selectable-paragraph=""&gt;In this post we&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;ran a head‑to‑head&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;CODE class="cv zi zj zk zl b"&gt;&lt;STRONG class="xi gt"&gt;pgbench&lt;/STRONG&gt;&lt;/CODE&gt;&lt;STRONG class="xi gt"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;benchmark on a 4 million‑row dataset&lt;/STRONG&gt;—same script, same client count—against Databricks Lakebase and AWS Aurora (PostgreSQL). From seeding data to reading the latency histogram, a few things stood out:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="a23c" class="xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Identical workload, distinct personalities:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase’s vectorised execution path edged out Aurora on average latency (~15 ms per transaction) while both engines held steady throughput around 1.5–1.7 k TPS with zero failures.&lt;/LI&gt;
&lt;LI id="7dfd" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Topology still matters:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Keeping the driver VM in the same AZ as the database doubled Lakebase TPS versus an earlier cross‑AZ trial — a reminder that network round‑trips still rule OLTP.&lt;/LI&gt;
&lt;LI id="c0e3" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Good defaults get you far:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Out‑of‑the‑box settings (no&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cv zi zj zk zl b"&gt;shared_buffers&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tuning, no custom autovacuum) were enough to clear enterprise‑grade throughput on both platforms.&lt;/LI&gt;
&lt;LI id="8fb0" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Connection spikes are the new cold start:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Spooling up 180 sessions took ~20–25 s for both engines. If your workload bursts from zero, a pooler is mandatory.&lt;/LI&gt;
&lt;LI id="0a38" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Schema awareness pays dividends:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Lakebase lost only ~8 % TPS when scaling from 1 M to 4 M rows, underscoring the value of tight indexing over brute‑force hardware.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="ix qi sd se sf"&gt;
&lt;DIV class="o q"&gt;
&lt;DIV class="dj n dk dl dm dn"&gt;
&lt;H2 id="a381" class="zu wy sh as wz zv zw zx kr zy zz aba kw xp abb abc abd xt abe abf abg xx abh abi abj abk by" data-selectable-paragraph=""&gt;Caveats &amp;amp; Future Work&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="9ea0" class="xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Lakebase:&lt;/STRONG&gt;&amp;nbsp;Cross‑region DR, backup limits, and fail‑over speeds are still being hardened.&lt;/LI&gt;
&lt;LI id="c480" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Chaos testing:&lt;/STRONG&gt;&amp;nbsp;An induced&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;Aurora Limitless&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;router fail‑over recovered in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;&amp;lt; 30 s&lt;/STRONG&gt;; a forced Lakebase database restart recovered in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="xi gt"&gt;~ 20 s&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(smaller footprint, but worth retesting at GA).&lt;/LI&gt;
&lt;LI id="b189" class="xg xh sh xi b sv zp xk xl sx zq xn xo xp zr xr xs xt zs xv xw xx zt xz ya yb zm zn zo by" data-selectable-paragraph=""&gt;&lt;STRONG class="xi gt"&gt;Next stop - Part 3: &lt;/STRONG&gt;We’ll put a price‑tag on these TPS numbers, dive into reserved‑instance math, and see how database autoscales (and bills) when the workload starts and stops. Stay tuned!&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="o q na fk ir ach" role="separator"&gt;
&lt;H1 id="045c" class="wx wy sh as wz kn xa ko kr ks xb kt kw kx xc ky lb lc xd ld lg lh xe li ll xf by" data-selectable-paragraph=""&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv xj xk xl sx xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb ix by"&gt;&lt;A href="https://community.databricks.com/t5/technical-blog/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301" target="_self"&gt;Introduction to Lakebase and configuration&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://docs.databricks.com/aws/en/oltp/" target="_blank" rel="nofollow noopener ugc"&gt;Databricks Lakebase documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://www.databricks.com/blog/announcing-lakebase-public-preview" target="_blank" rel="nofollow noopener ugc"&gt;Public Preview announcement&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph xg xh sh xi b sv yh xk xl sx yi xn xo xp yj xr xs xt yk xv xw xx yl xz ya yb ix by"&gt;&lt;A class="bg yc" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="nofollow noopener ugc"&gt;Benchmark reference repo&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="ix qi sd se sf"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="ix qi sd se sf"&gt;&lt;STRONG class="xi gt"&gt;Disclaimer:&lt;BR /&gt;&lt;/STRONG&gt;&lt;EM&gt;These results reflect each engine’s default configuration. Feedback is welcome — send your ideas and we’ll happily rerun the tests with any community‑driven tweaks.&lt;/EM&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 29 Jul 2025 11:02:27 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-benchmarking-databricks-lakebase-and-aws-aurora/ba-p/126575</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-07-29T11:02:27Z</dc:date>
    </item>
    <item>
      <title>[Partner Blog] Introduction to Databricks Lakebase: Unified OLTP+OLAP Engine for AI-Native Workloads</title>
      <link>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="2"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;H1 id="c3ac" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;Introduction&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Databricks Lakebase is a new,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;fully managed OLTP (Online Transaction Processing) database engine&lt;/STRONG&gt;, designed to seamlessly integrate transactional and analytical workloads within the Databricks Data Intelligence Platform. Currently available in public preview across multiple regions, Lakebase is built on a Postgres foundation and aims to bridge the gap between traditional databases and modern data lake architectures.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;This is an introductory blog about Databricks Lakebase and it’s capabilities, more detailed information will be published in Part-2 of this blog series.&lt;/P&gt;
&lt;H1 class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="1cc4" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&lt;STRONG class="am"&gt;Motivation&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Online Transaction Processing (OLTP) systems have long been the backbone of enterprise software — powering everything&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;from banking applications to e-commerce platforms&lt;/STRONG&gt;. Systems like PostgreSQL, MySQL, and Oracle have matured over decades to handle millions of transactions per second in structured, stateful workloads.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;But as organisations shift toward AI-driven applications, real-time analytics, and data-centric architecture, the limitations of traditional OLTP systems become increasingly apparent.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Limitations with traditional OLTP" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18455i814BCC3428A5C13C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348146388.png" alt="Limitations with traditional OLTP" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Limitations with traditional OLTP&lt;/span&gt;&lt;/span&gt;&lt;SPAN&gt;In this landscape,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;Databricks Lakebase&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;emerges as a game-changing offering. A fully-managed, PostgreSQL-compatible OLTP engine&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;natively integrated&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;into the Databricks Lakehouse Platform, Lakebase blends the transactional strength of Postgres with the elasticity, analytics, and governance of the Lakehouse.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="5987" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;&lt;STRONG class="am"&gt;What is Databricks Lakebase?&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P data-selectable-paragraph=""&gt;Lakebase allows organisations to&amp;nbsp;create OLTP databases directly on Databricks, leveraging Databricks-managed storage and compute.&amp;nbsp;This integration means you can run&amp;nbsp;high-throughput, low-latency transactional workloads&amp;nbsp;(like those traditionally handled by PostgreSQL or cloud-native OLTP systems) while&amp;nbsp;keeping data in sync with your analytical Lakehouse environment.&lt;/P&gt;
&lt;H1&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Lakebase highlights" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18456i1EA9AB47D8C6A892/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753348317436.png" alt="Lakebase highlights" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Lakebase highlights&lt;/span&gt;&lt;/span&gt;&lt;/H1&gt;
&lt;H1&gt;&lt;STRONG class="am"&gt;Key Features&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Key features" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18457i8A3BFB09744AE0C8/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348404135.png" alt="Key features" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Key features&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Lakebase gives developers a fully-managed Postgres database with cloud-native enhancements like instant provisioning, branching (think&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cx ot ou ov ow b"&gt;git checkout&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="cx ot ou ov ow b"&gt;git branch&lt;/CODE&gt;&lt;SPAN&gt;for databases), and real-time sync with Delta for analytics.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1 data-selectable-paragraph=""&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1 id="fc99" data-selectable-paragraph=""&gt;Working with Lakebase&lt;/H1&gt;
&lt;P data-selectable-paragraph=""&gt;Lakebase integrates closely with Databricks unity catalog and managed at workspace level, below architecture depict the placement of Lakebase along with analytical layer.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Target Architecture (OLAP with OLTP in Databricks)" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18458i9A3EAD462BF3191C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753348504082.png" alt="Target Architecture (OLAP with OLTP in Databricks)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Target Architecture (OLAP with OLTP in Databricks)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="da5b" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk"&gt;1. Prerequisites:&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="e1c9" class="mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Unity Catalog must be enabled&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in your workspace&lt;/LI&gt;
&lt;LI id="c378" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Access granted to Lakebase&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(via Admin Console or Support)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="1757" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;2. Enabling Lakebase:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Currently the feature is in Public Preview as highlighted in the below image, but soon it will be GA.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;SPAN&gt;Enable PostgreSQL OLTP database Preview:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_0-1753348665256.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18459i02CDA2F8790E8C0C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753348665256.png" alt="Nivethan_Venkat_0-1753348665256.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="9e14" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;3.Creating a Lakebase Database:&lt;/H2&gt;
&lt;UL class=""&gt;
&lt;LI id="1c8d" class="mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;Compute tab&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in Workspace UI&lt;/LI&gt;
&lt;LI id="3428" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click on and navigate to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;OLTP Database instances&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in compute pane&lt;/LI&gt;
&lt;LI id="2d12" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;Click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;&lt;EM class="nk"&gt;Create database instance&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_1-1753348726116.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18460iD6CC1293CA2F4C96/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Nivethan_Venkat_1-1753348726116.png" alt="Nivethan_Venkat_1-1753348726116.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="e153" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;4. Authentication:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Once we have Lakebase instance next question comes in mind… How to use Lakebase instance (database) ?&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;To use one can&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;connect to database via SQL Client or Programatically over JDBC in Notebook&lt;/STRONG&gt;. An OAuth token is needed for identities to connecting to database.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Identities&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;could be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;databricks users (user to machine ) or service principal (machine to machine )&lt;/STRONG&gt;. Tokens can be obtained from UI or programmatically as standard process. More on this can be found&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/oltp/oauth" target="_blank" rel="noopener ugc nofollow"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Obtaining Tokens Manually" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18461i6D8420888A663BED/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_2-1753348835362.png" alt="Obtaining Tokens Manually" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Obtaining Tokens Manually&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Obtaining Tokens Programmatically" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18462iC36CA7C426FB0F6D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_3-1753348878767.png" alt="Obtaining Tokens Programmatically" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Obtaining Tokens Programmatically&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="e9d7" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;5. Authorisation:&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;As Lakebase is managed PostgreSQL it offers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;both UnityCatalog and PGSQL personas to govern data access&lt;/STRONG&gt;. As Unity catalog is unified governance component of Databricks stack, it is inherently integrated with Lakebase. Moreover users who want to use PostgresSQL interface they can use PostgresSQL roles as well.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Lakebases permissions set up with different Connection mechanism" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18463i1C744A61F3434DBF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_4-1753349335505.png" alt="Lakebases permissions set up with different Connection mechanism" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Lakebases permissions set up with different Connection mechanism&lt;/span&gt;&lt;/span&gt;&lt;SPAN&gt;To perform database operations like read and write on postgres database, follow the best practices applicable on&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;database_roles&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;privileges&amp;nbsp;&lt;SPAN&gt;required on respective role.&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Database_roles:&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.postgresql.org/docs/current/database-roles.html" target="_blank" rel="noopener ugc nofollow"&gt;https://www.postgresql.org/docs/current/database-roles.html&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Privileges:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" href="https://www.postgresql.org/docs/current/ddl-priv.html" target="_blank" rel="noopener ugc nofollow"&gt;https://www.postgresql.org/docs/current/ddl-priv.html&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;For leveraging more privileges w.r.to RLS and other Postgres native roles, refer the above links mentioned against&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Database_roles&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG class="mp fw"&gt;Privileges.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Postgres Native Permission for Databricks Identity" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18464i18CF910E599BAE97/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_5-1753349422687.jpeg" alt="Postgres Native Permission for Databricks Identity" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Postgres Native Permission for Databricks Identity&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="cb40" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;6. Using Lakebase data in Analytical load (No ETL):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_6-1753349466077.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18466i513D34C32083DC21/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_6-1753349466077.png" alt="Nivethan_Venkat_6-1753349466077.png" /&gt;&lt;/span&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;To unify the Databricks user experience it make sense to have a way to access and govern database instance using unity catalog.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;The database created in Lakebase can be registered as a catalog in Unity Catalog&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for better governance and access provisioning. It act as federated data source which can be easily used in analytical processing.&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;SPAN&gt;This means we can&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;access OLTP data without any ETL&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;into our analytical work loads.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Added Database as Catalog into UC" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18468i04EE67B2CECBAD43/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753359433552.jpeg" alt="Added Database as Catalog into UC" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Added Database as Catalog into UC&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Synced Lakebase Database in Unity Catalog" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18469iCC3F38C539C276FE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753359499981.jpeg" alt="Synced Lakebase Database in Unity Catalog" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Synced Lakebase Database in Unity Catalog&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="2350" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;7. Sending Lakebase update to Lakehouse (ETL):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_3-1753359569631.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18471iC7D06C2C74315549/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_3-1753359569631.png" alt="Nivethan_Venkat_3-1753359569631.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;LakeFlow declarative pipelines is a powerful and efficient way to create and maintain a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;OLAP (DLT)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that mirrors an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;OLTP (Lakebase)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in your Databricks Lakehouse. It simplifies handling out-of-order data and managing updates, inserts, and deletes.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Auto CDC Delta changes from-OLTP-to-OLAP" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18472i23FD4D2925ED4B86/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_4-1753359613876.png" alt="Auto CDC Delta changes from-OLTP-to-OLAP" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Auto CDC Delta changes from-OLTP-to-OLAP&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In the below snippet, it is provided the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;baseline syntax for syncing delta changes from OLTP to OLAP&lt;/STRONG&gt;&lt;SPAN&gt;. Refer the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/dlt-ref/dlt-python-ref-apply-changes" target="_blank" rel="noopener ugc nofollow"&gt;documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;for which options are necessary in your case.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import dlt

dlt.create_auto_cdc_flow(
 target = "&amp;lt;olap-table&amp;gt;",           #OLAP target table to be updated
 source = "&amp;lt;oltp-table&amp;gt;",           #OLTP source table to be referenced
 keys = ["key1", "key2", "keyN"],   #Columns that uniquely identify a row in the source data
 sequence_by = "&amp;lt;sequence-column&amp;gt;", #Logical order of CDC events in the source data
 ignore_null_updates = False,
 apply_as_deletes = None,
 apply_as_truncates = None,
 column_list = None,
 except_column_list = None,
 stored_as_scd_type = &amp;lt;type&amp;gt;,
 track_history_column_list = None,
 track_history_except_column_list = None
)&lt;/LI-CODE&gt;
&lt;H2 id="0114" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;8. Syncing Lakehouse update to Lakebase (Sync tables):&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Nivethan_Venkat_5-1753359726397.png" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18473i43E4719FF1FFDEB0/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_5-1753359726397.png" alt="Nivethan_Venkat_5-1753359726397.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;Data can be synced to and from UC table. A synced / online table can be created on top of UC table with create&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Synced table&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;option available under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Create&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section for any UC table.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Synced Table creation from UC table" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18474i347EEF39F1BDBA85/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_6-1753359788760.png" alt="Synced Table creation from UC table" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Synced Table creation from UC table&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;Points to note:&lt;/STRONG&gt;&lt;EM class="fv" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/EM&gt;&lt;SPAN&gt;Synced / Online table&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;can be created under Lakebase catalog or in the separate catalog&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;with respective database instance for creating sync table.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Optionally:&lt;/STRONG&gt;&lt;EM class="fv"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;STRONG class="mp fw"&gt;Primary Key&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Timeseries Key&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;can be given in the synced table creation for fetching latest / new records from the OLAP table. For using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Triggered&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;/&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;Continuous&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;mode for synced table options,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;ChangeDataFeed&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;needs to be enabled on the source OLAP table.&lt;/P&gt;
&lt;H2 id="44b2" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk" data-selectable-paragraph=""&gt;9. Querying Lakebase :&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;There are multiple options to query the table / view from Lakebase Database.&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw" style="font-family: inherit;"&gt;DBSQL:&lt;/STRONG&gt;&lt;EM class="fv" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/EM&gt;&lt;SPAN&gt;&lt;SPAN&gt;Native SQL editor with warehouse endpoint can be used to query within Databricks with respective privileges.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Querying in DBSQL layer" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18475i41D12E29F38D515F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_7-1753359912026.jpeg" alt="Querying in DBSQL layer" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Querying in DBSQL layer&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;Databricks Notebook:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;Databricks Notebook as well can be used for querying from Lakebase Database with interactive / SQL warehouse cluster.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Querying in Databricks Notebook" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18476i2DE72B7F02D88454/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_8-1753360012407.jpeg" alt="Querying in Databricks Notebook" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Querying in Databricks Notebook&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;SQL Client:&lt;/STRONG&gt;&lt;EM class="fv"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN&gt;SQL clients can also be used to interact with the tables after authenticating with the Lakebase Database instance. More info upon using SQL clients can be found&amp;nbsp;&lt;/SPAN&gt;&lt;A class="ag nj" href="https://docs.databricks.com/aws/en/oltp/query/psql" target="_blank" rel="noopener ugc nofollow"&gt;here&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DBeaver — SQL Client Desktop App" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18477i6B01A689BBCAA536/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_9-1753360069391.png" alt="DBeaver — SQL Client Desktop App" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;DBeaver — SQL Client Desktop App&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="CLI — Using psql client to interact with Lakebase Database" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18478i2C609801D5B39B6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_10-1753360113880.png" alt="CLI — Using psql client to interact with Lakebase Database" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;CLI — Using psql client to interact with Lakebase Database&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 id="4dfa" class="pf ls fv bf lt pg ph pi lw pj pk pl lz mw pm pn po na pp pq pr ne ps pt pu pv bk"&gt;10. Branching : Working with Child instance&lt;/H2&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Lakebase allows you to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;create branches of your Postgres database almost instantly&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;and this will be useful in various scenrios like:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="4f24" class="mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Rapid Data Restoration:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;Instantly restore lost data by creating a database copy from timestamp.&lt;/LI&gt;
&lt;LI id="3124" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Safe Testing and Validation:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;clone a recent production environment to safely test changes or run integration tests without affecting live data.&lt;/LI&gt;
&lt;LI id="7299" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Compliance&lt;/STRONG&gt;: Easily generate a database snapshot from any past date to support audits, reconciliations, or investigations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Branching / Cloning DB instance" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18485iC07EC4A60F395EDC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_0-1753360940391.jpeg" alt="Branching / Cloning DB instance" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Branching / Cloning DB instance&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Key features include:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI id="7d6a" class="mn mo fv mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Copy-on-write:&lt;/STRONG&gt;&amp;nbsp;Branches are lightweight clones. They initially share the parent’s data without duplication. Storage costs only increase for the changes (deltas) made within a branch.&lt;/LI&gt;
&lt;LI id="1b2b" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Isolation:&lt;/STRONG&gt;&amp;nbsp;Each branch operates independently. Changes made in one branch do not affect the parent or other branches. This is perfect for development, testing, or running experiments without impacting production data.&lt;/LI&gt;
&lt;LI id="7c7f" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Speed:&lt;/STRONG&gt;&amp;nbsp;Creating a branch takes only a few seconds.&lt;/LI&gt;
&lt;LI id="90fc" class="mn mo fv mp b gt pa mr ms gw pb mu mv mw pc my mz na pd nc nd ne pe ng nh ni ox oy oz bk" data-selectable-paragraph=""&gt;&lt;STRONG class="mp fw"&gt;Connection string:&lt;/STRONG&gt;&amp;nbsp;Each branch gets its own unique connection string, allowing applications to connect directly to it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG class="mp fw"&gt;Below is the example of Lakebase database to be cloned / branched without disrupting the data in Parent DB&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Branched OLTP database for additional purpose" style="width: 999px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/18486i19ADABBFF8F035AF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Nivethan_Venkat_1-1753361196162.png" alt="Branched OLTP database for additional purpose" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Branched OLTP database for additional purpose&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H1 id="249f" class="lr ls fv bf lt lu lv gv lw lx ly gy lz ma mb mc md me mf mg mh mi mj mk ml mm bk" data-selectable-paragraph=""&gt;Conclusion&lt;/H1&gt;
&lt;P class="pw-post-body-paragraph mn mo fv mp b gt mq mr ms gw mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni fo bk" data-selectable-paragraph=""&gt;Lakebase collapses the long-standing wall between OLTP and analytics. By fusing serverless Postgres semantics, AI-native branching, and lakehouse governance, it gives engineers a single surface to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;transact, analyse, and iterate at the speed of machine learning&lt;/STRONG&gt;. For teams already on Databricks,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="mp fw"&gt;adoption is a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;configuration&lt;/EM&gt;, not a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;migration&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM class="nk"&gt;.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;And it unlocks low latency queries, elastic economics, and real-time Delta sync out of the box. As Lakebase heads toward GA later this year, the real question isn’t&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;why&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;you’d converge OLTP and OLAP, but&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="nk"&gt;how soon&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;you’ll start.&lt;/P&gt;
&lt;H1 id="475f" class="lr ls fv bf lt lu aiy gv lw lx aiz gy lz ma aja mc md me ajb mg mh mi ajc mk ml mm bk" data-selectable-paragraph=""&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI class="lr ls fv bf lt lu aiy gv lw lx aiz gy lz ma aja mc md me ajb mg mh mi ajc mk ml mm bk"&gt;&lt;STRONG class="mp fw" style="color: #1b3139; font-family: inherit; font-size: 16px;"&gt;Databricks Lakebase documentation:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" style="font-family: inherit; font-size: 16px; font-weight: normal; background-color: #ffffff;" href="https://docs.databricks.com/aws/en/oltp/" target="_blank" rel="noopener ugc nofollow"&gt;https://docs.databricks.com/aws/en/oltp/&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Public Preview announcement:&lt;/STRONG&gt;&amp;nbsp;&lt;A class="ag nj" href="https://www.databricks.com/blog/announcing-lakebase-public-preview" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/blog/announcing-lakebase-public-preview&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Product, Pricing and more:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.databricks.com/product/lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/product/lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Release notes-DataAISummit2025:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://www.databricks.com/blog/what-is-a-lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://www.databricks.com/blog/what-is-a-lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="mn mo nk mp b gt no mr ms gw np mu mv mw nq my mz na nr nc nd ne ns ng nh ni fo bk"&gt;&lt;STRONG class="mp fw"&gt;Benchmark repo:&amp;nbsp;&lt;/STRONG&gt;&lt;A class="ag nj" href="https://github.com/dediggibyte/diggi_lakebase" target="_blank" rel="noopener ugc nofollow"&gt;https://github.com/dediggibyte/diggi_lakebase&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 24 Jul 2025 15:05:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-blogs/partner-blog-introduction-to-databricks-lakebase-unified-oltp/ba-p/126301</guid>
      <dc:creator>Nivethan_Venkat</dc:creator>
      <dc:date>2025-07-24T15:05:59Z</dc:date>
    </item>
  </channel>
</rss>

