{"id":23778,"date":"2026-10-01T11:37:15","date_gmt":"2026-10-01T18:37:15","guid":{"rendered":"https:\/\/www.pingcap.com\/?post_type=article&#038;p=23778"},"modified":"2026-10-01T11:37:17","modified_gmt":"2026-10-01T18:37:17","slug":"mastering-global-data-sync-with-distributed-databases","status":"publish","type":"article","link":"https:\/\/www.pingcap.com\/ko\/article\/mastering-global-data-sync-with-distributed-databases\/","title":{"rendered":"Mastering Global Data Sync with Distributed Databases"},"content":{"rendered":"<p class=\"wp-block-paragraph\">An order written in Singapore needs to appear in a Frankfurt reporting database seconds later, in the right order, with no half-applied transactions. Cross-region sync breaks in exactly those three places: delay, ordering, and partial writes. <a href=\"https:\/\/www.pingcap.com\/ko\/what-is-tidb\/\">\ud2f0DB<\/a> handles all three with two mechanisms that work as a pair. Multi-version concurrency control (MVCC) gives every committed change a timestamp, and TiCDC, TiDB\u2019s change data capture tool for global sync, streams those changes to other regions in timestamp order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_Does_TiDB_Keep_Data_in_Sync_Across_Regions\"><\/span>How Does TiDB Keep Data in Sync Across Regions?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TiDB keeps data in sync across regions with MVCC and TiCDC. MVCC lets reads and writes run concurrently without blocking by keeping multiple timestamped versions of each row, and TiCDC streams committed changes to clusters or systems in other regions in commit-timestamp order. Between separate TiDB clusters, TiCDC replicates with second-level recovery point objective (RPO) and minute-level recovery time objective (RTO).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Makes_Global_Data_Synchronization_Hard\"><\/span>What Makes Global Data Synchronization Hard<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Global data synchronization keeps data consistent and accessible across data centers on different continents. Two forces work against it.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Network latency.<\/strong> Round trips between continents add tens to hundreds of milliseconds, so every update reaches remote regions later than it reaches local ones.<\/li>\n\n\n\n<li><strong>Consistency under failure.<\/strong> When a network partition or node failure interrupts replication, the receiving side can end up with partial transactions or changes applied out of order.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A sync design has to answer both questions: how fresh remote data needs to be, and what guarantees hold when the link drops.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_MVCC_and_TiCDC_Work_Together_for_Cross-Region_Sync\"><\/span>How MVCC and TiCDC Work Together for Cross-Region Sync<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MVCC and TiCDC split the problem cleanly. MVCC handles concurrent access within a cluster, and TiCDC propagates committed changes across regions using the timestamps MVCC already assigns.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MVCC: timestamped versions inside the cluster<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TiKV, TiDB\u2019s storage layer, never overwrites a row in place. Each write adds a new version keyed by the transaction\u2019s commit timestamp, which comes from the timestamp oracle (TSO) in the Placement Driver (PD). A reader picks a start timestamp and sees exactly the versions committed before it, so reads never block writes and never see half-committed transactions. Old versions remain until garbage collection removes them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TiCDC: ordered changes between regions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TiCDC listens to the Raft log of every Region in the upstream TiKV cluster, so it captures each committed change with its commit timestamp attached. It sorts changes by that timestamp and writes them to downstream targets through replication tasks called changefeeds. Targets include another TiDB cluster, MySQL, Kafka, and storage services. A resolved timestamp marks the point before which every change has been delivered, so a downstream consumer knows its copy is complete up to that moment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The two mechanisms compound. MVCC already stamps every change with a cluster-wide commit order, so TiCDC does not have to reconstruct ordering from separate per-node logs. Downstream regions receive changes in the order they committed upstream.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tiup cdc cli changefeed create \\\n  --server=http:\/\/10.0.10.25:8300 \\\n  --sink-uri=\"mysql:\/\/root:password@10.1.0.10:4000\/\" \\\n  --changefeed-id=\"sg-to-fra\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For cross-region links above 100 ms, deploy TiCDC in the upstream region on TiCDC v6.5.2 and later. Earlier versions should run in the downstream region instead. The <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/ticdc-overview\">TiCDC documentation<\/a> covers sink options and changefeed management in full.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Autohome put TiCDC into production after moving its applications to TiDB. The team replaced MySQL binlog with TiCDC for replication and built a Kafka output on top of it to move high-volume data into downstream systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Global sync on TiDB rests on one design decision. Every change carries a commit timestamp. MVCC uses it to keep reads consistent, and TiCDC uses it to deliver changes to other regions in order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>See MVCC in action on your own data.<\/strong> <a href=\"https:\/\/tidbcloud.com\/free-trial\/\">Start free with TiDB Cloud Starter<\/a>, then use the TiCDC documentation to plan cross-region changefeeds for production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions_About_TiDB_Global_Data_Sync\"><\/span>Frequently Asked Questions About TiDB Global Data Sync<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1790877892008\"><strong class=\"schema-faq-question\">What is TiCDC and how is it different from generic CDC?<\/strong> <p class=\"schema-faq-answer\">TiCDC is TiDB\u2019s native change data capture tool. Generic CDC tools read a database\u2019s binary log from a single server, which fits a single-node database like MySQL. TiDB has no single log, because its data is spread across many TiKV Regions, each with its own Raft log. TiCDC reads those Raft logs directly, sorts changes by commit timestamp across the whole cluster, and outputs them to TiDB, MySQL, Kafka, or storage, with resolved timestamps that mark delivery progress.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790877900811\"><strong class=\"schema-faq-question\">Does MVCC affect write performance in TiDB?<\/strong> <p class=\"schema-faq-answer\">MVCC adds little cost to an individual write, because a write appends a new version instead of updating a row in place. The cost appears later, as old versions accumulate and scans must skip past them. Garbage collection removes versions older than <code>tidb_gc_life_time<\/code>, 10 minutes by default. Raising that value keeps more history for long-running queries and increases scan work, so set it to the shortest window your workload needs.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790877910145\"><strong class=\"schema-faq-question\">How fast does data propagate between regions with TiCDC?<\/strong> <p class=\"schema-faq-answer\">For TiDB-to-TiDB replication, TiDB documents second-level RPO and minute-level RTO, so a downstream cluster trails the upstream by seconds in normal operation. Lag tracks downstream write speed more than network distance. In a tuning example in the TiDB documentation, changefeed checkpoint lag stayed within 500 ms once the downstream cluster could keep up with the write load. Watch the Changefeed checkpoint lag metric, measured in seconds, to see real propagation time.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790877920978\"><strong class=\"schema-faq-question\">What is the difference between this guide and TiDB\u2019s multi-region deployment guide?<\/strong> <p class=\"schema-faq-answer\">This guide covers how data stays synchronized between separate TiDB clusters and downstream systems, using MVCC and TiCDC. TiDB\u2019s multi-region deployment guide covers one cluster stretched across regions, configured with labels and placement rules, where Raft keeps every replica consistent. Use a stretched cluster when you need synchronous consistency across regions. Use TiCDC between clusters when each region can run independently and accept seconds of replication lag.<\/p> <\/div> <\/div>","protected":false},"excerpt":{"rendered":"<p>Discover how TiDB ensures data consistency and low latency for global businesses with distributed databases.<\/p>","protected":false},"author":275,"featured_media":0,"template":"","class_list":["post-23778","article","type-article","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Global Data Sync with TiDB: MVCC and TiCDC Explained<\/title>\n<meta name=\"description\" content=\"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.\" \/>\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\/article\/mastering-global-data-sync-with-distributed-databases\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Global Data Sync with TiDB: MVCC and TiCDC Explained\" \/>\n<meta property=\"og:description\" content=\"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/article\/mastering-global-data-sync-with-distributed-databases\/\" \/>\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=\"2026-10-01T18:37:17+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=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/\",\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/\",\"name\":\"Global Data Sync with TiDB: MVCC and TiCDC Explained\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/#website\"},\"datePublished\":\"2026-10-01T18:37:15+00:00\",\"dateModified\":\"2026-10-01T18:37:17+00:00\",\"description\":\"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877892008\"},{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877900811\"},{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877910145\"},{\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877920978\"}],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#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\":\"Mastering Global Data Sync with Distributed Databases\"}]},{\"@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\":\"Question\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877892008\",\"position\":1,\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877892008\",\"name\":\"What is TiCDC and how is it different from generic CDC?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"TiCDC is TiDB\u2019s native change data capture tool. Generic CDC tools read a database\u2019s binary log from a single server, which fits a single-node database like MySQL. TiDB has no single log, because its data is spread across many TiKV Regions, each with its own Raft log. TiCDC reads those Raft logs directly, sorts changes by commit timestamp across the whole cluster, and outputs them to TiDB, MySQL, Kafka, or storage, with resolved timestamps that mark delivery progress.\",\"inLanguage\":\"ko-KR\"},\"inLanguage\":\"ko-KR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877900811\",\"position\":2,\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877900811\",\"name\":\"Does MVCC affect write performance in TiDB?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"MVCC adds little cost to an individual write, because a write appends a new version instead of updating a row in place. The cost appears later, as old versions accumulate and scans must skip past them. Garbage collection removes versions older than tidb_gc_life_time, 10 minutes by default. Raising that value keeps more history for long-running queries and increases scan work, so set it to the shortest window your workload needs.\",\"inLanguage\":\"ko-KR\"},\"inLanguage\":\"ko-KR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877910145\",\"position\":3,\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877910145\",\"name\":\"How fast does data propagate between regions with TiCDC?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For TiDB-to-TiDB replication, TiDB documents second-level RPO and minute-level RTO, so a downstream cluster trails the upstream by seconds in normal operation. Lag tracks downstream write speed more than network distance. In a tuning example in the TiDB documentation, changefeed checkpoint lag stayed within 500 ms once the downstream cluster could keep up with the write load. Watch the Changefeed checkpoint lag metric, measured in seconds, to see real propagation time.\",\"inLanguage\":\"ko-KR\"},\"inLanguage\":\"ko-KR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877920978\",\"position\":4,\"url\":\"https:\\\/\\\/www.pingcap.com\\\/article\\\/mastering-global-data-sync-with-distributed-databases\\\/#faq-question-1790877920978\",\"name\":\"What is the difference between this guide and TiDB\u2019s multi-region deployment guide?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"This guide covers how data stays synchronized between separate TiDB clusters and downstream systems, using MVCC and TiCDC. TiDB\u2019s multi-region deployment guide covers one cluster stretched across regions, configured with labels and placement rules, where Raft keeps every replica consistent. Use a stretched cluster when you need synchronous consistency across regions. Use TiCDC between clusters when each region can run independently and accept seconds of replication lag.\",\"inLanguage\":\"ko-KR\"},\"inLanguage\":\"ko-KR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Global Data Sync with TiDB: MVCC and TiCDC Explained","description":"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.","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\/article\/mastering-global-data-sync-with-distributed-databases\/","og_locale":"ko_KR","og_type":"article","og_title":"Global Data Sync with TiDB: MVCC and TiCDC Explained","og_description":"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.","og_url":"https:\/\/www.pingcap.com\/ko\/article\/mastering-global-data-sync-with-distributed-databases\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_modified_time":"2026-10-01T18:37:17+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":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["WebPage","FAQPage"],"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/","url":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/","name":"Global Data Sync with TiDB: MVCC and TiCDC Explained","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"datePublished":"2026-10-01T18:37:15+00:00","dateModified":"2026-10-01T18:37:17+00:00","description":"TiDB keeps global data in sync with MVCC timestamps and TiCDC, streaming committed changes across regions in order with second-level RPO. See how it works.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877892008"},{"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877900811"},{"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877910145"},{"@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877920978"}],"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#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":"Mastering Global Data Sync with Distributed Databases"}]},{"@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":"Question","@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877892008","position":1,"url":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877892008","name":"What is TiCDC and how is it different from generic CDC?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"TiCDC is TiDB\u2019s native change data capture tool. Generic CDC tools read a database\u2019s binary log from a single server, which fits a single-node database like MySQL. TiDB has no single log, because its data is spread across many TiKV Regions, each with its own Raft log. TiCDC reads those Raft logs directly, sorts changes by commit timestamp across the whole cluster, and outputs them to TiDB, MySQL, Kafka, or storage, with resolved timestamps that mark delivery progress.","inLanguage":"ko-KR"},"inLanguage":"ko-KR"},{"@type":"Question","@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877900811","position":2,"url":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877900811","name":"Does MVCC affect write performance in TiDB?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"MVCC adds little cost to an individual write, because a write appends a new version instead of updating a row in place. The cost appears later, as old versions accumulate and scans must skip past them. Garbage collection removes versions older than tidb_gc_life_time, 10 minutes by default. Raising that value keeps more history for long-running queries and increases scan work, so set it to the shortest window your workload needs.","inLanguage":"ko-KR"},"inLanguage":"ko-KR"},{"@type":"Question","@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877910145","position":3,"url":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877910145","name":"How fast does data propagate between regions with TiCDC?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"For TiDB-to-TiDB replication, TiDB documents second-level RPO and minute-level RTO, so a downstream cluster trails the upstream by seconds in normal operation. Lag tracks downstream write speed more than network distance. In a tuning example in the TiDB documentation, changefeed checkpoint lag stayed within 500 ms once the downstream cluster could keep up with the write load. Watch the Changefeed checkpoint lag metric, measured in seconds, to see real propagation time.","inLanguage":"ko-KR"},"inLanguage":"ko-KR"},{"@type":"Question","@id":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877920978","position":4,"url":"https:\/\/www.pingcap.com\/article\/mastering-global-data-sync-with-distributed-databases\/#faq-question-1790877920978","name":"What is the difference between this guide and TiDB\u2019s multi-region deployment guide?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"This guide covers how data stays synchronized between separate TiDB clusters and downstream systems, using MVCC and TiCDC. TiDB\u2019s multi-region deployment guide covers one cluster stretched across regions, configured with labels and placement rules, where Raft keeps every replica consistent. Use a stretched cluster when you need synchronous consistency across regions. Use TiCDC between clusters when each region can run independently and accept seconds of replication lag.","inLanguage":"ko-KR"},"inLanguage":"ko-KR"}]}},"card_markup":"        <a class=\"card-article\" href=\"https:\/\/www.pingcap.com\/ko\/article\/mastering-global-data-sync-with-distributed-databases\/\">            <h3>Mastering Global Data Sync with Distributed Databases<\/h3>            <p>Discover how TiDB ensures data consistency and low latency for global businesses with distributed databases.<\/p>        <\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/article\/23778","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\/275"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=23778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}