{"id":2270,"date":"2016-05-19T22:38:42","date_gmt":"2016-05-19T22:38:41","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2270"},"modified":"2025-10-09T07:12:05","modified_gmt":"2025-10-09T14:12:05","slug":"efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/","title":{"rendered":"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO &#8211; PART III"},"content":{"rendered":"<p>In <a href=\"https:\/\/www.couchbase.com\/blog\/faster-indexing-and-query-with-memory-optimized-global-secondary-indexes-gsi\/\">Part I<\/a> or the series, we have corevered the architecture behind global vs local Indexes and when to use a global (GSI) vs a local index (MapReduce View) index in Couchbase Server. In <a href=\"https:\/\/www.couchbase.com\/blog\/faster-indexing-and-query-with-memory-optimized-global-secondary-indexes-gsi---part-ii\/\">Part II<\/a> of the series, we have also talked about the new memory optimized global secondary indexes and how MOI improves the index maintenance performance with an in memory structure that is designed purely for high mutation rates and high scan rates. With\u00a0Part III, I&#8217;d like to tell you all about the how standard global secondary indexes improved in 4.5: There are a number of improvement in this area but the most important advancement is a new Write Mode called &#8220;Circular Writes&#8221;.<\/p>\n<h3 style=\"box-sizing: inherit;font-family: 'Kievit OT', sans-serif;color: #333333;text-align: left\">Memory Optimized vs. Standard Global Secondary Indexes<\/h3>\n<p>Memory optimized indexes are added in 4.5 as an additional storage option for GSIs. Standard global secondary indexes have been there since version 4.0.\u00a0Administrators can configure GSI with either the standard GSI storage, which uses ForestDB underneath, for indexes that cannot fit in memory\u00a0or can pick the memory optimized GSI for faster in-memory\u00a0indexing and queries.\u00a0<span style=\"color: #333333;line-height: 20.8px;text-align: left\">Even though memory optimized indexes, with in-memory index management, can provide the best index maintenance and scan performance, not everyone can efford to have all indexes in memory.\u00a0<\/span><span style=\"color: #333333;line-height: 20.8px;text-align: left\">Standard GSI can spill to disk when memory runs out, so efficient disk IO is critical to efficient indexing and scans.\u00a0<\/span><\/p>\n<h3>Write Modes in Standard Global Secondary Indexes<\/h3>\n<p>Previously standard GSI only offered an apend-only write mode. Append Only writes write to the end of the file with every mutation to the index. However append-only writes require frequent compactions. With 4.5 Standard GSI comes with an additional write mode called &#8220;circular\u00a0writes&#8221;.<\/p>\n<p>When you enable \u201ccircular writes\u201d, as mutations arrive, instead of simply appending new pages to the end of the file, write operations look for reusing the orphaned space in the file. If there is not enough orphaned space available in the file that can accommodate the write, the operation may still do a write with append.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" style=\"line-height: 1.6em\" src=\"\/wp-content\/original-assets\/2016\/may\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4.5\/circularwritemode.jpg\" \/><\/p>\n<p>With circular writes, full compaction still operates the same way. The compaction process reads the existing file and writes a new contiguous file that no longer contains the orphaned items, and is written as a contiguous file. However the number of compactions needed are drastically reduced.\u00a0<span style=\"color: #333333;line-height: 20.8px;text-align: left\">Instead of compacting every few hours, it can be once a week and that is an amazing savings on the IO capacity (IOPS and\u00a0<\/span><span style=\"color: #333333;line-height: 20.8px;text-align: left\">MB\/sec).<\/span><\/p>\n<h3>Configuring Write Mode and Compaction Trigger for Standard GSI<\/h3>\n<p>Standard GSI comes with 2 write modes.\u00a0<span style=\"line-height: 20.8px\">The configuration for write mode and index fragmentation is under settings &gt; auto-fragmentation in the w<\/span><span style=\"line-height: 20.8px\">eb console.\u00a0<\/span><span style=\"line-height: 20.8px\">(Note: F<\/span><span style=\"line-height: 20.8px\">ragmentation setting for index only applies when \u201cStandard Global Secondary Index\u201d storage option is selected for indexes.\u00a0<\/span><span style=\"line-height: 20.8px\">Write mode and compaction strategy does not apply to memory-optimized global secondary indexes.<\/span><span style=\"line-height: 20.8px\">)<\/span><span style=\"line-height: 20.8px\">\u00a0<\/span><\/p>\n<ul>\n<li>Use Circular writes\u00a0with time interval to trigger compaction:\u00a0<span style=\"line-height: 1.6em\">For new clusters created with version 4.5, this option is selected by default. With circular writes, frequent compactions are not necessary.\u00a0<\/span><span style=\"line-height: 1.6em\">You must specify the days of the week and the start time when compaction is allowed to run and optionally, set an end time of the time period when compaction is aborted. The end time is only in effect if you set the abort compaction option is checked.\u00a0<\/span><\/li>\n<li><span style=\"line-height: 20.8px\">Append-only writes with index fragmentation level to trigger compaction:<\/span><span style=\"line-height: 1.6em\">\u00a0<\/span><span style=\"line-height: 1.6em\">When you upgrade a cluster (with the indexing service enabled) from version 4.0 or 4.1, this option is selected by default. The option is kept mainly for backward compatibility.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #333333;line-height: 20.8px;text-align: left\">You can change between the write modes at any time.\u00a0<\/span><\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4.5\/compactionsettings.jpg\" \/><\/p>\n<p>The alerts and stats operate the same way between standard and memory optimized indexes, you can refer to <a href=\"https:\/\/www.couchbase.com\/blog\/faster-indexing-and-query-with-memory-optimized-global-secondary-indexes-gsi---part-ii\/\">Part II<\/a> of the series for more information on stats and alerts.<\/p>\n<p>-cihan<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Part I or the series, we have corevered the architecture behind global vs local Indexes and when to use a global (GSI) vs a local index (MapReduce View) index in Couchbase Server. In Part II of the series, we [&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":[1816],"tags":[],"ppma_author":[8978],"class_list":["post-2270","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"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>Faster Indexing and Query- part3 - 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\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO - PART III\" \/>\n<meta property=\"og:description\" content=\"In Part I or the series, we have corevered the architecture behind global vs local Indexes and when to use a global (GSI) vs a local index (MapReduce View) index in Couchbase Server. In Part II of the series, we [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-19T22:38:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:12: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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\"},\"author\":{\"name\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088\"},\"headline\":\"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO &#8211; PART III\",\"datePublished\":\"2016-05-19T22:38:41+00:00\",\"dateModified\":\"2025-10-09T14:12:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\"},\"wordCount\":644,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\",\"name\":\"Faster Indexing and Query- part3 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-05-19T22:38:41+00:00\",\"dateModified\":\"2025-10-09T14:12:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#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\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO &#8211; PART III\"}]},{\"@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":"Faster Indexing and Query- part3 - 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\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/","og_locale":"en_US","og_type":"article","og_title":"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO - PART III","og_description":"In Part I or the series, we have corevered the architecture behind global vs local Indexes and when to use a global (GSI) vs a local index (MapReduce View) index in Couchbase Server. In Part II of the series, we [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-05-19T22:38:41+00:00","article_modified_time":"2025-10-09T14:12: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":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/"},"author":{"name":"Cihan Biyikoglu, Director of Product Management, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088"},"headline":"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO &#8211; PART III","datePublished":"2016-05-19T22:38:41+00:00","dateModified":"2025-10-09T14:12:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/"},"wordCount":644,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/","url":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/","name":"Faster Indexing and Query- part3 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-05-19T22:38:41+00:00","dateModified":"2025-10-09T14:12:05+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#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\/efficient-io-with-circular-writes-on-global-indexes-in-couchbase-server-4-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Faster Indexing and Query: Introducing Circular Writes with Standard Global Secondary Indexes for Efficient IO &#8211; PART III"}]},{"@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\/2270","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=2270"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2270\/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=2270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2270"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}