Hi all,

I inherited a single-node CouchDB database that backs a medical research 
project. We’ve been using CouchDB for 10+ years so not a concern. Then I 
spotted it uses a single database to store billions, 10^9 if we’re being 
pedantic, of documents (2B at the time just over a TB of data) across the 
default 2 shards. Not ideal but technically not a problem then I spotted it’s 
ingesting ~30M documents a day and was continuously compressing and reindexing 
everything associated with this database.

Skipping over months of trial and error. I’m currently replicating it to a 4 
node NVMe backed cluster n=3 q=256. Everything is running 3.3.3 (the Erlang 
24.3 version). I’ve read [1] and [2] and right now it’s replicating at 2.25k 
documents a second +/- 0.5k . This is acceptable, it will catch up with the 
initial node eventually,  but at the rate it’s going it’ll be ~60 days.

How can speed this process up if at all?

I’d add the code that accesses this database isn’t mine either so splitting the 
database out into logical subsets isn’t an option at this time.

Thanks

    Chris

1 - 
https://blog.cloudant.com/2023/02/08/Replication-efficiency-improvements.html
2 - https://github.com/apache/couchdb/issues/4308


--
Christopher Bayliss
Senior Software Engineer, Melbourne eResearch Group

School of Computing and Information Systems
Level 5, Melbourne Connect (Building 290)
University of Melbourne, VIC, 3010, Australia

Email: 
[email protected]<mailto:[email protected]>


Reply via email to