Why Enterprise Edition

Couchbase Server is generally available in three flavors: Community Edition (CE), Enterprise Edition (EE) and Couchbase Cloud (DBaaS).  Many customers start with Community Edition. They download CE and use it completely free to run development, test and production workloads. CE includes some basic availability, security and performance features. However, EE can be useful for heavy production workloads. For instance, CE has limited concurrency (maximum of 4 cores per node). Index replicas are not available. Analytics and Eventing services are not available.  CE doesn’t have multi-dimensional scaling (MDS) and supports only the following combinations of services on the nodes: “Data”, “Data, Index, Query”, “Data, Index, Query, Full Text Search”. For more information check out a detailed comparison of Community and Enterprise editions.

Upgrading From Couchbase Community Edition

What if you are already using Community Edition and want to upgrade to Enterprise? The easiest option would be to setup a separate EE cluster and use XDCR (Cross Data Center Replication) to move data from one cluster to another. However, provisioning a new EE cluster might be costly and time consuming, especially for on-premises deployments. In that case, another option would be to run a rolling online upgrade.  Some CE to EE upgrade considerations  are available in Couchbase documentation.

Show Me How to Upgrade

For this blog article I recorded a short video about upgrading Couchbase Community Edition cluster. I followed the rolling online upgrade process with an extra spare node. To make the upgrade more realistic, I ran a N1QL workload simulator (a program called n1qlback) throughout the whole upgrade process. I used the standard travel-sample bucket with 10 global secondary indexes (GSI) . One of the objectives of this test was to show that there would be no interruption or errors for the query flow while dropping and re-creating indexes, adding and removing nodes with different editions of Couchbase. Below is the list of upgrade steps.

  1. Add one extra EE node into the CE cluster
  2. Re-create secondary indexes from one of the CE nodes over to the EE node.
  3. Drop the secondary indexes on the CE node
  4. Remove a CE node from the cluster.
  5. Uninstall CE on the removed node and install EE.
  6. Bring EE node back into the cluster.
  7. Repeat this process for other CE nodes.

 

Post-Upgrade Observations

EE provides a more efficient and performant type of storage mode for secondary indexes.  CE uses an index storage mode called “ForestDB”.

After the upgrade to EE, the new index storage mode is now “Plasma”. Plasma is the storage engine that powers and improves global secondary indexes for heavy workloads, first introduced in Couchbase Enterprise 5.0

EE allows altering secondary indexes, moving them between nodes and changing the number of index replicas. One of the first steps after upgrading the cluster could be enabling index replicas to address high availability concerns. Finally, make sure, that once the EE node has been added to the Couchbase Community Edition cluster that you upgrade all other nodes in order to put the cluster into a stable state.

Author

Posted by Pavel Novokshonov, Sr. Solutions Engineer, Couchbase

Pavel is a Sr. Solution Engineer at Couchbase. Previously, he worked at Teradata Corporation, Harrahs Entertainment and NCR in different roles including database management, consulting, performance engineering and technical pre-sales.

One Comment

  1. In context of CE vs EE, the page comparing editions (https://www.couchbase.com/products/editions) states that Index Replicas are not supported in CE. But when we check the Index page (https://docs.couchbase.com/server/current/learn/services-and-indexes/indexes/index-replication.html), it does not say anything like that. It says Index Partitioning is supported only in EE.

    Could you get that checked if there is a typo somewhere?

    Thanks

Leave a reply