{"id":30870,"date":"2025-12-09T12:20:21","date_gmt":"2025-12-09T20:20:21","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=30870"},"modified":"2025-12-17T13:53:03","modified_gmt":"2025-12-17T21:53:03","slug":"how-atlassian-scaled-three-million-tables-multi-tenancy-tidb","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/","title":{"rendered":"How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB"},"content":{"rendered":"<p>Atlassian is an enterprise software company that runs one of the world\u2019s largest <a href=\"https:\/\/www.pingcap.com\/ko\/solutions\/saas\/\">SaaS<\/a> platforms. Best known for Jira, Confluence, Trello, and Bitbucket, the company helps teams plan, build, and run software. As tenant counts and compliance demands grew, Atlassian hit the limits of shared and siloed multi-tenancy models on a massive sharded PostgreSQL estate.&nbsp;<\/p>\n\n\n\n<p>At <a href=\"https:\/\/www.pingcap.com\/ko\/tidb-scaile-summit\/\">TiDB SCaiLE 2025<\/a>, Senior Principal Software Engineer Sergey Mineyev detailed how Atlassian re-platformed <a href=\"https:\/\/developer.atlassian.com\/platform\/forge\/\">Forge<\/a>, its plugin ecosystem platform, to <a href=\"https:\/\/www.pingcap.com\/ko\/tidb\/\">\ud2f0DB<\/a> for connection scale, metadata scalability, per-tenant operations (BYOK, residency, PITR), and <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/achieving-zero-downtime-upgrades-tidb\/\">zero-downtime upgrades<\/a>. Ultimately, the company collapsed hundreds of PostgreSQL database instances into just 16 global TiDB clusters.<\/p>\n\n\n\n<p>In this blog, we\u2019ll break down Atlassian\u2019s journey to scalable multi-tenancy with TiDB. We\u2019ll explore the key architectural choices, the consolidation to 16 global TiDB clusters, and practical takeaways for any SaaS team wrestling with multi-tenant growth.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"How Atlassian Scales 3M+ Tenants: Multi\u2011Tenant SaaS on TiDB\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/asnCJI39MpE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Challenge_Multi-Tenancy_at_Atlassian_Scale\"><\/span>The Challenge: Multi-Tenancy at Atlassian Scale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Atlassian\u2019s growth introduced a uniquely hard dimension: <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/scaling-3-million-tables-how-tidb-powers-atlassian-forge-saas-platform\/\">multi-tenancy at millions of tenants<\/a>, each with complex schemas (Jira alone has 800+ tables) and hundreds of third-party plugin schemas. On top of that came enterprise requirements: per-tenant BYOK encryption, data residency moves on request, strict security isolation, and per-tenant restore. The result was an ever-expanding fleet of sharded PostgreSQL clusters, complex bin-packing of tenants, heavyweight connection pooling, and constant hotspot management resulting in high cost and high operational drag.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"435\" src=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09120653\/Screenshot-2025-12-09-at-3.06.41-PM-1024x435.png\" alt=\"Atlassian's original data architecture featuring hundreds of PostgreSQL clusters and complex shard rebalancing.\" class=\"wp-image-30946\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09120653\/Screenshot-2025-12-09-at-3.06.41-PM-1024x435.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/12\/09120653\/Screenshot-2025-12-09-at-3.06.41-PM-300x127.png 300w, https:\/\/static.pingcap.com\/files\/2025\/12\/09120653\/Screenshot-2025-12-09-at-3.06.41-PM-768x326.png 768w, https:\/\/static.pingcap.com\/files\/2025\/12\/09120653\/Screenshot-2025-12-09-at-3.06.41-PM.png 1170w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Atlassian&#8217;s original data architecture featuring hundreds of PostgreSQL clusters and complex shard rebalancing.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Two standard multi-tenancy models both broke down:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Shared-schema<\/strong> (all tenants in the same tables) simplified operations, but made per-tenant encryption, residency moves, and workload isolation nearly impossible to guarantee within SLAs.<\/li>\n\n\n\n<li><strong>Database-per-tenant<\/strong> made per-tenant operations easy, but created metadata explosion (hundreds of millions of objects) and connection-management limits that traditional engines (Postgres\/MySQL) couldn\u2019t sustain\u2014leading to brittle, expensive sharding and rebalancing.<\/li>\n<\/ul>\n\n\n\n<p>A hybrid \u201cshared for most, silo for the top 1%\u201d approach helped, but at Atlassian scale 1% still meant tens of thousands of databases. Again, this pushed the limits of metadata and connections.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Goal_Collapse_Instance_Sprawl_Keep_Per-Tenant_Control\"><\/span>The Goal: Collapse Instance Sprawl, Keep Per-Tenant Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Atlassian set a clear target for its plugin platform: <strong>replace ~750+ Postgres clusters<\/strong> with <strong>~16 global TiDB clusters<\/strong> (12 regions plus 4 regulated environments). They wanted to retire bespoke sharding and connection pooling, simplify tenant placement, and gain zero-downtime major version upgrades.<\/p>\n\n\n\n<p>Evaluation covered multiple <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/why-distributed-sql-databases-elevate-modern-app-dev\/\">distributed SQL<\/a> engines. According to the keynote, TiDB was the only platform that matched the bin-packing ratio and operational profile Atlassian needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TiDB_to_the_Rescue_Why_Distributed_SQL_Was_the_Optimal_Choice\"><\/span>TiDB to the Rescue! Why Distributed SQL Was the Optimal Choice<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Here\u2019s how Atlassian unlocked true <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/3-tips-scale-multi-tenant-saas-data-without-pain\/\">multi-tenant scale<\/a> without sharding: distributed SQL let them raise connection ceilings, shed metadata limits, keep per-tenant ops online, and speed up schema changes. Below are the four capabilities that made TiDB the clear choice.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"306\" src=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09121041\/Screenshot-2025-12-09-at-3.10.29-PM-1024x306.png\" alt=\"Atlassian's updated data architecture with TiDB at it core, leading to database consolidation from 750 Postgres clusters to only 16 TiDB clusters.\" class=\"wp-image-30947\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09121041\/Screenshot-2025-12-09-at-3.10.29-PM-1024x306.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/12\/09121041\/Screenshot-2025-12-09-at-3.10.29-PM-300x90.png 300w, https:\/\/static.pingcap.com\/files\/2025\/12\/09121041\/Screenshot-2025-12-09-at-3.10.29-PM-768x230.png 768w, https:\/\/static.pingcap.com\/files\/2025\/12\/09121041\/Screenshot-2025-12-09-at-3.10.29-PM.png 1166w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Atlassian&#8217;s updated data architecture with TiDB at its core, leading to database consolidation from 750 Postgres clusters to only 16 TiDB clusters.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">1. Multi-Master SQL Compute for Massive Connections<\/h3>\n\n\n\n<p>TiDB\u2019s <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/3-tips-scale-multi-tenant-saas-data-without-pain\/\">stateless SQL layer<\/a> allows every TiDB server to accept read\/write sessions, eliminating the \u201csingle writer node\u201d bottleneck. With tuning (e.g., token limits, memory-optimized compute types), Atlassian validated ~500,000 concurrent active connections per cluster in a region. Thread-per-connection engines often struggle to approach these kinds of numbers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Horizontally Scalable Metadata<\/h3>\n\n\n\n<p>TiDB stores metadata in the stateless SQL layer and lazily caches only what active queries need. Because most tenants are inactive at any moment, this avoids loading the entire catalog and effectively removes practical metadata ceilings. Upgrades to the metadata cache and startup path cut node initialization from ~20 minutes to ~2 minutes even at extreme catalog sizes. Backup tooling and region sizing were tuned for large catalogs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Per-Tenant Operations without Downtime<\/h3>\n\n\n\n<p>The database-per-tenant operating model remains, but is now feasible at scale. Per-tenant encryption, residency moves, and workload\/security isolation map cleanly to a database as the unit of operation without the prior fleet sprawl and custom control planes. Major version upgrades run without downtime.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Schema Evolution Throughput<\/h3>\n\n\n\n<p>Atlassian\u2019s SLO: finish schema changes across the fleet within 24 hours. TiDB\u2019s DDL throughput increased ~6\u20137\u00d7 (from ~1,000 DDLs\/min to ~6\u20137k DDLs\/min) and foreign-key-related slowdowns were addressed, allowing Atlassian to meet its upgrade SLOs. Further <a href=\"https:\/\/www.pingcap.com\/ko\/horizontal-scaling-vs-vertical-scaling\/\">\uc218\ud3c9\uc801 \ud655\uc7a5<\/a> of the DDL control plane is possible, but today\u2019s throughput already cleared the critical bar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Migration_Operations_From_Complex_Shards_to_a_Simple_Global_Footprint\"><\/span>Migration &amp; Operations: From Complex Shards to a Simple Global Footprint<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Atlassian migrated the Forge plugin platform first, historically a proving ground that stressed sharded architectures. The new design replaces hundreds of fragmented Postgres clusters with 16 TiDB clusters mapped to regions and regulated environments. The move eliminates most bespoke tenant placement and shard rebalancing logic, reduces connection-pooling complexity, and makes hotspots visible and correctable through standard TiDB controls and observability.<\/p>\n\n\n\n<p>Operationally, the team:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tuned TiDB for high-connection density on the compute tier.<\/li>\n\n\n\n<li>Adjusted region sizing and moderated auto-splitting to manage region count as metadata scaled.<\/li>\n\n\n\n<li>Adopted the newer metadata cache to speed restarts\/rollouts.<\/li>\n\n\n\n<li>Validated log\/snapshot backups at scale after tool improvements for large metadata sets.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Results_3M_Tables_at_Scale_Zero_Performance_Degradation\"><\/span>The Results: 3M+ Tables at Scale, Zero Performance Degradation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fleet consolidation:<\/strong> From hundreds of Postgres instances to <strong>~16 TiDB clusters<\/strong> globally for the plugin platform.<\/li>\n\n\n\n<li><strong>Connection scale:<\/strong> ~<strong>500k<\/strong> concurrent active connections per cluster validated after tuning; successfully tested with <strong>4,000+<\/strong> schemas across <strong>300\ub9cc+<\/strong> tables.<\/li>\n\n\n\n<li><strong>Metadata scalability:<\/strong> Practical removal of prior catalog ceilings; <strong>~2-minute<\/strong> TiDB node initialization on the largest clusters.<\/li>\n\n\n\n<li><strong>Schema velocity:<\/strong> DDL pipeline throughput <strong>6\u20137\u00d7<\/strong> higher, enabling <strong>24-hour<\/strong> fleet-wide schema evolution SLOs.<\/li>\n\n\n\n<li><strong>No-downtime upgrades:<\/strong> Major version changes proceed without maintenance windows.<\/li>\n<\/ul>\n\n\n\n<p>Atlassian also reports a dramatic improvement in bin-packing ratio, or how many tenants fit per cluster. This enables the desired consolidation and cost reductions while maintaining per-tenant operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_Next_for_Atlassian\"><\/span>What\u2019s Next for Atlassian<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>With the Forge plugin platform live, Atlassian is onboarding smaller products to TiDB (e.g., Atlas, Loom, and potentially Bitbucket) while also exploring migration paths for flagship products Jira and Confluence. The long-term aim is a unified, globally consistent foundation that preserves per-tenant guarantees without re-introducing fleet sprawl.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Takeaways_for_Large_SaaS_Platform_Builders\"><\/span>Takeaways for Large SaaS Platform Builders<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Choose the multi-tenancy model you can operate at scale.<\/strong> Shared schema simplifies day one but complicates per-tenant obligations; database-per-tenant enables clean operations but demands an engine that can handle connections and metadata at extreme scale.<\/li>\n\n\n\n<li><strong>Treat connections and metadata as first-class scaling dimensions.<\/strong> Multi-master SQL compute and lazy metadata caching change what\u2019s operationally possible.<\/li>\n\n\n\n<li><strong>Demand upgrade velocity<\/strong>. Schema throughput and zero-downtime upgrades are core SLOs when you operate at Atlassian\u2019s tenant count.<\/li>\n<\/ul>\n\n\n\n<p>As emphasized during this talk, distributed SQL at global scale isn\u2019t just about higher QPS. It\u2019s about making per-tenant guarantees feasible without recreating the operational cost and complexity of yesterday\u2019s sharded architecture. This is precisely the outcome TiDB enabled in production.<\/p>\n\n\n\n<p><em>Want the exact steps Atlassian-style multi-tenancy requires? Check out our <a href=\"https:\/\/www.pingcap.com\/ko\/playbook-noisy-neighbor-multi-tenant-mysql\/\">multi-tenancy playbook<\/a> to discover how TiDB enforces tenant isolation and kills noisy neighbors without per-tenant silos.<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Atlassian is an enterprise software company that runs one of the world\u2019s largest SaaS platforms. Best known for Jira, Confluence, Trello, and Bitbucket, the company helps teams plan, build, and run software. As tenant counts and compliance demands grew, Atlassian hit the limits of shared and siloed multi-tenancy models on a massive sharded PostgreSQL estate.&nbsp; [&hellip;]<\/p>\n","protected":false},"author":218,"featured_media":30935,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[199],"tags":[401,147,271,111,225],"class_list":["post-30870","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customer-stories","tag-atlassian","tag-distributed-sql","tag-multi-tenancy","tag-tidb","tag-zero-downtime-upgrade"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png","author_info":{"display_name":"Brian Foster","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/brian-james-foster\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables<\/title>\n<meta name=\"description\" content=\"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables\" \/>\n<meta property=\"og:description\" content=\"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-09T20:20:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T21:53:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09115023\/tidb_1200x627-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brian Foster\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09115048\/tidb_twitter_1600x900-3.png\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Foster\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\"},\"author\":{\"name\":\"Brian Foster\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/e2c94b706bf3eaeebbd9a511005c41f2\"},\"headline\":\"How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB\",\"datePublished\":\"2025-12-09T20:20:21+00:00\",\"dateModified\":\"2025-12-17T21:53:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\"},\"wordCount\":1151,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png\",\"keywords\":[\"Atlassian\",\"Distributed SQL\",\"Multi-Tenancy\",\"TiDB\",\"Zero-downtime Upgrade\"],\"articleSection\":[\"Customer Story\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\",\"name\":\"Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png\",\"datePublished\":\"2025-12-09T20:20:21+00:00\",\"dateModified\":\"2025-12-17T21:53:03+00:00\",\"description\":\"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png\",\"width\":3600,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/e2c94b706bf3eaeebbd9a511005c41f2\",\"name\":\"Brian Foster\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2023\/07\/06161300\/brian-foster-150x150.jpeg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2023\/07\/06161300\/brian-foster-150x150.jpeg\",\"caption\":\"Brian Foster\"},\"description\":\"Global Content Director\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/brian-foster-33453a6\/\"],\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/brian-james-foster\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables","description":"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/","og_locale":"ko_KR","og_type":"article","og_title":"Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables","og_description":"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2025-12-09T20:20:21+00:00","article_modified_time":"2025-12-17T21:53:03+00:00","og_image":[{"width":2400,"height":1254,"url":"https:\/\/static.pingcap.com\/files\/2025\/12\/09115023\/tidb_1200x627-2.png","type":"image\/png"}],"author":"Brian Foster","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2025\/12\/09115048\/tidb_twitter_1600x900-3.png","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Brian Foster","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/"},"author":{"name":"Brian Foster","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/e2c94b706bf3eaeebbd9a511005c41f2"},"headline":"How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB","datePublished":"2025-12-09T20:20:21+00:00","dateModified":"2025-12-17T21:53:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/"},"wordCount":1151,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png","keywords":["Atlassian","Distributed SQL","Multi-Tenancy","TiDB","Zero-downtime Upgrade"],"articleSection":["Customer Story"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/","url":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/","name":"Atlassian Multi-Tenancy at Scale with TiDB: 3M+ Tables","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png","datePublished":"2025-12-09T20:20:21+00:00","dateModified":"2025-12-17T21:53:03+00:00","description":"Atlassian collapsed hundreds of Postgres clusters into 16 TiDB clusters, scaling to 3M+ tables with multi-tenancy and zero-downtime upgrades.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png","width":3600,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/e2c94b706bf3eaeebbd9a511005c41f2","name":"Brian Foster","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2023\/07\/06161300\/brian-foster-150x150.jpeg","contentUrl":"https:\/\/static.pingcap.com\/files\/2023\/07\/06161300\/brian-foster-150x150.jpeg","caption":"Brian Foster"},"description":"Global Content Director","sameAs":["https:\/\/www.linkedin.com\/in\/brian-foster-33453a6\/"],"url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/brian-james-foster\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/how-atlassian-scaled-three-million-tables-multi-tenancy-tidb\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"tidb_feature_1800x600 (1)\" src=\"https:\/\/static.pingcap.com\/files\/2025\/12\/09114954\/tidb_feature_1800x600-1.png\" loading=\"lazy\" width=3600 height=1200 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Customer Story<\/div><\/div><h5 class=\"card-resource__title\">How Atlassian Scaled to 3M+ Tables: Multi-Tenant Control with TiDB<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/30870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/218"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=30870"}],"version-history":[{"count":20,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/30870\/revisions"}],"predecessor-version":[{"id":31074,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/30870\/revisions\/31074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/30935"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=30870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=30870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=30870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}