Another feature related to efficient view querying are partitioned databases: https://docs.couchdb.org/en/stable/partitioned-dbs/index.html. It's a bit of a niche, as you'd need to have a good partition key, but aside from that, it can speed up your queries as responses would be coming from a single shard only instead of Q shards.
On Wed, Jun 12, 2024 at 1:30 PM Markus Doppelbauer <[email protected]> wrote: > Hi Nick, > Thank you very much for your reply.This is exactly what we are looking > for.There are so many DBs that store the secondary indexlocally > (Cassandra, Aerospike, SyllaDB, ...) > Thanks again for the answerMarcus > > > Am Mittwoch, dem 12.06.2024 um 13:23 -0400 schrieb Nick Vatamaniuc: > > Hi Marcus, > > The node handling the request only queries the nodes with shard > > copies ofthat database. In a 100 node cluster the shards for that > > particulardatabase might be present on only 6 nodes, depending on the > > Q and Nsharding factors, so it will query 6 out 100 nodes. For > > instance, for N=3and Q=2 sharding factors, it will first send N*Q=6 > > requests, and wait untilit gets at least one response for each of the > > Q=2 shard ranges. Thishappens very quickly. Then, for the duration of > > the response, it will onlystream responses from those Q=2 workers. > > So, to summarize for a Q=2database, it will be a streaming response > > from 2 workers. For Q=4, from 4workers, etc... > > Cheers,-Nick > > > > On Wed, Jun 12, 2024 at 1:00 PM Markus Doppelbauer< > > [email protected]> wrote: > > > Hello, > > > Is the CouchDB-view a "global" or "local" index?For example, if a > > > cluster has 100 nodes, would the query askfor a single node - or > > > 100 nodes? > > > /.../_view/posts?startkey="foobar"&endkey="foobaz" > > > Best wishesMarcus > > > >
