A patch to the setup wizard and _cluster_setup endpoint would also work,
if it included the advice here, which I mainly agree with.

There is some variance on how many couchjs process are expected, but
other than that, this looks like not bad advice.

> On 11. Jul 2019, at 18:07, Joan Touzet <woh...@apache.org> wrote:
> 
> Hi Tabeth,
> 
> This is a good start. I'll let others comment on the specific advice.
> 
> One point raised in this thread is ermouth's request to have this value
> automatically set by the installer. Detecting the number of cores in a
> cross-platform way is pretty challenging, especially when you consider
> things like hyperthreading (which aren't full "cores") on physical machines.
> 
> I agree a table would be a good thing for the docs, but we really need a
> single number for q (plus other config settings) that will be good
> defaults for low-performing HW.
> 
> -Joan
> 
> On 2019-07-11 11:43, Tabeth Nkangoh wrote:
>> Hello all,
>> 
>> 
>> After reading the documentation 
>> <https://docs.couchdb.org/en/2.2.0/cluster/sharding.html> and this thread I 
>> propose the following formula to document officially for determining the Q 
>> and N values.
>> 
>> 
>> To start, as currently documented, N should be set to the number of nodes. 
>> This much is straightforward and is documented more or less correctly.
>> 
>> 
>> 
>> For Q, it should equal the amount of cores at a minimum. So, for the 
>> cheapest Digital Ocean droplet, which 1GB of RAM and 1vCPU, Q should be set 
>> to 1 by the user. In the case that each core is sufficiently beefy, e.g. 
>> Intel Xeon or turbo clocked AMD EPYC 7000 2 should be added. 2 is an 
>> arbitrary value but reflects the reality that from what I can tell a 
>> dramatically higher clock speed benefits CouchDB performance AFAIK (I'm not 
>> sure if this benefit is a constant or a multiplier, but I doubt it is a 
>> multiplier simply due to the diminishing returns seen in increased clock 
>> speed).
>> 
>> 
>> To summarize the following table can be used (for example):
>> 
>> 
>> CPU Cores       CPU Clock Speed         Q Value
>> 1       Low     1
>> 2       Low     2
>> 2       High    4
>> 3       High    5
>> 4       Low     4
>> 
>> 
>> Does anyone have any qualms with this as a general guide to give users in 
>> determining the Q value they should set for their CouchDB instance? If not I 
>> can submit a PR soon on this (have to figure out how to create a new 
>> reference for one that's currently open first).
>> 
>> Tabeth
>> 
>> ________________________________
>> From: Joan Touzet <woh...@apache.org>
>> Sent: Thursday, July 11, 2019 11:17 AM
>> To: dev@couchdb.apache.org
>> Subject: Re: CouchDB and future
>> 
>> On 2019-07-11 8:05, ermouth wrote:
>>>> to help with the documentation step
>>> 
>>> Probably. Please give me a hint what you need.
>> 
>> What default settings right now are wrong for a system with low RAM, low
>> CPU, and slow disk - such as a RaspberryPi v1, or a $15/mo AWS server?
>> 
>> -Joan
>> 
>> 
> 

-- 
Professional Support for Apache CouchDB:
https://neighbourhood.ie/couchdb-support/

Reply via email to