CouchDB Adds Support For Truly Parallel Reads
Written by Kay Ewbank   
Tuesday, 03 June 2025

CouchDB 3.5 has been released with new support for truly parallel reads independent from writes. The new version also adds a conflict finder plugin to the scanner module. 

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. It comes with a developer-friendly query language, and optionally MapReduce for simple, efficient, and comprehensive data retrieval. 

couchdb

The new parallel read support is enabled by default, and the developers say can result in 10%-40% more throughput with highly concurrent workloads. It enables clients to issue concurrent pread calls without blocking each other or having to wait for all writes and fsync calls. 

CouchDB already employed a multiple-parallel-read and concurrent serial-write design at the database engine layer, but below that in the storage engine, each file representing a database shard was required to route all read / write / sync requests through a single Erlang process, limiting the overall speed to that of a single CPU core. This could cause a starvation of the fd-owning Erlang process message inbox if there were thousands of concurrent read requests with a constant stream of writes per shard, or if used on high latency storage devices such as network block storage.

The new parallel preads allows multiple descriptors to be used for reading and writing. Writes continue to be serialised at the database engine layer, but reads now are no longer blocked by writes waiting to commit. The change means the performance is always equal or better than before.

This release also introduces a conflict finder plugin to the scanner module. The addition means users can now scan their databases for conflicts in the background and have results reported in CouchDB logs for cleanup.

The new version also adds four new built-in reducers that respectively return the top_N, bottom_N, first or last values for a given group level in a map-reduce view. Until now developers had to implement these reducers themselves. 

The final change of note is that the official binary packages are now shipping with Erlang 26, resulting in better JIT performance across the board.

CouchDB 3.5 is available now.

 couchdb

More Information

CouchDB Download

Related Articles

CouchDB 3.4 Strengthens Password Hashes

CouchDB 3.2 Improves Replication Scheduler

CouchDB Adds Live Shard Splitting

CouchDB Adds Clustering Support

Apache CouchDB 1.6.0 Released

Faster Apache CouchDB

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Meet LegoGPT
11/05/2025

LegoGPT is an AI model that creates physically stable Lego structures from text prompts. Not only does it design Lego models that match text-supplied descriptions, it also ensures they can be built br [ ... ]



Apache Gravitino 0.9 Released
29/05/2025

Apache Gravitino v0.9.0-incubating has been released, with optimizations to the fileset catalogs and model catalogs, making it easier for users to manage their unstructured AI data and model data.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info