couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nick Vatamaniuc <>
Subject [DISCUSS] Node types in CouchDB 4.x
Date Tue, 19 Nov 2019 17:10:57 GMT
Hi everyone,

I'd like to discuss the ability to have heterogeneous nodes types in CouchDB 4.

In CouchDB 2 and 3 the nodes in the cluster are usually similar, and
functionality is uniformly distributed amongst the nodes. That is all
nodes can accept HTTP requests, run replication jobs, build indices
etc. They are typically deployed such that they similar hardware

In an FDB-based CouchDB 4, CRUD operations, on the Erlang nodes,
wouldn't require as many resources, so it would be possible to have a
set of nodes, performing just CRUD operations that are much smaller
than the equivalent CouchDB 2 and 3 nodes. However, indexing and
replication might still require heavy resource usage.

So the proposal is to add configuration to CouchDB 4 to allow some
nodes to perform only  a subset of their current functionality. For
example, it would be possible to have 6 1-CPU nodes with 512MB
accepting API requests, and, 2 4-CPU node with 4GB of memory each
running replication and indexing jobs only, or any other such
combinations. By default, with any extra configuration, the behavior
would stay as is today -- all nodes will run all the functionality.

I created an RFC exploring how it might look like:

There is a comment there how it could be implemented. So far it looks
like it could be fairly trivial  since it would build on the
couch_jobs work already in place.

What does everyone think?


View raw message