{"id":6589,"date":"2019-03-28T09:05:03","date_gmt":"2019-03-28T16:05:03","guid":{"rendered":"http:\/\/www.couchbase.com\/blog\/?p=6589"},"modified":"2025-06-13T20:19:42","modified_gmt":"2025-06-14T03:19:42","slug":"couchbase-in-telecom-megafon-russia","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/","title":{"rendered":"Couchbase in Telecom:  MegaFon, Russia"},"content":{"rendered":"<p><em>Egor Kovalchuk is a deployment manager in MegaFon, one of the largest telecommunication companies in Russia.\u00a0 His career in telecom spans more than a decade.\u00a0 Egor&#8217;s team is in charge of developing, integrating, and monitoring multiple business systems and applications spanning the eleven time zones of Russia.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6597\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon-egor.png\" alt=\"Egor Kovalchuk\" width=\"338\" height=\"409\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor.png 338w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor-248x300.png 248w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor-300x363.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor-17x20.png 17w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/p>\n<h2>Couchbase in Telecom: MegaFon, Russia<\/h2>\n<p>Digital transformation is a global trend for companies large and small.\u00a0 It is vital for enterprises to adapt to the modern customer needs.\u00a0 Customers are used to highly available and real-time systems provided by the industry leaders (Google, Amazon, Netflix), and they demand the same experience from all market players.<\/p>\n<p>Russian telecommunication companies are fully affected by this trend.\u00a0 New customer-friendly features need to be rolled out <strong>fast<\/strong> and <strong>scale<\/strong> easily.\u00a0 We need to react <strong>quickly<\/strong> to the moves of our competitors. \u00a0All this needs to be delivered while managing the rising costs of the IT spending (infrastructure, data centers, skilled personnel).\u00a0 That\u2019s where new technologies, like in-memory cache and NoSQL databases, come in handy.<\/p>\n<p>I will describe the following two use cases we use in MegaFon with in-memory databases:<\/p>\n<ul>\n<li><strong>Simple caching<\/strong>: the cache gets populated and updated on a schedule, as well as by database and application events.<\/li>\n<li><strong>Write-through caching<\/strong>: the changes in cache propagate to the main database (e.g., Oracle database gets updates from Couchbase DCP stream).<\/li>\n<\/ul>\n<p>The first approach is used in our decision-making system for the subscriber\u2019s life cycle.\u00a0 A single application analyzes multiple factors, makes a decision, and sends the change out to multiple systems (including an Oracle database).\u00a0 An example of such an application is locking and unlocking of prepaid plan accounts.\u00a0 When the prepaid amount is used up, the account gets locked, and no service is provided, until the customer refills it.\u00a0 Once the account is refilled, the service needs to be re-enabled as soon as possible.\u00a0 Thanks to the use of Couchbase, we have shortened the service reinstatement time from 90 to 30 seconds, and there is still room for improvement. \u00a0The only update sent to the main database is the account status change (see Figure 1 below).<\/p>\n<div id=\"attachment_6590\" style=\"width: 965px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6590\" class=\"size-full wp-image-6590\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon01.png\" alt=\"Figure 1: MegaFon Fast Account Status Update\" width=\"955\" height=\"457\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon01.png 955w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon01-300x144.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon01-768x368.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon01-20x10.png 20w\" sizes=\"auto, (max-width: 955px) 100vw, 955px\" \/><p id=\"caption-attachment-6590\" class=\"wp-caption-text\"><em>Figure 1: MegaFon Fast Account Status Update Process<\/em><\/p><\/div>\n<p>Why did we choose Couchbase Server as part of our digital transformation efforts?\u00a0 Let\u2019s look at our performance requirements and see how well Couchbase fits them.<\/p>\n<h4><strong>NoSQL <a href=\"https:\/\/www.couchbase.com\/blog\/5-steps-to-better-database-performance\/\">Database Performance<\/a> Requirements<\/strong><\/h4>\n<ul>\n<li>Processing throughput: up to 200,000 requests per second.<\/li>\n<li>Average latency (50%), single cluster: within 5 ms.<\/li>\n<li>Maximum latency (99%), single cluster: within 15 ms.<\/li>\n<li>Maximum insert throughput: 500 MB per second.<\/li>\n<li>Maximum number of insert operations: 100,000 per second.<\/li>\n<li>Maximum update throughput: 500 MB per second.<\/li>\n<li>Maximum number of update operations: 100,000 per second.<\/li>\n<li>Maximum read throughput: 500 MB per second.<\/li>\n<li>Maximum number of read operations: 100,000 per second<\/li>\n<\/ul>\n<h4><strong>High Performance Key-Value Data Access<\/strong><\/h4>\n<p>Couchbase Server, at its core, is a distributed Key-Value (KV) database.\u00a0 KV storage is a simple data management approach that stores a unique identifier (key) along with a piece of arbitrary information (value).\u00a0 The value can be a binary object (BLOB\/blob) or a JSON-document.\u00a0 Due to the simplicity of KV implementation (especially when compared to relational databases), data access is provided with minimal latency.\u00a0 In our deployments, the network latency is often 2-3 times higher than the time to complete a KV operation in Couchbase cluster.<\/p>\n<h4><strong>Flexible Data Format (JSON)<\/strong><\/h4>\n<p>JavaScript Object Notation (JSON) is the preferred data storage format in Couchbase.\u00a0 The format supports both primitive (booleans, numbers, strings) and composite types (arrays, lists, dictionaries) data types.<\/p>\n<p>The data schema of your JSON documents can be easily changed based on your changing application requirements.\u00a0 Different schema versions can be tracked by an additional document field, thus ensuring smooth application upgrades and backward compatibility.<\/p>\n<h4><strong>High Availability<\/strong><\/h4>\n<p>Couchbase Sever provides several features to support high availability (HA) of the data.\u00a0 Intra-cluster <a href=\"https:\/\/www.couchbase.com\/blog\/data-replication-advantages\/\">data replication<\/a> (distribution of several copies of data on different servers within a single cluster) keeps data 100% available during scheduled server maintenance or unexpected server failures.<\/p>\n<div id=\"attachment_6591\" style=\"width: 560px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6591\" class=\"wp-image-6591\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon02.png\" alt=\"Figure 2: Couchbase Intra-cluster Replication\" width=\"550\" height=\"547\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02.png 678w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02-300x298.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02-150x150.png 150w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02-65x65.png 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon02-20x20.png 20w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><p id=\"caption-attachment-6591\" class=\"wp-caption-text\"><em>Figure 2: Couchbase Intra-cluster Replication<\/em><\/p><\/div>\n<p>The Database Change Protocol (DCP) is another important HA component of Couchbase.\u00a0 This high-performance streaming protocol communicates data changes to internal and external consumers.\u00a0 It is responsible for maintaining global secondary indexes (GSI) used for SQL querying, full-text search (FTS) indexes, cross data center replication (XDCR, inter-cluster replication protocol), and other services.<\/p>\n<h4><strong>Bidirectional (Inter-Cluster) Replication<\/strong><\/h4>\n<p>Redundant applications and equipment have long been a best practice in the industry.\u00a0 Ideally, your <a href=\"https:\/\/www.couchbase.com\/blog\/distributed-databases-overview\/\">distributed databases<\/a> are deployed using Active-Active (AA) architecture, when applications automatically switch to a different cluster in case of connectivity issues. mode, when switching between problem nodes occurs automatically.\u00a0 Couchbase Server supports bidirectional XDCR to enable AA scenarios.\u00a0 However, the eventual consistency of data in multi-cluster deployments may not be acceptable for certain business applications.<\/p>\n<p>In our environment, we found out that when data centers are located more than 100 km apart, data conflict resolution becomes a challenge.\u00a0 Couchbase provides two conflict resolution mechanisms: \u00a0revision-based and timestamp-based.\u00a0 Due to our network latency, neither of them could provide acceptable data consistency in full AA scenario (when writes and reads can happen on any cluster).\u00a0 As a result, we implemented the architecture where all changes (writes) are made on a single cluster that propagates changes to other data centers.\u00a0 The applications can read data from either data center.<\/p>\n<h4><strong>Horizontal Scaling<\/strong><\/h4>\n<p>Horizontal scaling (increasing cluster resources by adding new servers) is a big selling point of NoSQL databases.\u00a0 The important feature of Couchbase Server is the ability to scale different cluster loads (KV operations, SQL queries, data indexing, etc.) independently; Couchbase calls it \u201cmulti-dimensional scaling, MDS\u201d (see Figure 3 below).\u00a0 Every node in Couchbase cluster can run a single service or multiple services; the choice is made when a node is added to the existing cluster.<\/p>\n<div id=\"attachment_6592\" style=\"width: 811px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6592\" class=\"wp-image-6592\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon03-768x338.png\" alt=\"Figure 3: Couchbase Multi-dimensional Scaling (MDS)\" width=\"801\" height=\"352\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-768x338.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-300x132.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-1024x450.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-1536x675.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-2048x900.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon03-1320x580.png 1320w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><p id=\"caption-attachment-6592\" class=\"wp-caption-text\"><em>Figure 3: Couchbase Multi-dimensional Scaling (MDS)<\/em><\/p><\/div>\n<h4><strong>Information Security Requirements<\/strong><\/h4>\n<p>Couchbase security features were another reason (albeit not primary) for making it our system of choice.\u00a0 Since it is possible for the personally identifiable information (PII) to be stored in cache, our company has to be in compliance with the governing laws.\u00a0 If the data platform does not offer the necessary security features, it may be necessary to purchase additional hardware to be compliant<\/p>\n<p>Couchbase Server Enterprise Edition (EE) supports traffic encryption, data encryption, and role-based access control (RBAC).\u00a0 This potentially allows you to save on network security hardware, such as Cisco ASA.<\/p>\n<h4><strong>Ease of Upgrade<\/strong><\/h4>\n<p>Couchbase Server provides several different upgrade options.\u00a0 The online upgrade option allows your applications to continue working with the cluster with minimal impact to performance and functionality (due to API backward compatibility).\u00a0 While cluster nodes are being upgraded, the cluster will continue working in compatibility mode; the features of the new version will become active once all the nodes complete the upgrade.<\/p>\n<h4><strong>Additional Functionality<\/strong><\/h4>\n<h5><em>Server Group Awareness (Rack Awareness, Availability Zones)<\/em><\/h5>\n<p>In Couchbase, individual servers can be assigned to specific server groups.\u00a0 This feature is similar to cloud service availability zones (AZ).\u00a0 When server groups are used, the distribution algorithm of active data and replicas assures full data availability in case the entire server group offline.<\/p>\n<p>In the telco world, this allows us to keep fully replicated datasets in different equipment rooms of the data center.\u00a0 If the entire equipment room (mapped to a Couchbase server group) goes offline, the applications will continue working with the full dataset in the other equipment room.<\/p>\n<div id=\"attachment_6593\" style=\"width: 610px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6593\" class=\"wp-image-6593\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon04-768x747.png\" alt=\"Figure 4: Couchbase Server Groups\" width=\"600\" height=\"584\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon04-768x747.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon04-300x292.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon04-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon04-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon04.png 861w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><p id=\"caption-attachment-6593\" class=\"wp-caption-text\"><em>Figure 4: Couchbase Server Groups<\/em><\/p><\/div>\n<h5><em>Backup and Restore<\/em><\/h5>\n<p>Couchbase provides several backup and recovery tools; cbbackupmgr is available in EE only.\u00a0 The backup can be done in three different ways: \u00a0full, differential, and cumulative.\u00a0 The correct combination of these backup modes allows to save disk space and optimize system resource usage.<\/p>\n<div id=\"attachment_6594\" style=\"width: 812px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6594\" class=\"wp-image-6594\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon05-1024x233.jpg\" alt=\"Figure 5: Couchbase Backup Combining\" width=\"802\" height=\"182\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-1024x233.jpg 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-300x68.jpg 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-768x174.jpg 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-1536x349.jpg 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-20x5.jpg 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05-1320x300.jpg 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon05.jpg 2048w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><p id=\"caption-attachment-6594\" class=\"wp-caption-text\"><em>Figure 5: Couchbase Backup Combining<\/em><\/p><\/div>\n<h4><strong>Couchbase vs. MongoDB<\/strong><\/h4>\n<p>Choosing a NoSQL database from the available competing technologies may be challenging.\u00a0 [At least with Linux OS it\u2019s easier:\u00a0 the best Linux distro is the one your system administrator knows best.]\u00a0 We summarized in the table below some of the important differences that convinced us to choose Couchbase technology over another popular NoSQL platform, MongoDB.<\/p>\n<p>It is admittedly difficult to compare two different projects with different architectures and functionality.\u00a0 It was important for us to have the system that is easy to maintain and can be quickly adjusted to the changing business needs.<\/p>\n<div class=\"responsive-table\">\n<table>\n<tbody>\n<tr>\n<td width=\"200\"><\/td>\n<td style=\"text-align: center\" width=\"200\"><strong>Couchbase<\/strong><\/td>\n<td style=\"text-align: center\" width=\"200\"><strong>MongoDB<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Sharding<\/strong><\/td>\n<td width=\"200\">Automatic for entire dataset<\/td>\n<td width=\"200\">Manual key selection per collection<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Data Distribution<\/strong><\/td>\n<td width=\"200\">Data always uniformly distributed over all data nodes<\/td>\n<td width=\"200\">Range sharding can result in non-uniform distribution<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Adding\/Removing Nodes or Shards<\/strong><\/td>\n<td width=\"200\">Simple, completed in one step (over GUI, REST API, or CLI), followed by a rebalance<\/td>\n<td width=\"200\">Complex, need to create replica sets. \u00a0Each collection scales differently<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Rack Awareness<\/strong><\/td>\n<td width=\"200\">Built-in and easy, via server groups<\/td>\n<td width=\"200\">Not built-in, need to manually allocate replica set nodes from different racks.<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Balanced Setup<\/strong><\/td>\n<td width=\"200\">Cluster is always balanced with each node having equal number of active vBuckets (shards).<\/td>\n<td width=\"200\">Not balanced. \u00a0Secondary nodes do not serve any write traffic (not even read traffic by default).<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Index Scale-Out<\/strong><\/td>\n<td width=\"200\">Independently scale indexes of data. \u00a0Can even use different kind of hardware for index nodes.<\/td>\n<td width=\"200\">Index scaling tied coupled with data scaling. \u00a0Have to add capacity to data cluster to accommodate changes in query workload.<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Cluster Metadata<\/strong><\/td>\n<td width=\"200\">No special nodes needed, distributed across all data nodes.<\/td>\n<td width=\"200\">Special configuration servers need to be set up, a minimum of 3 nodes<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Replication Architecture<\/strong><\/td>\n<td width=\"200\">Completely independent cluster, which can be scaled and managed without any dependencies.<\/td>\n<td width=\"200\">Extension of intra-cluster replication, not an independent system.<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Replication Flexibility<\/strong><\/td>\n<td width=\"200\">Very flexible; bucket level, advanced optimization techniques to tune to the need.<\/td>\n<td width=\"200\">Tuning, choosing speed, bandwidth is not possible.<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Replication Topology<\/strong><\/td>\n<td width=\"200\">Support for complex topologies:\u00a0 bidirectional, star, mesh, chain, ring, etc.<\/td>\n<td width=\"200\">No support for complex topologies:\u00a0 unidirectional, star. \u00a0Primary is a\u00a0bottleneck.<\/td>\n<\/tr>\n<tr>\n<td width=\"200\"><strong>Active-Active Replication<\/strong><\/td>\n<td width=\"200\">Supported<\/td>\n<td width=\"200\">Not supported<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Overall, Couchbase is more flexible and easier to maintain and configure for MegaFon\u2019s use cases and the constantly evolving hybrid architecture.<\/p>\n<h4><strong>Our Couchbase Journey So Far<\/strong><\/h4>\n<p>Below are some quick stats from our production Couchbase cluster and its load:<\/p>\n<ul>\n<li>The cluster handles data of more than 80 million subscribers. This number includes mobile phones, LTE routers, multiple consumer devices with built-in SIM cards, etc.<\/li>\n<li>380 million JSON documents with customer data<\/li>\n<li>3.5 TB disk storage (active dataset, replicas not included)<\/li>\n<li>3 TB RAM<\/li>\n<li>50,000 operations per second, sustained (see Figure 6 below)<\/li>\n<li>50 microservices processing the entire message flow<\/li>\n<\/ul>\n<div id=\"attachment_6595\" style=\"width: 1057px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6595\" class=\"size-full wp-image-6595\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon06.png\" alt=\"Figure 6: Couchbase Production Load\" width=\"1047\" height=\"260\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon06.png 1047w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon06-300x74.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon06-1024x254.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon06-768x191.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon06-20x5.png 20w\" sizes=\"auto, (max-width: 1047px) 100vw, 1047px\" \/><p id=\"caption-attachment-6595\" class=\"wp-caption-text\"><em>Figure 6: Couchbase Production Load<\/em><\/p><\/div>\n<p>This transformation project started with Couchbase Server version 3.x.\u00a0 Initially, all applications worked stably.\u00a0 However, when we added new application functionality that relied on the use of Couchbase views, we started experiencing issues with unpredictable behavior of views. \u00a0[Views are a map\/reduce indexing and querying mechanism.\u00a0 It is considered a legacy feature in Couchbase Server 5.x-6.x.\u00a0 It is getting phased out in favor of global secondary indexes and N1QL querying.]\u00a0 The view update process on a node would sometimes freeze, which prevented applications from receiving the view data from this node.\u00a0 The KV operations would continue performing normally.<\/p>\n<p>This issue could be fixed by restarting the node, which affected data availability.\u00a0 As a temporary workaround (while we were planning to upgrade to Couchbase Server version 4.x), Couchbase technical support suggested the following version-specific undocumented command to restart only the view update process:<\/p>\n<pre class=\"lang:default decode:true\"># This command only works with Couchbase Server version 3.x\r\n# Don't use without your admin's blessing!\r\ncurl -s --data 'cb_couch_sup:restart_couch().' -u Administrator:pass https:\/\/127.0.0.1:8091\/diag\/eval<\/pre>\n<pre class=\"lang:default decode:true\"># This command only works with Couchbase Server version 4.x\r\n# Don't use without your admin's blessing!\r\ncurl -s --data 'couch_server_sup:restart_core_server().' -u Administrator:pass https:\/\/127.0.0.1:8091\/diag\/eval<\/pre>\n<p>Another issue we encountered with Couchbase Server version 3.x was periodic termination of the compaction process.\u00a0 The process had to be restarted manually upon receiving monitoring alarms.\u00a0 Both of these production issues were a headache for operations and development staff alike.<\/p>\n<p>Following Couchbase technical support recommendation, we decided to upgrade to Couchbase Server version 4.x.\u00a0 The overall upgrade process took about two weeks, since we had to assure with minimal impact on the production applications.\u00a0 The upgrade steps are pretty straightforward, but the rolling online upgrade \u2013 including node removal, rebalance, node upgrade, node addition to the cluster, and another rebalance \u2013 would take 2+ hours.\u00a0 We were able to optimize this process by introducing an extra node to take advantage of Couchbase swap rebalance. \u00a0In this case, the data is copied directly from the node being removed to the node being added, which greatly speeds up the rebalance.\u00a0 This reduced the upgrade time per node to 30 minutes.<\/p>\n<p>When upgrading a production Couchbase cluster, you should keep in mind that the cluster will operate in compatibility mode, when only the features from the older version will be available across all nodes.\u00a0 This ensures the smooth and painless upgrade.\u00a0 The downside is that the new features and fixes of the upgraded version (N1QL indexes and queries, full-text search, etc.) will only become available when all nodes in the cluster are upgraded.<\/p>\n<p>Our initial upgrade to version 4.x fixed only the issue with compaction.\u00a0 The view issue remained, although it arose not nearly as often.\u00a0 It was fully remedied only in Couchbase Server version 4.6.4.<\/p>\n<p>We were also notified by Couchbase technical support that views functionality will no longer be improved and is on the way to be deprecated.\u00a0 Global Secondary Indexes (GSI) and N1QL (pronounced as \u201cnickel\u201d, Couchbase SQL implementation) queries are the much better scalable alternative for views.\u00a0 Index and query loads can be scaled independently, without being tied to data nodes (see Figure 7 below):<\/p>\n<div id=\"attachment_6596\" style=\"width: 1074px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6596\" class=\"size-full wp-image-6596\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/03\/megafon07.png\" alt=\"Figure 7: Couchbase Services on Different Nodes\" width=\"1064\" height=\"179\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon07.png 1064w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon07-300x50.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon07-1024x172.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon07-768x129.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon07-20x3.png 20w\" sizes=\"auto, (max-width: 1064px) 100vw, 1064px\" \/><p id=\"caption-attachment-6596\" class=\"wp-caption-text\"><em>Figure 7: Couchbase Services on Different Nodes<\/em><\/p><\/div>\n<p>With the upgrade to Couchbase Sever 4.6.4, we have resolved all our critical production issues.\u00a0 However, the new features and improvements of Couchbase Server 5.1 compelled us to complete another upgrade cycle.\u00a0 With the new GSI engine, our indexes now take up about 1.5 times less disk and memory space, which helps with our increasing data volume.\u00a0 Unfortunately, version 5.1 does not offer any data storage improvements (in-memory or on-disk).\u00a0 Data compression has been added in version 5.5.<\/p>\n<h4><strong>Conclusion<\/strong><\/h4>\n<p>Overall, Couchbase Server proved to be a mature, high performance data platform.\u00a0 As part of the MegaFon hybrid architecture, Couchbase cluster can be easily adapted for any production load without equipment downtime or extensive configuration changes to the servers.\u00a0 This generally results in personnel costs reduction and customer satisfaction.<\/p>\n<p>&nbsp;<\/p>\n<p><em>The original article has been published in a popular Russian collaborative IT blog, Habrahabr:\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/436762\/\">https:\/\/habr.com\/ru\/post\/436762\/<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Egor Kovalchuk is a deployment manager in MegaFon, one of the largest telecommunication companies in Russia.\u00a0 His career in telecom spans more than a decade.\u00a0 Egor&#8217;s team is in charge of developing, integrating, and monitoring multiple business systems and applications [&hellip;]<\/p>\n","protected":false},"author":1414,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,1816,9417,9411,1812],"tags":[1986,2347,9271,1725],"ppma_author":[9081],"class_list":["post-6589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-couchbase-server","category-performance","category-multi-dimensional-scaling","category-n1ql-query","tag-customer-experience","tag-customers","tag-multi-dimensional-scaling","tag-nosql-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Couchbase in Telecom: MegaFon, Russia - 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\/couchbase-in-telecom-megafon-russia\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase in Telecom: MegaFon, Russia\" \/>\n<meta property=\"og:description\" content=\"Egor Kovalchuk is a deployment manager in MegaFon, one of the largest telecommunication companies in Russia.\u00a0 His career in telecom spans more than a decade.\u00a0 Egor&#8217;s team is in charge of developing, integrating, and monitoring multiple business systems and applications [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-28T16:05:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:19:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor.png\" \/>\n\t<meta property=\"og:image:width\" content=\"338\" \/>\n\t<meta property=\"og:image:height\" content=\"409\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oleg Kuzmin, Sr. Solutions Engineer, 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=\"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/\"},\"author\":{\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/567ed489e7c498f0b9ff0014374c2bcd\"},\"headline\":\"Couchbase in Telecom: MegaFon, Russia\",\"datePublished\":\"2019-03-28T16:05:03+00:00\",\"dateModified\":\"2025-06-14T03:19:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/\"},\"wordCount\":2370,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"customer experience\",\"Customers\",\"Multi-Dimensional Scaling (MDS)\",\"NoSQL Database\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Server\",\"High Performance\",\"Multi-Dimensional Scaling (MDS)\",\"SQL++ \\\/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/\",\"name\":\"Couchbase in Telecom: MegaFon, Russia - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2019-03-28T16:05:03+00:00\",\"dateModified\":\"2025-06-14T03:19:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-in-telecom-megafon-russia\\\/#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\\\/couchbase-in-telecom-megafon-russia\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase in Telecom: MegaFon, Russia\"}]},{\"@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\\\/567ed489e7c498f0b9ff0014374c2bcd\",\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g3c430b3fd08e47e71c288418a9321d65\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"caption\":\"Oleg Kuzmin, Solutions Architect, Databricks\"},\"sameAs\":[\"https:\\\/\\\/databricks.com\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/author\\\/oleg-kuzmincouchbase-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase in Telecom: MegaFon, Russia - 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\/couchbase-in-telecom-megafon-russia\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase in Telecom: MegaFon, Russia","og_description":"Egor Kovalchuk is a deployment manager in MegaFon, one of the largest telecommunication companies in Russia.\u00a0 His career in telecom spans more than a decade.\u00a0 Egor&#8217;s team is in charge of developing, integrating, and monitoring multiple business systems and applications [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-03-28T16:05:03+00:00","article_modified_time":"2025-06-14T03:19:42+00:00","og_image":[{"width":338,"height":409,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/03\/megafon-egor.png","type":"image\/png"}],"author":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/"},"author":{"name":"Oleg Kuzmin, Solutions Architect, Databricks","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/567ed489e7c498f0b9ff0014374c2bcd"},"headline":"Couchbase in Telecom: MegaFon, Russia","datePublished":"2019-03-28T16:05:03+00:00","dateModified":"2025-06-14T03:19:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/"},"wordCount":2370,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["customer experience","Customers","Multi-Dimensional Scaling (MDS)","NoSQL Database"],"articleSection":["Couchbase Architecture","Couchbase Server","High Performance","Multi-Dimensional Scaling (MDS)","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/","name":"Couchbase in Telecom: MegaFon, Russia - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2019-03-28T16:05:03+00:00","dateModified":"2025-06-14T03:19:42+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-in-telecom-megafon-russia\/#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\/couchbase-in-telecom-megafon-russia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase in Telecom: MegaFon, Russia"}]},{"@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\/567ed489e7c498f0b9ff0014374c2bcd","name":"Oleg Kuzmin, Solutions Architect, Databricks","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g3c430b3fd08e47e71c288418a9321d65","url":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","caption":"Oleg Kuzmin, Solutions Architect, Databricks"},"sameAs":["https:\/\/databricks.com"],"url":"https:\/\/www.couchbase.com\/blog\/author\/oleg-kuzmincouchbase-com\/"}]}},"acf":[],"authors":[{"term_id":9081,"user_id":1414,"is_guest":0,"slug":"oleg-kuzmincouchbase-com","display_name":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0f297a537c749f924978fb4b8fd8d25dd01526af81550a9df5403c58cb300f06?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6589","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\/1414"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=6589"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6589\/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=6589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=6589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=6589"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=6589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}