|CouchDB 3.2 Improves Replication Scheduler|
|Written by Kay Ewbank|
|Thursday, 21 October 2021|
CouchDB has been upgraded with improvements including a more sophisticated replication scheduler and more work to the sharding support.
Apache CouchDB is an open source NoSQL document database that stores data in a schema-free JSON format. CouchDB uses its own replication protocol to keep JSON documents synchronized. CouchDB was originally developed by Damien Katz, and was then adopted as a successful Apache project. CouchDB comes with a developer-friendly query language, and optionally MapReduce for simple, efficient, and comprehensive data retrieval.
The sharding improvements mean that the couch_server module is now sharded. Until now the couch_server module ran in a single Erlang process that, on busy nodes, could become a bottleneck. This contrasted with other modules that were already using a high-concurrency process architecture. The latest release adds a couch_server_N module per CPU core, and the developers say this should remove the bottleneck.
The other main improvement is to the replication scheduler. This manages which replications run at any one time, and is important when there are more total replications than are configured to run concurrently. In earlier releases, the replication scheduler would work through all the replications in turn giving each equal time. CouchDB 3.2.0 introduces a fair-share option that allows you to use multiple _replicator databases each with a different relative priority, so your important replications get more time.
Diagnostics have been improved with with inclusion of a WeatherReport module. WeatherReport is an OTP application and set of tools that diagnoses common problems that could affect a CouchDB version 3 node or cluster.
Other improvements include support for Erlang versions 23 and 24, and for SpiderMonkey versions 78 and 86.
A prometheus endpoint has also been included to provide an endpoint for stats and metrics.
CouchDB 3.2 is available now.
or email your comment to: email@example.com