{"id":14931,"date":"2023-10-10T11:21:48","date_gmt":"2023-10-10T18:21:48","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=14931"},"modified":"2025-06-13T23:18:05","modified_gmt":"2025-06-14T06:18:05","slug":"index-service-improvements-in-couchbase-server-7-2-2-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/","title":{"rendered":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Since the start of this year, we (Couchbase Indexing Team) undertook a project to improve <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/index-service.html\"><span style=\"font-weight: 400;\">indexing service<\/span><\/a><span style=\"font-weight: 400;\"> on <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/index.html\"><span style=\"font-weight: 400;\">Capella<\/span><\/a><span style=\"font-weight: 400;\">. This blog discusses the goals we planned to achieve at the start of this project and the list of improvements delivered to achieve that goal. Please note that most of these improvements &#8211; even though targeted for Capella (Couchbase\u2019s cloud database) &#8211; are also valid for self-managed clusters of Couchbase Server.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Goals<\/span><\/h2>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><b>Faster scaling operations: <\/b><span style=\"font-weight: 400;\">For cloud databases, scaling can be a very frequent activity, so it needs to be fast.<\/span><\/li>\n<li><b>Improve support for low-end hardware: <\/b><span style=\"font-weight: 400;\">Users may start with a low-end hardware to begin with, and later provision more\/high-end hardware, as and when the application demand increases.<\/span><\/li>\n<li><b>Improve support for slow disk i\/o: <\/b><span style=\"font-weight: 400;\">Cloud deployments use EBS like storage, which is likely to be slower than directly attached SSDs. So, the cost of a single i\/o operation gets multiplied in a cloud environment.\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b><i>The ultimate goal was to improve overall user experience.<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">The following sections explain the <\/span><b>index service improvements<\/b><span style=\"font-weight: 400;\"> done in Couchbase Server release 7.2.2, and how these improvements achieve the above mentioned goals.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Faster scaling operations<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">User application workload can increase\/decrease frequently. When users expect the application workload to increase, users can perform either \u201cadd more nodes (i.e. scale out)\u201d, or \u201cincrease the CPU\/Memory of the nodes (i.e. scale up)\u201d, or do both.\u00a0<\/span><\/p>\n<p><b>To scale out<\/b><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/index.html\"><span style=\"font-weight: 400;\">Capella<\/span><\/a><span style=\"font-weight: 400;\"> adds more index service nodes (having the same configuration as that of existing nodes) to the cluster. This is followed by <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/rebalance.html\"><span style=\"font-weight: 400;\">Couchbase Server Rebalance<\/span><\/a><span style=\"font-weight: 400;\">, where the indexes may get moved from their current host node to any other node in the cluster. This movement is performed to achieve a balanced load distribution across all the indexer nodes.\u00a0\u00a0<\/span><\/p>\n<p><b>To scale up<\/b><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/clusters\/scale-database.html\"><span style=\"font-weight: 400;\">Capella scaling operation<\/span><\/a><span style=\"font-weight: 400;\"> internally triggers a sequence of couchbase server\u2019s <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/upgrade-procedure-selection.html#swap-rebalance\"><span style=\"font-weight: 400;\">swap rebalance<\/span><\/a><span style=\"font-weight: 400;\"> operations. Each swap rebalance adds one new node (having the upgraded configuration) and removes one old node (having the old configuration). Once all the old nodes have been replaced by new nodes, the scaling operation finishes. During swap rebalance, index service needs to move the indexes from the old node to the new node, so that indexes won\u2019t be lost.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Index service performs the index movement by (1) rebuilding the index using <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/inside-couchbase-server-database-change-protocol-the-super-conductor-that-wires-couchbase-server\/\"><span style=\"font-weight: 400;\">Data Change Protocol (DCP)<\/span><\/a><span style=\"font-weight: 400;\"> on the target node, and then (2) deleting the index from the source node. As rebuilding of indexes on the target node can be CPU intensive, index service moves the indexes in <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/rebalance.html#smart-batching\"><span style=\"font-weight: 400;\">batches<\/span><\/a><span style=\"font-weight: 400;\">. Each batch will require reading of the stream of the data from data service, and indexes get built on index service nodes. Once a batch of indexes is moved to the target node, that batch of indexes can serve <\/span><a href=\"https:\/\/www.couchbase.com\/products\/n1ql\/\"><span style=\"font-weight: 400;\">N1QL queries<\/span><\/a><span style=\"font-weight: 400;\"> (index scans) from the target node.\u00a0<\/span><\/p>\n<h3><b>Scale out example<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Following diagrams depict an example of the two-step \u201cScale Out\u201d workflow using DCP based rebalance. Here, index service has decided to move indexes 3, 6 and 9 to the new node. Similarly, index 5 will move from node 1 to node 2. So, in the first step, indexes 3, 6 and 9 will be rebuilt on the new index node with the help of DCP. Similarly, index 5 will be rebuilt on node 2.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14933 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-1.jpg\" alt=\"\" width=\"706\" height=\"313\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-1.jpg 706w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-1-300x133.jpg 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/p>\n<p>Then in the second step, indexes 3, 6 and 9 on the new node will be activated, while their older copies will be deleted from their previous host. Similarly, index 5 on node 2 will be activated, and its old copy will be deleted from node 1.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14934 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-2.jpg\" alt=\"\" width=\"706\" height=\"313\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-2.jpg 706w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Out-Step-2-300x133.jpg 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/p>\n<h3><strong>Scale up example<\/strong><\/h3>\n<p>Following diagrams depict the DCP based swap rebalance process, which is used to perform scale up operation on nodes. Here, in the first step, a new index node is added to the cluster. The index service has decided to move indexes 3 and 4 to the new index node, while index 5 will be moved to index node 1. So, in the first step, index 3 and 4 will be rebuilt on the new index node, while index 5 will be rebuilt on index node 1.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14932 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-1.jpg\" alt=\"\" width=\"696\" height=\"357\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-1.jpg 696w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-1-300x154.jpg 300w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>In the second step, when the index build for index 3, 4 and 5 is finished, the indexes will be activated on their corresponding destination nodes, and index node 2 will be removed from the cluster.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14935 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-2.jpg\" alt=\"\" width=\"696\" height=\"357\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-2.jpg 696w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/Blog_-7.2.1-Scale-Up-Step-2-300x154.jpg 300w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>In Couchbase Server 7.2.2, scaling operation is made faster by:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li><strong>Increasing the number of indexes being moved in a batch<\/strong><br \/>\nBy default, the number of indexes being rebuilt on the target node is capped by a small number. The reason for choosing the small number is to avoid resource (CPU) contention between index rebuild and index scans. To solve this resource contention problem, in Couchbase Server 7.2.2, we avoided forwarding index scans to the new node, until all indexes on that node are rebuilt. With this, the entire CPU can be used for index rebuild, which enables moving of more indexes in a single batch. Please note that the larger batch is used only when the batch of indexes is moving to an \u201cempty\u201d node in the cluster. For non-empty nodes (i.e. nodes which are hosting some indexes), they will be required to serve index scans and CPU sharing is needed. That\u2019s why the larger batch size is used only when indexes are moving to an empty node. Following are the default batch sizes:<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong>Non-empty node batch Size:<\/strong> 3<br \/>\n<strong>Empty batch Size:<\/strong> 20<\/p>\n<p style=\"padding-left: 80px;\"><em>Note: increased batch size allows reducing the load on data service, as number of times data items are read from the data service are also reduced.<\/em><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol start=\"2\">\n<li><strong>Avoiding index movement between existing nodes<\/strong><br \/>\nIn case of scale out, index service can move the indexes among existing nodes in the cluster. Similarly, in case of swap rebalance, index service can move the indexes from the old node to other existing nodes as well. Such index movements are done primarily to achieve balanced load distribution in the cluster. But conceptually, these extra index movements add to the scaling overhead.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>In Couchbase Server 7.2.2, the movement of the indexes is restricted to the movements which are required to ensure the functionality. Unnecessary movements are avoided.<\/p>\n<p>In the above examples, in case of scale out, movement of index 5 from node 1 to node 2 will be avoided. Similarly, in case of scale up, index 5 will be moved to the newly added node instead of node 1.<\/p>\n<p>Please note that, to achieve balanced load distribution, a rebalance operation can be explicitly triggered after the scaling operation finishes.<\/p>\n<h3><strong>Experimental results<\/strong><\/h3>\n<p>The experiment performs scale-out for index service, i.e. scaling from 3 index service nodes to 4 index service nodes. There are 100 indexes spread across the 3 index service nodes. As a part of scaling, these 100 indexes will be re-distributed across 4 nodes. Also, during the rebalance operation, the front-end data update workload as well as scan workload is running. So, using this experiment we were able to verify that the impact of an ongoing rebalance operation on incoming queries was reduced.<\/p>\n<p><strong>Results table:<\/strong><\/p>\n<table style=\"height: 135px;\" width=\"712\">\n<tbody>\n<tr>\n<th style=\"text-align: left;\">Couchbase Server version<\/th>\n<th>7.2.0<\/th>\n<th>7.2.2<\/th>\n<\/tr>\n<tr>\n<td>Time taken for Scale out (from 3 to 4 index nodes)<\/td>\n<td>20.7 min<\/td>\n<td>6.8 min<\/td>\n<\/tr>\n<tr>\n<td>Data Service CPU consumption during scaling operation<\/td>\n<td>400%<\/td>\n<td>270%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Apart from above results, in our internal testing, we have also observed <strong>8x and 15x improvement in 95th and 99th percentile query latencies<\/strong> respectively.<\/p>\n<p><em>Note: This feature is enabled by default on the provisioned Capella clusters. For self-managed clusters please use the following setting to enable it.<\/em><\/p>\n<p>The following REST command can be used to enable empty-node batching:<\/p>\n<p style=\"padding-left: 40px;\"><tt>curl -X POST -u https:\/\/:9102\/settings --data '{\"indexer.rebalance.enableEmptyNodeBatching\" : true}'<\/tt><\/p>\n<p>This REST command can be used to change empty-node batch size to 25:<\/p>\n<p style=\"padding-left: 40px;\"><tt>curl -X POST -u https:\/\/:9102\/settings --data '{\"indexer.rebalance.emptyNodeBuildBatchSize\" : 25}'<\/tt><\/p>\n<h3>What&#8217;s next?<\/h3>\n<p>In the next part of this blog, we will discuss more index service improvements in Couchbase Server 7.2.2.<br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>\n<p>Learn more about Couchbase products:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/downloads\/\">Download Couchbase Server<\/a><\/li>\n<li>Start a <a href=\"https:\/\/www.couchbase.com\/products\/capella\/\">free trial of Couchbase Capella (DBaas)<\/a><\/li>\n<li>Access Couchbase <a href=\"https:\/\/docs.couchbase.com\/home\/index.html\">developer documentation<\/a><\/li>\n<li>See <a href=\"https:\/\/www.couchbase.com\/customers\/\">who else is using Couchbase<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Since the start of this year, we (Couchbase Indexing Team) undertook a project to improve indexing service on Capella. This blog discusses the goals we planned to achieve at the start of this project and the list of improvements delivered [&hellip;]<\/p>\n","protected":false},"author":49228,"featured_media":14951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,2225,8905,1816,2453,9417,9381],"tags":[9251,9662,1377],"ppma_author":[9101],"class_list":["post-14931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-cloud","category-couchbase-global-secondary-index","category-couchbase-server","category-global-secondary-index","category-performance","category-indexing","tag-global-secondary-index","tag-rebalance","tag-scale-out"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Index Service Improvements in Couchbase Server 7.2.2 : Part 1 - 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\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Index Service Improvements in Couchbase Server 7.2.2 : Part 1\" \/>\n<meta property=\"og:description\" content=\"Since the start of this year, we (Couchbase Indexing Team) undertook a project to improve indexing service on Capella. This blog discusses the goals we planned to achieve at the start of this project and the list of improvements delivered [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-10T18:21:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:18:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Amit Kulkarni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Amit Kulkarni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\"},\"author\":{\"name\":\"Amit Kulkarni\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/76beaf20748818542ed2b7a6bfcd524c\"},\"headline\":\"Index Service Improvements in Couchbase Server 7.2.2 : Part 1\",\"datePublished\":\"2023-10-10T18:21:48+00:00\",\"dateModified\":\"2025-06-14T06:18:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\"},\"wordCount\":1290,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg\",\"keywords\":[\"global secondary index\",\"rebalance\",\"Scale Out\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Capella\",\"Couchbase Global Secondary Index\",\"Couchbase Server\",\"Global Secondary Index\",\"High Performance\",\"Indexing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\",\"name\":\"Index Service Improvements in Couchbase Server 7.2.2 : Part 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg\",\"datePublished\":\"2023-10-10T18:21:48+00:00\",\"dateModified\":\"2025-06-14T06:18:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Index Service Improvements in Couchbase Server 7.2.2 : Part 1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Index Service Improvements in Couchbase Server 7.2.2 : Part 1\"}]},{\"@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\/76beaf20748818542ed2b7a6bfcd524c\",\"name\":\"Amit Kulkarni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9b381fdec8caa95228a24342f1abbbbc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ce1e7e777f6f5e141aa952f3bba06e838b5cb9bd5dbf9584e9ac998931808950?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ce1e7e777f6f5e141aa952f3bba06e838b5cb9bd5dbf9584e9ac998931808950?s=96&d=mm&r=g\",\"caption\":\"Amit Kulkarni\"},\"description\":\"Amit Kulkarni is working as a Engineering Manager at Couchbase on Global Secondary Indexes. He has experience in working on technologies like Distributed Systems, Distributed NoSQL Databases, Cloud Storage, Storage Virtualisation etc.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/amit-kulkarni\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1 - 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\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1","og_description":"Since the start of this year, we (Couchbase Indexing Team) undertook a project to improve indexing service on Capella. This blog discusses the goals we planned to achieve at the start of this project and the list of improvements delivered [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2023-10-10T18:21:48+00:00","article_modified_time":"2025-06-14T06:18:05+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg","type":"image\/jpeg"}],"author":"Amit Kulkarni","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Amit Kulkarni","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/"},"author":{"name":"Amit Kulkarni","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/76beaf20748818542ed2b7a6bfcd524c"},"headline":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1","datePublished":"2023-10-10T18:21:48+00:00","dateModified":"2025-06-14T06:18:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/"},"wordCount":1290,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg","keywords":["global secondary index","rebalance","Scale Out"],"articleSection":["Couchbase Architecture","Couchbase Capella","Couchbase Global Secondary Index","Couchbase Server","Global Secondary Index","High Performance","Indexing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/","name":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg","datePublished":"2023-10-10T18:21:48+00:00","dateModified":"2025-06-14T06:18:05+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/index-service-improvements.jpg","width":1200,"height":628,"caption":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/index-service-improvements-in-couchbase-server-7-2-2-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Index Service Improvements in Couchbase Server 7.2.2 : Part 1"}]},{"@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\/76beaf20748818542ed2b7a6bfcd524c","name":"Amit Kulkarni","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9b381fdec8caa95228a24342f1abbbbc","url":"https:\/\/secure.gravatar.com\/avatar\/ce1e7e777f6f5e141aa952f3bba06e838b5cb9bd5dbf9584e9ac998931808950?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ce1e7e777f6f5e141aa952f3bba06e838b5cb9bd5dbf9584e9ac998931808950?s=96&d=mm&r=g","caption":"Amit Kulkarni"},"description":"Amit Kulkarni is working as a Engineering Manager at Couchbase on Global Secondary Indexes. He has experience in working on technologies like Distributed Systems, Distributed NoSQL Databases, Cloud Storage, Storage Virtualisation etc.","url":"https:\/\/www.couchbase.com\/blog\/author\/amit-kulkarni\/"}]}},"authors":[{"term_id":9101,"user_id":49228,"is_guest":0,"slug":"amit-kulkarni","display_name":"Amit Kulkarni","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ce1e7e777f6f5e141aa952f3bba06e838b5cb9bd5dbf9584e9ac998931808950?s=96&d=mm&r=g","author_category":"","last_name":"Kulkarni","first_name":"Amit","job_title":"","user_url":"","description":"Amit Kulkarni is working as a Engineering Manager at Couchbase on Global Secondary Indexes. He has experience in working on technologies like Distributed Systems, Distributed NoSQL Databases, Cloud Storage, Storage Virtualisation etc."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/14931","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\/49228"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=14931"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/14931\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/14951"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=14931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=14931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=14931"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=14931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}