{"id":1864,"date":"2015-01-18T04:21:14","date_gmt":"2015-01-18T04:21:14","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1864"},"modified":"2025-10-09T07:16:05","modified_gmt":"2025-10-09T14:16:05","slug":"inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/","title":{"rendered":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication"},"content":{"rendered":"<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">Database Change Protocol (DCP) is the core\u00a0replication protocol for version\u00a03.0 and\u00a0is used to connect nodes\u00a0and clusters across geo distributed data centers. In this post, we&#8217;ll dive deep into its workings and how it enables higher availability,\u00a0performance and scale with Couchbase Server 3.0.\u00a0\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">Lets start with Why replication is such a critical part of any database: Here is &#8220;why&#8221;:\u00a0<\/span><\/p>\n<ul class=\"ul1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\">\n<li class=\"li1\"><span class=\"s1\">Protecting Data: Replication\u00a0is used to protect against failures \u2013 by maintaining the local and cross data center replica feeds. How fast a database can replicate the data to replicas decide the data-loss window. The less efficient a database in replication the larger the data loss window!<\/span><\/li>\n<li class=\"li1\"><span class=\"s1\">Providing Fresher Indexes: Replication\u00a0is also the means of updating views in Couchbase. The incremental map\/reduce index that is used to answer queries needs a fast feed to stay fresh and up to date. Especially queries that need a consistent view of data cannot be answered if the replication feed isn&#8217;t blazingly fast and efficient!<\/span><\/li>\n<\/ul>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">So what makes DCP special and different from competing replication protocols? There are 4 key properties:\u00a0<\/span><\/p>\n<ul class=\"ul1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\">\n<li class=\"li1\"><span class=\"s1\"><strong>Ordering: <\/strong>DCP orders mutations. This is important to be able to record where things were left off.\u00a0<\/span><\/li>\n<li class=\"li1\"><span class=\"s1\"><strong>Restart-able:<\/strong> DCP optimizes restarts after short or long lasting failures.\u00a0<\/span><\/li>\n<li class=\"li1\"><span class=\"s1\"><strong>Consistent: <\/strong>DCP is able to efficiently produce a consistent snapshot.<\/span><\/li>\n<li class=\"li1\"><span class=\"s1\"><strong>High Performance: <\/strong>DCP is memory based. It streams changes eagerly as long as clients can keep up.<\/span><\/li>\n<\/ul>\n<h2 class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong>Architecture<\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">There are 3 pieces that make up the majority of magic of DCP: vbucket UUID, sequence numbers and failover log. I&#8217;ll assume you know a few concerpts like vbuckets already. (you can find more information\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/3.x\/admin\/Concepts\/concept-vBucket.html\">here<\/a>\u00a0about vbuckets).\u00a0Lets take a look at what they are:<\/span><\/p>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">A vbucket UUID and a mutation sequence number uniquely identify each mutation in Couchbase Server. Lets explain these concepts; vbuckets represent shards within Couchbase Server.\u00a0<b>Each<\/b>\u00a0<b>vbucket has a unique UUID<\/b>\u00a0assigned to it.\u00a0<b>Each mutation gets assigned a sequence number<\/b>. The sequence number is a monotonically increasing number and is scoped to each vbucket. The magic of consistency and granular resume-ability is achieved through the failover log.\u00a0<b>Each vbucket also maintains a failover log. <\/b>The failover log records multiple pairs of \u00a0vbucket UUID and sequence number. First entry marks the beginning of time and each new entry marks a failover. Master and replica vbuckets in the system maintain the same failover log. When a failure happen \u2013 lets say the master vbucket fail for example \u2013 an replica vbucket gets updated to an master vbucket. The new master vbucket failover log entry records the vbucket UUID and last sequence number of the new master vbucket and replicates that to replica vbuckets to mark the occasion. These basic mechanics enable a whole bunch of magic. In the next section, lets take a look at some of the top operations enhanced in 3.0 with DCP and explain how these mechanics make it happen.<\/span><\/p>\n<h2 class=\"p2\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong>Incremental Backups<\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">3.0 can get you 100x efficiency in storage of backups. Here is how: With 3.0, full backups can be complemented with incremental backups for greater storage efficiency. Incremental backups simply backup only the data that has changed since the last full, cumulative or incremental backup. One can take a full snapshot and create a chain of incremental or cumulative backups, instead of taking full snapshots every time. Vbucket UUID, sequence number and failover log all provide the metadata necessary to be able to keep things consistent between the chain of backups.<\/span><\/p>\n<h2 class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong>Views and Incremental Map\/Reduce Processing<\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">Low latency view queries is key to a snappy application and we see 50x improvement in latencies of view queries with 3.0. Map\/Reduce has been around for a while within Hadoop world but Couchbase provides incremental processing of map\/reduce to allow pre-calculation of your queries in a view. This is how Couchbase Server gets you low latency queries. The incremental processing engine is fed by a DCP stream. As mutations arrive in memory, they are streamed for processing over to design documents and the views within them. The streaming improves the freshness of the indexes by over 50x compared to previous versions. Many queries require consistency. Couchbase developer has options on consistency of the view \u2013 One can query what the index has processed at any point (stale=ok) OR can ask to query the view that contains all mutation up to the point of the query (stale=false). DCP shines especially for the latter type queries as it has the ability to stream changes blazingly fast into the view processor.\u00a0<\/span><\/p>\n<h2 class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong>Delta Recovery for Faster Rebalance<\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">If you are bringing a node back into the cluster that was failed over due to an issue, you no longer need to rewind back hours or days and resend changes to the node. With the vbucket UUID, sequence number and failover log, DCP has the ability to restart with great granularity from where it left off. If your incoming node has just been absent from the cluster for a few mins, it simply can recover by simply receiving the missing mutations for the recent few mins with delta node recovery option. We have seen 100s improvement in rebalance times with delta node recovery, especially when the data size is massive per node.<\/span><\/p>\n<h2 class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong><span style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS'\">Durability Guarantee\u00a0with \u201cReplicateTo\u201d\u00a0<\/span><\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">Couchbase Server has built in consistency \u2013 you can &#8220;read your own write&#8221; without issues even when you write mutations to memory. However, many developers need durability guarantees for their applications so they can survive node failures without losing data. Some depend on the classic disk persistence but for better availability and recoverability, many developers in Couchbase choose replication as a guarantee for durability of data. That is done through the ReplicateTo method in the native couchbase SDKs. ReplicateTo ensure the acknowledgement of your mutation to return AFTER it has been replicated to 1 or more other replicas. With DCP&#8217;s high-performance streaming replication, you can replicate mutation to a replica up to 180x faster. I have seen latencies within 1-2 ms with &#8220;ReplicateTo&#8221; in my tests on the cloud. However,\u00a0these absolute \u00a0numbers depend on the quality of the infrastructure and HW I am running on so take them with a grain of salt.\u00a0<\/span><\/p>\n<h2 class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><strong>Cross Data Center Replication<\/strong><\/h2>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">XDCR \u2013 cross data center replication \u2013 depends on DCP as well. Streaming replication directly from memory to another data center means we can protect your data better! Imagine a bi directional replication between 2 clusters. If cluster #1 fails, the amount of mutations lost will be determined by the largest replication latency. Fast replication means under a regional disaster such as this one, the data loss exposure is minimized! We have seen\u00a0<b>4x improvement in replication latency<\/b>\u00a0with XDCR in Couchbase Server 3.0.\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">XDCR is also prone to network errors and hiccups and it is important to be able to recover from these issues fast and get back to health! DCP metadata allows us to quickly pick up from where it left off under communication failures.\u00a0<\/span><\/p>\n<p class=\"p2\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">These are just a few examples of how DCP amplifies the capabilities within Couchbase Server. There is a ton more&#8230; In fact there are 200 more features in Couchbase Server 3.0 and most are there because of the strong foundation DCP provides.\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">If you like to dive deeper into the failure handling and mechanics behind DCPs fast presumably, you can view the detailed talk covering DCP at Couchbase Connect<\/span>or<span class=\"s1\">\u00a0see implementation details here at\u00a0the <a href=\"https:\/\/github.com\/couchbaselabs\/dcp-documentation\">github site<\/a>.<\/span><\/p>\n<p class=\"p1\" style=\"font-family: sans-serif, Arial, Verdana, 'Trebuchet MS';line-height: 20.7999992370605px;text-align: left\"><span class=\"s1\">Happy testing.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Database Change Protocol (DCP) is the core\u00a0replication protocol for version\u00a03.0 and\u00a0is used to connect nodes\u00a0and clusters across geo distributed data centers. In this post, we&#8217;ll dive deep into its workings and how it enables higher availability,\u00a0performance and scale with Couchbase [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[1977,1976,1562],"ppma_author":[8978],"class_list":["post-1864","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-database-change-protocol","tag-dcp","tag-replication"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication - The Couchbase Blog<\/title>\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.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication\" \/>\n<meta property=\"og:description\" content=\"Database Change Protocol (DCP) is the core\u00a0replication protocol for version\u00a03.0 and\u00a0is used to connect nodes\u00a0and clusters across geo distributed data centers. In this post, we&#8217;ll dive deep into its workings and how it enables higher availability,\u00a0performance and scale with Couchbase [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-18T04:21:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:16:05+00:00\" \/>\n<meta name=\"author\" content=\"Cihan Biyikoglu, Director of Product Management, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cihan Biyikoglu, Director of Product Management, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\"},\"author\":{\"name\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088\"},\"headline\":\"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication\",\"datePublished\":\"2015-01-18T04:21:14+00:00\",\"dateModified\":\"2025-10-09T14:16:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\"},\"wordCount\":1236,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Database Change Protocol\",\"DCP\",\"replication\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\",\"name\":\"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-01-18T04:21:14+00:00\",\"dateModified\":\"2025-10-09T14:16:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088\",\"name\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a878e65cb37ac2419416d3289816abd5\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g\",\"caption\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\"},\"description\":\"Cihan Biyikoglu is a director of product management at Couchbase, responsible for the Couchbase Server product. Cihan is a big data enthusiast who brings over twenty years of experience to Redis Labs\u2019 product team. Cihan started his career as a C\/C++ developer.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/cihan-biyikoglu\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication - The Couchbase Blog","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.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/","og_locale":"en_US","og_type":"article","og_title":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication","og_description":"Database Change Protocol (DCP) is the core\u00a0replication protocol for version\u00a03.0 and\u00a0is used to connect nodes\u00a0and clusters across geo distributed data centers. In this post, we&#8217;ll dive deep into its workings and how it enables higher availability,\u00a0performance and scale with Couchbase [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-01-18T04:21:14+00:00","article_modified_time":"2025-10-09T14:16:05+00:00","author":"Cihan Biyikoglu, Director of Product Management, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Cihan Biyikoglu, Director of Product Management, Couchbase","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/"},"author":{"name":"Cihan Biyikoglu, Director of Product Management, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088"},"headline":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication","datePublished":"2015-01-18T04:21:14+00:00","dateModified":"2025-10-09T14:16:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/"},"wordCount":1236,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Database Change Protocol","DCP","replication"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/","url":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/","name":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-01-18T04:21:14+00:00","dateModified":"2025-10-09T14:16:05+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Database Change Protocol: The super-conductor that wires Couchbase Server 3.0 replication"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088","name":"Cihan Biyikoglu, Director of Product Management, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a878e65cb37ac2419416d3289816abd5","url":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","caption":"Cihan Biyikoglu, Director of Product Management, Couchbase"},"description":"Cihan Biyikoglu is a director of product management at Couchbase, responsible for the Couchbase Server product. Cihan is a big data enthusiast who brings over twenty years of experience to Redis Labs\u2019 product team. Cihan started his career as a C\/C++ developer.","url":"https:\/\/www.couchbase.com\/blog\/author\/cihan-biyikoglu\/"}]}},"authors":[{"term_id":8978,"user_id":7,"is_guest":0,"slug":"cihan-biyikoglu","display_name":"Cihan Biyikoglu, Director of Product Management, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","author_category":"","last_name":"Biyikoglu","first_name":"Cihan","job_title":"","user_url":"","description":"Cihan Biyikoglu is a director of product management at Couchbase, responsible for the Couchbase Server product. Cihan is a big data enthusiast who brings over twenty years of experience to Redis Labs\u2019 product team. Cihan started his career as a C\/C++ developer."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=1864"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1864\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=1864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=1864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=1864"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}