Hi Nick Thanks a lot for the feedback. Much appreciated.
Thanks Paul On Wed, 24 Nov 2021 at 19:53, Nick Vatamaniuc <[email protected]> wrote: > Hi Paul, > > I don't think there is a clustered CouchDB book out there, and you've > probably already seen > http://docs.couchdb.org/en/stable/maintenance/performance.html. > > The often overlooked aspect of performance tuning is that it starts > with application design. Things like how indices are defined, using > built-in reducers for map-reduce views, avoiding large document > bodies, IDs and attachments, adjusting the sharding factor (Q) and so > on. For that I can recommend this blog series > https://blog.cloudant.com/ > > In CouchDB 3.x there is an auto-index builder and an improved > compactor. Sometimes it's necessary to adjust those as they might add > unexpected load on the backend. > > On the hardware / operational side, like most databases, CouchDB uses > fsync. So, make sure the IO layer can perform that operation well and > that the file system is POSIX compliant (NTFS, for instance, isn't). > On the networking side, make sure you have low latency and stable > links between your nodes. > > In general, with larger Q values you'd benefit from more CPUs. If you > throw more memory at your nodes, you can increase > > https://docs.couchdb.org/en/stable/maintenance/performance.html#max-dbs-open > to make sure you cache more opened db handles. > > If you're feeling adventurous, you could try playing with compression > options. Snappy is the default compression mechanism in CouchDB but at > Cloudant we are using default_6 which is just the default erlang > term_to_binary compression. So here you can see if changing it makes > any difference. > > Some of the Erlang VM parameters can be tuned in the vm.args file. > Here are some values I've seen used for larger clusters > > ``` > +K true > +A32 > +zdbbl32768 > ``` > > For these you can read general Erlang VM performance guides. If, by > chance, you're running your DB in kube, take a look at > https://adoptingerlang.org/docs/production/kubernetes/ > > Cheers, > -Nick > > > > > On Tue, Nov 23, 2021 at 3:39 AM Paul Milner <[email protected]> wrote: > > > > Hello > > > > Can someone recommend a book or website that can help me to understand > > optimising Couchdb and making it performant please? > > > > I've looked at Fabric, Erlang etc options, but would like to get an > > overview and deep understanding of how it works. > > > > I've also been through the documentation, but feel this would help. > > > > Thanks a lot > > Best regards > > Paul >
