The Road to CouchDB 3.0: Easy Fulltext Search

This is a post in a series about the Apache CouchDB 3.0 release. Check out the other posts in this series.

As long as CouchDB has existed, Robert Newson has created external Lucene indexing for it:

  • CouchDB 1.x had couchdb-lucene.
  • CouchDB 2.x has Clouseau & Dreyfus, highly efficient and clustered Lucene search, albeit awkward to install.
  • CouchDB 3.x bundles Dreyfus and makes Clouseau very easy to install.

It has never been easier to add fulltext indexing to CouchDB than with CouchDB 3.0. The very short installation instructions are proof of that.
Once set up, the whole power of Lucene queries are available across all your CouchDB databases.

The Road to CouchDB 3.0: Smarter Smarter I/O Queue

This is a post in a series about the Apache CouchDB 3.0 release. Check out the other posts in this series.

Hand in hand with smarter compaction and view indexing, 3.0 introduces the third major Cloudant contribution: A brand new I/O Queue.

CouchDB 1.x did not have a way to manage disk I/O in any way. All requests external and internal (like view indexing or compaction) were treated equally. This meant that while running compaction, for example, all other requests to the database were impacted.

CouchDB 2.x introduced a basic I/O Queue that differentiated between interactive requests and background tasks, and made sure that background tasks did not take away any performance from interactive requests. That is, your application would receive full performance whenever it needed it, and CouchDB would do maintenance when there were spare CPU cycles.

However, this paints a very simple picture, and with the I/O Queue system being very basic, many caveats applied.

CouchDB 3.0 introduces a more sophisticated I/O Queue system that lets you control all types of requests and tasks into queues with different performance characteristics.

See the documentation for all details.