{"id":29066,"date":"2025-08-19T14:14:52","date_gmt":"2025-08-19T21:14:52","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=29066"},"modified":"2025-11-14T06:23:32","modified_gmt":"2025-11-14T14:23:32","slug":"designing-resilient-elastic-data-layer-distributed-sql-tidb","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/","title":{"rendered":"From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL"},"content":{"rendered":"<p>Most companies suffer from a serious problem that limits their growth, and most don\u2019t even know it. By the time they find out, it\u2019s costing them millions in missed opportunities for product progress. It\u2019s an infrastructure bottleneck \u2014 the root cause of most major issues with online applications. It causes downstream outages. It slows, and can even halt, product development.&nbsp;I\u2019m talking about the elastic scalability of the data layer. <\/p>\n\n\n\n<p>There\u2019s a reason the databases that sit under most revenue-driving applications are incredibly old. The backbone of an application \u2014 the source of truth for all users \u2014 is a daunting thing to change. But we live in a time where the choice is between changing or staying complacently knee-deep in mud.<\/p>\n\n\n\n<p>Today, the world looks different. The number of users available to monetize has grown immensely. So has the amount of data needed to keep them happy. Every product decision technology orgs make has a potential impact on growth. That makes scalability an existential concern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_Hidden_Bottleneck_to_Growth\"><\/span>A Hidden Bottleneck to Growth<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As a rule of thumb, we call an infrastructure scalable if it can maintain flexibility, performance, reliability, and operability as business demands increase. In a truly scalable system, growth has no impact on operations except for the additional cost of resources like storage and compute.&nbsp;<\/p>\n\n\n\n<p>That\u2019s the ideal. In practice, businesses tend to hit a point where scaling becomes exponentially harder. The problem comes on slowly. Fixing it can take even longer. This is most evident at the data layer. At the heart of the data layer are the application\u2019s sources of truth; its systems of record. These are where application data changes happen first and remain longest. They are typically served by relational, <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/acid-at-scale-why-mysql-needs-distributed-sql-alternative\/\">ACID-compliant databases<\/a>, which are notoriously &#8220;sticky.\u201d The very properties of these databases that enforce data integrity have historically made them very resistant to changes in the application.&nbsp;<\/p>\n\n\n\n<p>Changes to the data layer come in many forms, most of which are downstream of the business or the application. One form is growth in the number of users, as the business adds more customers. Others may have to do with the amount of data you ingest, read, and manage per user, as applications add features and the business finds more ways to leverage data it collects. It could be any or all of the above. Whatever the scenario, the growth in users, user data, and frequency of queries pressures the data layer to do something it was historically not built to do: expand. If the database can\u2019t easily scale, innovation gets impeded or rejected. Tech debt increases. Maintenance costs rise.<\/p>\n\n\n\n<p>This problem is a failure of architecture. Monolithic ACID databases are, at their core, designed to be run on a single instance. As pressure increases on them, applications incur higher latency, lower availability, and ultimately failure.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Distributed_SQL_A_New_Architectural_Paradigm\"><\/span>Distributed SQL: A New Architectural Paradigm<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>So if dynamic scaling is an architectural problem, what does an architectural solution look like?&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/www.pingcap.com\/ko\/blog\/why-distributed-sql-databases-elevate-modern-app-dev\/\">Distributed SQL<\/a> is the most modern answer to this question. Inspired by <a href=\"https:\/\/static.googleusercontent.com\/media\/research.google.com\/en\/\/archive\/spanner-osdi2012.pdf\">innovators at Google<\/a>, distributed SQL architectures are specifically designed to handle scenarios where an organization has outgrown its monolithic relational system. It is an ACID-compliant relational database cluster that scales writes, reads, and data stored horizontally.<\/p>\n\n\n\n<p>To illustrate how distributed SQL differs from a traditional SQL RDBMS, I\u2019ll refer to the open source distributed SQL database <a href=\"https:\/\/github.com\/pingcap\/tidb\">\ud2f0DB<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Inside_TiDB_The_Architecture_of_Scaling_Throughput\"><\/span>Inside TiDB: The Architecture of Scaling Throughput<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The most obvious bottleneck in a system that enforces strong data integrity like ACID compliance is how you safely distribute (scale) data-modifying transactions. This is impossible in traditional application databases.&nbsp;<\/p>\n\n\n\n<p>However, TiDB \u2014&nbsp; inspired by multiple paradigm-shifting Google papers \u2014 does gracefully support horizontal scale of these transactions. Where one ACID-compliant SQL instance controlled write consistency through a single transaction management process, TiDB allows for unlimited transaction managers simultaneously. TiDB automates database sharding behind the scenes, totally transparent to applications. Developers will never need to think about sharding.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Distributed Write Consistency Enabled By \u201cMulti-Raft\u201d<\/h3>\n\n\n\n<p>The first problem of scaling transactions is enforcing the write consistency required to ensure durability and availability of all data written. TiDB stores&nbsp;schemas and tables of any size in many small moveable \u201cshards\u201d called \u201cregions\u201d or key ranges, scattered across a cluster of storage nodes. A single node may have hundreds of thousands of these \u201cshards\u201d and a cluster may have many millions. These key ranges are their own <a href=\"https:\/\/raft.github.io\/\">raft<\/a> replication groups (\u201craft groups\u201d), guaranteeing that every write is replicated to a majority of replicas. Any raft group may accept writes simultaneously. This is referred to as a \u201cmulti-raft\u201d or \u201cmulti-write\u201d architecture. The number of simultaneous writes against the system scales with the cluster.<\/p>\n\n\n\n<p>This is roughly illustrated below (TiKVs are TiDB storage nodes).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeXBjzbmLmQv3JWhHCmUAbrUilqratmNT9aWxWHfLAX9156EY0WmXIDAb_N8WP2ui3Nloeoaz9ncQNRRHpdRXkc3u2QhYJJfS5u8VqucL1Jvbfe899mN77fwJ-spQT3gDOaaqX8-w?key=nOBeO_7AoKYus5v1omPWzxiV\" alt=\"How TiDB provides an elastic data layer.\"\/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Distributed Transaction Atomicity Enabled By 2-Phase Commit<\/h3>\n\n\n\n<p>Write replication consistency is only part of the problem when you distribute important data across many nodes. In relational systems, a single business-driven data change may happen in multiple nodes. The business requires all of the data changes to succeed\u2026or else none succeed. This is called atomicity. TiDB enforces this as well.&nbsp;<\/p>\n\n\n\n<p>To do so, it leverages the <a href=\"https:\/\/www.usenix.org\/legacy\/event\/osdi10\/tech\/full_papers\/Peng.pdf\">Percolator<\/a> 2-phase commit (2PC) protocol, a sophisticated key locking algorithm, to guarantee all or none of a transaction is stored. This achieves atomicity even in cases where large data-modifying transactions are \u201cfanned out\u201d to many storage nodes. The larger the transaction, the more important this is. And TiDB supports any size transaction.<\/p>\n\n\n\n<p>It\u2019s an eye chart but, for the curious, below is a visualization of the 2PC framework implemented in TiDB.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcMeXH9LcvgghGEb3KksZwztEd_oh0AF7uLzCEewtKVK1qHa13-Y6GRh3QbRIteqrLgBmgLqZMO_Etc95c_XE5AFNzzyWlvCyUIBmWvhSQCkXUaL78-HwCyA65yvnOU014wf9Dj1Q?key=nOBeO_7AoKYus5v1omPWzxiV\" alt=\"A visualization of the 2PC framework implemented in TiDB.\"\/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><br><br>Transaction Contention Solved By MVCC<\/h3>\n\n\n\n<p>When you horizontally distribute a transactional workload, many transactions may occur at the same time. Businesses require that each of these transactions see a consistent view of the data the whole time the transaction is processing. In other words, no data change from transaction T2 that occurred after transaction T1 started will be seen by T1. TiDB achieves this by enforcing Snapshot Isolation.&nbsp;<\/p>\n\n\n\n<p>TiDB accomplishes this with multi-version concurrency control (MVCC) to store multiple versions of recently modified data in order by timestamps, enabling time-based snapshots of the entire cluster and providing <a href=\"https:\/\/jepsen.io\/consistency\/models\/snapshot-isolation\">snapshot isolation<\/a>.&nbsp;<\/p>\n\n\n\n<p>This combo of multi-raft, 2PC, and MVCC allows for extremely high throughput of ACID transactions of all kinds that are horizontally and linearly scalable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Read Performance Enabled By a Compute Layer Designed For Distributed Data<\/h3>\n\n\n\n<p>TiDB\u2019s query cost optimizer inherent to the SQL compute layer is distributed-aware. It understands distributed table statistics to optimize plans for how queries will be executed, and it knows locations of key ranges of table data to more optimally execute the cost-optimized query plans. This all keeps query latency low as the cluster scales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cost and Complexity of Scaling Optimized By Physical Architecture<\/h3>\n\n\n\n<p>TiDB\u2019s architecture is not only distributed but disaggregated. Compute and storage are separated. The separation of compute from storage allows for an important separation of concerns, mainly of state. TiDB compute nodes are agile and can be added and removed with ease. When added, they become ready for serving traffic almost immediately. Together, these properties make TiDB faster and more cost-effective to scale out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Parallelism_in_Practice_How_Distributed_SQL_Powers_Scalable_Operations\"><\/span>Parallelism in Practice: How Distributed SQL Powers Scalable Operations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The aforementioned properties facilitate <a href=\"https:\/\/www.pingcap.com\/ko\/horizontal-scaling-vs-vertical-scaling\/\">\uc218\ud3c9\uc801 \ud655\uc7a5<\/a> of data workloads that were not previously scalable. But there\u2019s more reason to consider the true scalability of a data layer than simply increasing throughput and storage of critical data. A system may scale to meet the needs of the workload, sure. But, once in place, can it bend to the needs of a changing business? This is an all too overlooked consideration when choosing scaling systems.<\/p>\n\n\n\n<p>As a system writes and stores more data, the entire paradigm of the database changes. It has to account for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>More data to reorganize when schema changes<\/li>\n\n\n\n<li>More schemas to change<\/li>\n\n\n\n<li>More data to backup and restore<\/li>\n\n\n\n<li>More data to replicate to downstream systems<\/li>\n\n\n\n<li>More data to move when scaling up, scaling down, or recovering from outages<\/li>\n<\/ul>\n\n\n\n<p>Databases can get so bogged down by these operations, businesses will actively avoid using them. Obviously, this destroys developer velocity and stifles business growth.<\/p>\n\n\n\n<p>Distributed SQL systems have the opportunity to parallelize these operations so that as the workload scales, the speed of these operations remain largely constant. TiDB takes these opportunities.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Flexibility Served By Fast, Online Schema Changes<\/h3>\n\n\n\n<p>Arguably most important, and an often overlooked aspect of scaling \u2014 is how often the database\u2019s schema can change, and what it means for the business if that process slows down \u2013 or worse, can\u2019t be accomplished at all. Typically, the larger the schemas and tables, the more cumbersome the process becomes, and the less likely it is that orgs will try to make those changes in the first place. In the most extreme cases, the difficulty of modifying a database schema can keep developer orgs from providing certain features at all.<\/p>\n\n\n\n<p>In addition to transactions, TiDB leverages its <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tidb-architecture\/\">distributed architecture<\/a> for schema changes as well. For instance, when adding an index, data must be read and reorganized. TiDB splits the reading into many workers and splits the reorganizing of the data into many other workers, all scattered across the cluster. This means schema changes do not slow down as the business scales. This mechanism also leverages cloud-native technology like external object storage for storing temporary results, making the entire operation less expensive and more stable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Availability At Scale Supported By Dynamic Fault Tolerance<\/h3>\n\n\n\n<p>When a storage node goes down for any reason, the architecture of many mini raft-replicated shards can save the day. Raft leadership is transferred immediately to consistent replicas contained in the remaining live nodes. This enables reads and writes against the keys that were being served by the downed node. As a result, the availability of your application\u2019s most important data is unmatched.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcnO6FW2wuU3-dzBBa7T7zcfiuuRjR24C0fN26azmF7Y-UpgFQg7IyMiEMgkflcY_MwrwzXzVz0EahT29Ij-Sw3j4lKy5_fb_Qo4lHHg5R5T_BH-1tFWmZcyTUH9D-YegFzh9J-Qw?key=nOBeO_7AoKYus5v1omPWzxiV\" alt=\"A multi-raft mechanism during a storage node outage and recovery.\"\/><\/figure>\n<\/div>\n\n\n<p>The above illustrates the multi-raft mechanism during a storage node outage and recovery. A node goes down (upper left), taking down the shard leaders that were on that node. The cluster quickly realizes this and re-elects leaders on remaining nodes (upper right). During the time to \u201crealization\u201d of the outage, there is a blip in availability loss on the affected keys, followed by a very quick recovery to normal throughput picked up by the remaining nodes (bottom).<\/p>\n\n\n\n<p>This means the larger the cluster, the less impactful a node outage.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Agility Supported By Efficient Scale-Up\/Down<\/h3>\n\n\n\n<p>A many-shard architecture also mitigates the classic challenges of <a href=\"https:\/\/www.pingcap.com\/ko\/solutions\/modernize-mysql-workloads\/\">scaling out<\/a> a sharded system and making sure data is still balanced. This architecture makes for easy redistribution to new nodes, balancing the workload as soon after scaling as possible. The larger the cluster, the faster the scale-out. Scale-down operations are similar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Multi-Tenant_Scaling_Simplifying_SaaS_Growth\"><\/span>Multi-Tenant Scaling: Simplifying SaaS Growth<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In <a href=\"https:\/\/www.pingcap.com\/ko\/solutions\/saas\/\">SaaS<\/a> deployments, scaling up often means scaling up the number of \u201ctenants\u201d: users that are logically walled off from one another for privacy, performance and security purposes. More tenants means more objects like schemas and tables. This in turn means more metadata to manage and more optimizer statistics to collect.<\/p>\n\n\n\n<p>Compared to traditional SQL, distributed SQL architectures can more easily accommodate <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/multi-tenant-architecture-enhancing-database-scalability-tidb\/\">multi-tenant environments<\/a>. I\u2019ll illustrate with an example.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Atlassian Scaled 3 Million Tables with TiDB<\/h3>\n\n\n\n<p>Atlassian recently launched its fully managed developer platform, Forge SQL, enabling 3rd party developers to extend or entirely build their own businesses on top of any Atlassian product, like Jira. They give their builder customers an interface to essentially work with the app database directly.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.pingcap.com\/ko\/blog\/scaling-3-million-tables-how-tidb-powers-atlassian-forge-saas-platform\/\">Atlassian uses TiDB<\/a> as the scalable backend to serve Forge SQL, providing each of Atlassian\u2019s 3rd party developers a shared database system to store their own customers\u2019 data. This raises several traditionally difficult SaaS backend engineering questions.<\/p>\n\n\n\n<p>To provide each Forge customer their private data, each gets their own schema\/s. But that means potentially a whole lot of those, and potentially a whole lot of trouble. But TiDB is designed with this challenge in mind, as shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"746\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/19152325\/Screenshot-2025-08-19-at-6.22.44-PM-1024x746.png\" alt=\"A typical representation of a one-schema-per-tenant model for SaaS.\" class=\"wp-image-29076\" style=\"width:667px;height:auto\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/08\/19152325\/Screenshot-2025-08-19-at-6.22.44-PM-1024x746.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/08\/19152325\/Screenshot-2025-08-19-at-6.22.44-PM-300x219.png 300w, https:\/\/static.pingcap.com\/files\/2025\/08\/19152325\/Screenshot-2025-08-19-at-6.22.44-PM-768x560.png 768w, https:\/\/static.pingcap.com\/files\/2025\/08\/19152325\/Screenshot-2025-08-19-at-6.22.44-PM.png 1164w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>To start, TiDB handles the initialization of these schemas by allowing parallel creation of databases and tables, drastically speeding up object creation at scale.&nbsp;<\/p>\n\n\n\n<p>More importantly, there is the problem of each of these customers wanting to change their schemas without interrupting their own customers\u2019 experiences, and the experiences of every other Atlassian customer\u2019s customers. For this, TiDB provides distributed, in-place and <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/effective-online-ddl-database-schema-changes-zero-downtime\/\">online DDL<\/a>, allowing operators to migrate schemas for every tenant much faster without interrupting online traffic.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Atlassian Makes Changes to Its Forge SaaS Platform<\/h3>\n\n\n\n<p>If Atlassian needs to roll out changes to all Forge customers at once, TiDB offers parallel schema migrations\u2014also online. Instead of executing a schema change on one object, temporarily stopping traffic to that object, waiting for it to finish, resuming traffic against it and then repeating that possibly millions more times (in SaaS cases), TiDB executes the changes in parallel.<\/p>\n\n\n\n<p>Bear in mind that schema objects, at this scale, contain a lot of data that has to be memory-accessible to keep latency low. The memory requirements can be too much for most databases. Monolithic databases avoid the problem by keeping the metadata on disk. This makes metadata required for every query and much slower to access. Instead, TiDB leverages an LRU cache and other optimizations to load the object metadata, no matter the size, for use in queries. Busier Forge applications will get better performance because the metadata their queries need will be accessible lightning-quick.<\/p>\n\n\n\n<p>Forge customers will also have differing table sizes and properties that can cause confusion \u2013 by the nature of using a single scalable system \u2013 in a single global query planner that does cost optimization based on table statistics. This means collecting individual stats from every table of every customer, which then means an enormous amount of statistics. TiDB is designed to intelligently gather these statistics so as to reduce impact on each customer\u2019s traffic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion_Scale_is_an_Architecture_Problem_Not_a_Maintenance_Problem\"><\/span>Conclusion: Scale is an Architecture Problem, Not a Maintenance Problem&nbsp;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Distributed databases like TiDB are the answer to a serious problem that many enterprises are just waking up to. They\u2019re designed with horizontal scale in mind while allowing users to work within the familiar confines of a traditional interface like MySQL. They free developers from the manual, error-prone drudge work of scale: sharding, re-sharding, and rejecting application changes because of data rigidity. When TiDB is in place, organizations that encounter scaling events don\u2019t have to worry about application traffic slowing down or application changes being infeasible. They unlock engineering by removing scaling concerns in the data layer.<\/p>\n\n\n\n<p>If you\u2019re struggling with scale, it\u2019s easy to tell yourself a solution is just around the corner. One more workaround. One more all-nighter. The truth is, any gains you achieve this way won\u2019t last. At least not for long. The reason these problems keep cropping up is you\u2019re struggling with your architecture. You\u2019re trying to make systems do things they were never designed to. Innovating with velocity means building on a foundation designed for scale.&nbsp;<\/p>\n\n\n\n<p>Want to pressure-test your design? <strong><a href=\"https:\/\/www.pingcap.com\/ko\/demo\/\">Schedule a 30-minute architecture review<\/a><\/strong> and get tailored guidance on scale, reliability, and cost.<\/p>","protected":false},"excerpt":{"rendered":"<p>Most companies suffer from a serious problem that limits their growth, and most don\u2019t even know it. By the time they find out, it\u2019s costing them millions in missed opportunities for product progress. It\u2019s an infrastructure bottleneck \u2014 the root cause of most major issues with online applications. It causes downstream outages. It slows, and [&hellip;]<\/p>\n","protected":false},"author":223,"featured_media":29070,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[145],"tags":[56,147,271,162,111],"class_list":["post-29066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-thought-leadership","tag-acid-transaction","tag-distributed-sql","tag-multi-tenancy","tag-saas","tag-tidb"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png","author_info":{"display_name":"Sam Dillard","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/sam_dillard\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Elastic Data Layer: Architecting a Resilient System with TiDB<\/title>\n<meta name=\"description\" content=\"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.\" \/>\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\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Elastic Data Layer: Architecting a Resilient System with TiDB\" \/>\n<meta property=\"og:description\" content=\"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/designing-resilient-elastic-data-layer-distributed-sql-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-08-19T21:14:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-14T14:23:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151927\/tidb_1200x627-2-1.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=\"Sam Dillard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151942\/tidb_twitter_1600x900-1-2.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=\"Sam Dillard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\"},\"author\":{\"name\":\"Sam Dillard\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/59c107205ef1b72deabc0ad81b7ee64b\"},\"headline\":\"From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL\",\"datePublished\":\"2025-08-19T21:14:52+00:00\",\"dateModified\":\"2025-11-14T14:23:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\"},\"wordCount\":2547,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png\",\"keywords\":[\"ACID Transaction\",\"Distributed SQL\",\"Multi-Tenancy\",\"SaaS\",\"TiDB\"],\"articleSection\":[\"Thought Leadership\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\",\"name\":\"Elastic Data Layer: Architecting a Resilient System with TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png\",\"datePublished\":\"2025-08-19T21:14:52+00:00\",\"dateModified\":\"2025-11-14T14:23:32+00:00\",\"description\":\"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png\",\"width\":3600,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL\"}]},{\"@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\/59c107205ef1b72deabc0ad81b7ee64b\",\"name\":\"Sam Dillard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/18063137\/sam-150x150.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/18063137\/sam-150x150.png\",\"caption\":\"Sam Dillard\"},\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/sam_dillard\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Elastic Data Layer: Architecting a Resilient System with TiDB","description":"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.","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\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/","og_locale":"ko_KR","og_type":"article","og_title":"Elastic Data Layer: Architecting a Resilient System with TiDB","og_description":"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2025-08-19T21:14:52+00:00","article_modified_time":"2025-11-14T14:23:32+00:00","og_image":[{"width":2400,"height":1254,"url":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151927\/tidb_1200x627-2-1.png","type":"image\/png"}],"author":"Sam Dillard","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151942\/tidb_twitter_1600x900-1-2.png","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Sam Dillard","Est. reading time":"13\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/"},"author":{"name":"Sam Dillard","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/59c107205ef1b72deabc0ad81b7ee64b"},"headline":"From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL","datePublished":"2025-08-19T21:14:52+00:00","dateModified":"2025-11-14T14:23:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/"},"wordCount":2547,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png","keywords":["ACID Transaction","Distributed SQL","Multi-Tenancy","SaaS","TiDB"],"articleSection":["Thought Leadership"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/","url":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/","name":"Elastic Data Layer: Architecting a Resilient System with TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png","datePublished":"2025-08-19T21:14:52+00:00","dateModified":"2025-11-14T14:23:32+00:00","description":"Discover how TiDB turns monolithic databases into a resilient, elastic data layer that can scale seamlessly while unlocking product velocity.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.png","width":3600,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL"}]},{"@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\/59c107205ef1b72deabc0ad81b7ee64b","name":"Sam Dillard","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/18063137\/sam-150x150.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/18063137\/sam-150x150.png","caption":"Sam Dillard"},"url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/sam_dillard\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/designing-resilient-elastic-data-layer-distributed-sql-tidb\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"tidb_feature_1800x600 (1)\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/19151909\/tidb_feature_1800x600-1-2.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\">Thought Leadership<\/div><\/div><h5 class=\"card-resource__title\">From Outages to Velocity: Designing a Resilient, Elastic Data Layer with Distributed SQL<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29066","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\/223"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=29066"}],"version-history":[{"count":25,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29066\/revisions"}],"predecessor-version":[{"id":30504,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29066\/revisions\/30504"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/29070"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=29066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=29066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=29066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}