{"id":21263,"date":"2024-10-01T04:04:28","date_gmt":"2024-10-01T11:04:28","guid":{"rendered":"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/"},"modified":"2024-10-01T05:51:50","modified_gmt":"2024-10-01T12:51:50","slug":"exploring-tidbs-distributed-sql-database-architecture","status":"publish","type":"article","link":"https:\/\/www.pingcap.com\/ko\/article\/exploring-tidbs-distributed-sql-database-architecture\/","title":{"rendered":"Exploring TiDB&#8217;s Distributed SQL Database Architecture"},"content":{"rendered":"<h2>Understanding TiDB&#8217;s Unique Architecture: A Deep Dive for Database Enthusiasts<\/h2>\n<h3>Introduction to TiDB Architecture<\/h3>\n<p>In the burgeoning landscape of database technologies, <a href=\"https:\/\/tidb.io\/\">\ud2f0DB<\/a> holds a prominent position as an innovative <a href=\"https:\/\/tidb.io\/blog\/why-distributed-sql-databases-elevate-modern-app-dev\/\">distributed SQL database<\/a>. Combining the best features of relational and NoSQL databases, TiDB is renowned for its <a href=\"https:\/\/tidb.io\/blog\/htap-demystified-defining-modern-data-architecture-tidb\/\">Hybrid Transactional and Analytical Processing<\/a> (HTAP) capabilities. The foundation of TiDB is structured to provide a seamless and integrated experience, accommodating both online transactional processing (OLTP) and real-time analytics (OLAP) within a single platform.<\/p>\n<p><strong>The Benefits of a NewSQL Database<\/strong><\/p>\n<p>The emergence of NewSQL databases bridges the gap between the traditional SQL relational databases and the modern NoSQL databases, offering a distributed architecture that is scalable and robust:<\/p>\n<ol>\n<li><strong>\ud655\uc7a5\uc131<\/strong>: TiDB&#8217;s design allows horizontal scaling, meaning you can add nodes to the database to improve performance and storage capabilities without downtime.<\/li>\n<li><strong>Consistency<\/strong>: With ACID transaction compliance and support for <a href=\"https:\/\/tidb.io\/blog\/distributed-transactions-tidb\/\">distributed transactions<\/a>, TiDB ensures strong consistency across multiple nodes.<\/li>\n<li><strong>\uace0\uac00\uc6a9\uc131<\/strong>: TiDB incorporates built-in failover mechanisms and replicates data across multiple nodes, ensuring minimal downtime.<\/li>\n<li><strong>Compatibility<\/strong>: TiDB maintains full compatibility with the MySQL 5.7 protocol, enabling easy migration of applications with minimal code changes.<\/li>\n<\/ol>\n<p>By leveraging these strengths, TiDB provides a versatile solution for modern data-centric applications, addressing challenges like high concurrency, large data volumes, and the need for real-time analytics.<\/p>\n<h3>TiDB&#8217;s Key Components<\/h3>\n<p>The architecture of TiDB consists of several key components that work in cohesion to deliver a powerful and reliable database solution. These components include the <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tidb-architecture\">TiDB Server<\/a>, <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tikv-overview\">TiKV<\/a>, and the <a href=\"https:\/\/docs.pingcap.com\/tidb\/v7.1\/tidb-scheduling\">Placement Driver (PD)<\/a>.<\/p>\n<p><strong>TiDB Server: SQL Processing Layer<\/strong><\/p>\n<p>The TiDB server acts as the SQL layer, managing client requests and generating execution plans for SQL queries. It is designed to be stateless, which means it does not store data but handles SQL parsing, optimization, and execution plans. By separating the computing from storage, the TiDB server is intrinsically scalable. It provides a unified interface to applications, supported by load balancing components such as Linux Virtual Server (LVS) and HAProxy.<\/p>\n<p><strong>TiKV: Distributed Storage Engine<\/strong><\/p>\n<p><a href=\"https:\/\/docs.pingcap.com\/tidb\/v7.1\/tikv-overview\">TiKV<\/a> serves as the distributed storage engine for TiDB, responsible for storing data persistently. It is a key-value store based on the Raft consensus algorithm, ensuring data consistency and high availability. Each piece of data is stored in a region, and each region is replicated across three nodes by default. TiKV supports ACID transactions with snapshot isolation, enabling distributed transactions at the SQL level.<\/p>\n<p><strong>Placement Driver (PD): Cluster Management<\/strong><\/p>\n<p>The <a href=\"https:\/\/docs.pingcap.com\/tidb\/v7.1\/tidb-scheduling\">Placement Driver (PD)<\/a> is the brain of the TiDB cluster. It manages metadata, coordinates distributed transactions, and dynamically allocates transaction IDs. PD servers store metadata of data distribution and topology, and they monitor and balance the cluster by scheduling data across TiKV nodes based on real-time metrics.<\/p>\n<h3>Data Distribution and Replication in TiDB<\/h3>\n<p><strong>Sharding and Automatic Data Distribution<\/strong><\/p>\n<p><a href=\"https:\/\/tidb.io\/\">\ud2f0DB<\/a> automatically shreds tables into smaller chunks known as regions. Each region is a contiguous range of rows, managed independently. This approach allows TiDB to distribute data across many nodes, providing balanced workload distribution and preventing bottlenecks. As data grows, regions are split and redistributed dynamically, ensuring efficient data access and storage.<\/p>\n<p><strong>Consistent Hashing and Region Split<\/strong><\/p>\n<p>Consistent hashing is employed to manage the dynamic partitioning of key spaces across the distributed nodes. In TiDB, when a region exceeds a certain size (by default, 96 MB), it automatically splits into two smaller regions. These regions are then distributed across different nodes to ensure load balancing and support scalability.<\/p>\n<p><strong>Raft Protocol for Data Replication<\/strong><\/p>\n<p>The Raft protocol is central to TiDB&#8217;s reliability and data consistency. <a href=\"https:\/\/tidb.io\/blog\/design-and-implementation-of-multi-raft\/\">Raft<\/a> is used to achieve consensus among distributed nodes, ensuring that all replicas of a particular region have the same data. In a Raft group, there is a leader elected through consensus which handles client requests and log replication. The Raft protocol ensures that a majority of replicas must agree before a transaction is committed, thus providing strong consistency.<\/p>\n<div class=\"codehilite\">\n<pre><span><\/span><code><span class=\"c1\"># Example: Checking Raft Leader in TiKV<\/span>\ntikv-ctl<span class=\"w\"> <\/span>--host<span class=\"w\"> <\/span>&lt;TiKV-node-ip&gt;<span class=\"w\"> <\/span>raft<span class=\"w\"> <\/span>--region<span class=\"w\"> <\/span>&lt;region-id&gt;<span class=\"w\"> <\/span>--show-region-id\n<\/code><\/pre>\n<\/div>\n<h3>Fault Tolerance and High Availability<\/h3>\n<p><strong>Multi-Raft Group Architecture<\/strong><\/p>\n<p>TiDB employs a multi-Raft group architecture, where each region is managed by its own Raft group. This approach ensures that the failure or delay in one group does not affect the others, thus preserving the database&#8217;s overall availability and performance.<\/p>\n<p><strong>Failover Mechanisms and Leader Election<\/strong><\/p>\n<p>In the event of a node failure, TiDB&#8217;s automatic failover mechanisms kick in. <a href=\"https:\/\/tidb.io\/blog\/design-and-implementation-of-multi-raft\/\">Raft<\/a> ensures that if the leader of a region becomes unavailable, a new leader is elected from the available replicas. This process is typically swift, ensuring minimal disruption to database operations.<\/p>\n<p><strong>Data Consistency and Isolation Levels<\/strong><\/p>\n<p>TiDB supports ACID transactions and ensures data consistency through the <a href=\"https:\/\/tidb.io\/blog\/design-and-implementation-of-multi-raft\/\">Raft protocol<\/a>. By default, transactions in TiDB follow snapshot isolation, which is a form of multiversion concurrency control (MVCC). This ensures that read operations see a consistent snapshot of the database at a particular point in time, while write operations do not interfere with each other&#8217;s visibility.<\/p>\n<div class=\"codehilite\">\n<pre><span><\/span><code><span class=\"c1\">-- Example: Starting a Transaction in TiDB<\/span>\n<span class=\"k\">START<\/span><span class=\"w\"> <\/span><span class=\"k\">TRANSACTION<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">-- Example: Performing a Write Operation<\/span>\n<span class=\"k\">UPDATE<\/span><span class=\"w\"> <\/span><span class=\"n\">users<\/span><span class=\"w\"> <\/span><span class=\"k\">SET<\/span><span class=\"w\"> <\/span><span class=\"n\">balance<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">balance<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">100<\/span><span class=\"w\"> <\/span><span class=\"k\">WHERE<\/span><span class=\"w\"> <\/span><span class=\"n\">user_id<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">-- Example: Committing the Transaction<\/span>\n<span class=\"k\">COMMIT<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<h3>Performance Optimization in TiDB<\/h3>\n<p><strong>Horizontal Scalability and Load Balancing<\/strong><\/p>\n<p>TiDB&#8217;s architecture supports horizontal scalability, allowing administrators to add or remove nodes as workload demands change. With its distributed nature and stateless TiDB servers, the database can handle increased capacity seamlessly. Load balancing components like LVS and HAProxy distribute incoming requests among available TiDB servers, ensuring efficient resource utilization.<\/p>\n<p><strong>Efficient Query Processing and Indexing<\/strong><\/p>\n<p>TiDB optimizes query processing through several techniques, including cost-based query optimization and the use of secondary indexes. By analyzing query patterns and data distribution, TiDB generates efficient execution plans. Additionally, the integration of the <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tiflash-overview\">TiFlash<\/a> columnar storage engine accelerates analytical queries by leveraging optimized columnar storage and processing.<\/p>\n<div class=\"codehilite\">\n<pre><span><\/span><code><span class=\"c1\">-- Example: Creating an Index in TiDB<\/span>\n<span class=\"k\">CREATE<\/span><span class=\"w\"> <\/span><span class=\"k\">INDEX<\/span><span class=\"w\"> <\/span><span class=\"n\">idx_user_balance<\/span><span class=\"w\"> <\/span><span class=\"k\">ON<\/span><span class=\"w\"> <\/span><span class=\"n\">users<\/span><span class=\"p\">(<\/span><span class=\"n\">balance<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">-- Example: Optimized Query Using Indexes<\/span>\n<span class=\"k\">SELECT<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"k\">FROM<\/span><span class=\"w\"> <\/span><span class=\"n\">users<\/span><span class=\"w\"> <\/span><span class=\"k\">WHERE<\/span><span class=\"w\"> <\/span><span class=\"n\">balance<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">1000<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p><strong>Real-World Benchmarking and Performance Tuning<\/strong><\/p>\n<p>Real-world use cases of TiDB demonstrate its ability to handle massive datasets and high concurrency with low latency. Benchmarking tools like Sysbench can be used to measure the performance of TiDB under various workloads. Performance tuning practices, such as optimizing SQL queries, configuring the TiKV and PD parameters, and monitoring system metrics, further enhance TiDB&#8217;s efficiency.<\/p>\n<div class=\"codehilite\">\n<pre><span><\/span><code><span class=\"c1\"># Example: Running Sysbench Benchmark on TiDB<\/span>\nsysbench<span class=\"w\"> <\/span>--config-file<span class=\"o\">=<\/span>config.ini<span class=\"w\"> <\/span>oltp_read_write<span class=\"w\"> <\/span>run\n<\/code><\/pre>\n<\/div>\n<h2>Conclusion<\/h2>\n<p>TiDB presents a compelling choice for modern data management needs, combining the strengths of traditional SQL databases with the scalability and flexibility of NoSQL systems. Its unique architecture, comprising TiDB servers, TiKV storage, and PD management, ensures robust performance, high availability, and seamless scalability. Whether you&#8217;re dealing with real-time analytics, high-concurrency transactions, or complex queries, TiDB&#8217;s innovative features and design make it a powerful solution for a range of applications. Dive deeper into TiDB and unlock its full potential to transform your data infrastructure (<a href=\"https:\/\/docs.pingcap.com\/tidb\/v7.1\/overview\">Learn more<\/a>).<\/p>","protected":false},"excerpt":{"rendered":"<p>Dive into TiDB&#8217;s unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.<\/p>","protected":false},"author":8,"featured_media":0,"template":"","class_list":["post-21263","article","type-article","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploring TiDB&#039;s Distributed SQL Database Architecture | TiDB<\/title>\n<meta name=\"description\" content=\"Dive into TiDB&#039;s unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.\" \/>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploring TiDB&#039;s Distributed SQL Database Architecture | TiDB\" \/>\n<meta property=\"og:description\" content=\"Dive into TiDB&#039;s unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/article\/exploring-tidbs-distributed-sql-database-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-01T12:51:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2024\/09\/11005522\/Homepage-Ad.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"714\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data1\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/\",\"url\":\"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/\",\"name\":\"Exploring TiDB's Distributed SQL Database Architecture | TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"datePublished\":\"2024-10-01T11:04:28+00:00\",\"dateModified\":\"2024-10-01T12:51:50+00:00\",\"description\":\"Dive into TiDB's unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/www.pingcap.com\/article\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Exploring TiDB&#8217;s Distributed SQL Database Architecture\"}]},{\"@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\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploring TiDB's Distributed SQL Database Architecture | TiDB","description":"Dive into TiDB's unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.","robots":{"index":"noindex","follow":"follow"},"og_locale":"ko_KR","og_type":"article","og_title":"Exploring TiDB's Distributed SQL Database Architecture | TiDB","og_description":"Dive into TiDB's unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.","og_url":"https:\/\/www.pingcap.com\/ko\/article\/exploring-tidbs-distributed-sql-database-architecture\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_modified_time":"2024-10-01T12:51:50+00:00","og_image":[{"width":1440,"height":714,"url":"https:\/\/static.pingcap.com\/files\/2024\/09\/11005522\/Homepage-Ad.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@PingCAP","twitter_misc":{"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/","url":"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/","name":"Exploring TiDB's Distributed SQL Database Architecture | TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"datePublished":"2024-10-01T11:04:28+00:00","dateModified":"2024-10-01T12:51:50+00:00","description":"Dive into TiDB's unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/article\/exploring-tidbs-distributed-sql-database-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https:\/\/www.pingcap.com\/article\/"},{"@type":"ListItem","position":3,"name":"Exploring TiDB&#8217;s Distributed SQL Database Architecture"}]},{"@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"]}]}},"card_markup":"        <a class=\"card-article\" href=\"https:\/\/www.pingcap.com\/ko\/article\/exploring-tidbs-distributed-sql-database-architecture\/\">            <h3>Exploring TiDB&#8217;s Distributed SQL Database Architecture<\/h3>            <p>Dive into TiDB's unique architecture, HTAP capabilities, and performance optimization for scalable, high-availability SQL databases.<\/p>        <\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/article\/21263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/8"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=21263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}