[GitHub] abdasgupta commented on issue #68: Provide and publish ppc64le images
abdasgupta commented on issue #68: Provide and publish ppc64le images URL: https://github.com/apache/couchdb-docker/issues/68#issuecomment-391670042 Hi @wohali Currently I am pursuing this task. Can I get an update on the progress of this issue?? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] iilyak commented on issue #1338: Configuring node "flavors" in a cluster
iilyak commented on issue #1338: Configuring node "flavors" in a cluster URL: https://github.com/apache/couchdb/issues/1338#issuecomment-391691432 I think that we need to specialize type of nodes for following reasons: 1. we want to modernize CouchDB API and deprecate not scalable interfaces. 2. we want to experiment with latest research on distributed databases 3. we want to scale the parts independently 4. it makes economic sense to run some types of nodes in containerized environment 5. we might want to consider rich client architecture In order to achieve `#1` we need to introduce API versioning. Since it would take time to update all clients which use CouchDB. We would have to support multiple versions of API for a while. How we can do it? Option 1) restructure the codebase to have a dispatcher module and have separate versions of modules implementing http endpoints and fabric logic. 2) split the node to `api` and `storage` and connect them using stable (non Erlang distribution based) protocol. I do believe that second approach is better because in such case the `api` node for old version of API could be implemented using `adapter` pattern. Which makes it possible to run two versions of `api` nodes at the same time. This architecture makes it possible to instantiate dedicated `api` nodes per user. In such case we can do: - throttle requests on `api` nodes based on the current load of `storage` layer. - place `api` nodes in VPC available to customer and tunnel traffic to storage backend - implement application firewall on `api` node - over time move authentication and authorization modules to `api` node so unauthorized requests do not reach `storage` layer at all The same for `replicator`. We might want to support new versions of replication protocol which is based on modern fast set reconciliation algorithms. We need a way to run two versions of protocol side by side. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ericdai opened a new issue #1339: if will support arm
ericdai opened a new issue #1339: if will support arm URL: https://github.com/apache/couchdb/issues/1339 ## Expected Behavior ## Current Behavior ## Possible Solution ## Steps to Reproduce (for bugs) 1. 2. 3. 4. ## Context ## Your Environment * Version used: * Browser Name and version: * Operating System and version (desktop or mobile): * Link to your project: This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali closed issue #1339: if will support arm linux?
wohali closed issue #1339: if will support arm linux? URL: https://github.com/apache/couchdb/issues/1339 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali commented on issue #68: Provide and publish ppc64le images
wohali commented on issue #68: Provide and publish ppc64le images URL: https://github.com/apache/couchdb-docker/issues/68#issuecomment-391749321 Still blocked by everything stated in my last update. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] abdasgupta commented on issue #68: Provide and publish ppc64le images
abdasgupta commented on issue #68: Provide and publish ppc64le images URL: https://github.com/apache/couchdb-docker/issues/68#issuecomment-391761181 Hi @wohali , Can we work to solve the first problem of the list at first? Can I know what is to be done yet to close the first problem? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali commented on issue #68: Provide and publish ppc64le images
wohali commented on issue #68: Provide and publish ppc64le images URL: https://github.com/apache/couchdb-docker/issues/68#issuecomment-391770967 Start with: If you have access to a ppc64le machine, run `make check` and confirm that all tests pass. If some fail, log them here: https://github.com/apache/couchdb/issues as ppc64le specific failures. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali commented on issue #1339: if will support arm linux?
wohali commented on issue #1339: if will support arm linux? URL: https://github.com/apache/couchdb/issues/1339#issuecomment-391749726 Duplicate of #1103 and #892. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali commented on issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1
wohali commented on issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1 URL: https://github.com/apache/couchdb/issues/1340#issuecomment-391826998 Duplicate of #1293. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali closed issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1
wohali closed issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1 URL: https://github.com/apache/couchdb/issues/1340 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] plcollard opened a new issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1
plcollard opened a new issue #1340: View creation failed on CentOS 7 - CouchDB 2.1.1 URL: https://github.com/apache/couchdb/issues/1340 CouchDB failed to create views on fresh and updated server with CentOS 7. ## Expected Behavior Verification of the setup should work . ## Current Behavior I've first seen the issue in a CentOS 7 server where the packages where updated. I reproduced the error in a fresh server. ## Steps to Reproduce (for bugs) 1. Install CentOS 7 and update it. 2. Setup repo as described in http://docs.couchdb.org/en/latest/install/unix.html#installation-using-the-apache-couchdb-convenience-binary-packages 3. Install couchdb package and run the setup. 4. Launch the verification in the web interface and the problem appears at the "Create view" steps. ## Output of logs : [notice] 2018-05-24T18:05:41.461809Z couchdb@127.0.0.1 <0.1522.0> e3ce237828 10.50.50.130:5984 10.50.50.70 undefined GET /verifytestdb 404 ok 3 [notice] 2018-05-24T18:05:41.464446Z couchdb@127.0.0.1 <0.1521.0> 079947299c 10.50.50.130:5984 10.50.50.70 undefined GET /verifytestdb_replicate 404 ok 5 [notice] 2018-05-24T18:05:41.514311Z couchdb@127.0.0.1 <0.1521.0> f2f1464e89 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb 201 ok 41 [notice] 2018-05-24T18:05:41.537452Z couchdb@127.0.0.1 <0.1522.0> 14d27f1fbf 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb/test_doc_1 201 ok 14 [notice] 2018-05-24T18:05:41.554945Z couchdb@127.0.0.1 <0.1522.0> 3063dde463 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb/test_doc_1 201 ok 9 [notice] 2018-05-24T18:05:41.571887Z couchdb@127.0.0.1 <0.1522.0> 7a159de3e1 10.50.50.130:5984 10.50.50.70 admin DELETE /verifytestdb/test_doc_1?rev=2-d588d3e93ee155c5afffdf0247a2c5ef 200 ok 9 [notice] 2018-05-24T18:05:41.602334Z couchdb@127.0.0.1 <0.1522.0> bf8be929af 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb/test_doc_10 201 ok 21 [notice] 2018-05-24T18:05:41.604973Z couchdb@127.0.0.1 <0.1524.0> 1e62a52beb 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb/test_doc_20 201 ok 21 [notice] 2018-05-24T18:05:41.612475Z couchdb@127.0.0.1 <0.2903.0> f116ca8328 10.50.50.130:5984 10.50.50.70 admin PUT /verifytestdb/test_doc_30 201 ok 29 [info] 2018-05-24T18:05:41.639492Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3043.0> died normal [error] 2018-05-24T18:05:41.639645Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3043.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.660287Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3046.0> died normal [error] 2018-05-24T18:05:41.660387Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3046.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.675095Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3049.0> died normal [error] 2018-05-24T18:05:41.675173Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3049.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.694356Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3052.0> died normal [error] 2018-05-24T18:05:41.694441Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3052.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.708698Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3055.0> died normal [error] 2018-05-24T18:05:41.708790Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3055.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.731796Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3058.0> died normal [error] 2018-05-24T18:05:41.731895Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3058.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.748254Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3077.0> died normal [error] 2018-05-24T18:05:41.748351Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3077.0> :: {os_process_error,{exit_status,1}} [info] 2018-05-24T18:05:41.762309Z couchdb@127.0.0.1 <0.212.0> couch_proc_manager <0.3080.0> died normal [error] 2018-05-24T18:05:41.762387Z couchdb@127.0.0.1 <0.3041.0> OS Process Error <0.3080.0> :: {os_process_error,{exit_status,1}} ... ## Environment * Version used: 2.1.1 (installed from repo) * Operating System: CentOS 7 server * Kernel: 3.10.0-862.3.2.el7.x86_64 If you need more informations let me know and if you have a solution I would be happy to test it. Thanks! This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at:
[GitHub] pzduniak opened a new issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak opened a new issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341 ## Expected Behavior CouchDB should start up with ~100 records in its databases and ~14 views. 2.1.1 in Docker. Doesn't work as both root and couchdb user. ## Current Behavior https://gist.github.com/pzduniak/4d4d9c148ee910bb053d9cfdd1b04216 Indexing is never done. ## Steps to Reproduce (for bugs) We're casually running into it using our Dockerfile. [couchdb.zip](https://github.com/apache/couchdb/files/2036951/couchdb.zip) I honestly have absolutely no idea how to fix it. As you can see in the Dockerfile, timeout values are high. ## Context Our application waits until CouchDB is done starting up (using `/healthcheck.sh`) and then tries to create design documents in its database (`cubefiles`), eventually querying for a user by his username (where everything fails, because indexes can't be built). ## Your Environment Ubuntu 16.04 running Docker 18.03 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489870#comment-16489870 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit 5230cf01d847705171ab28d8219dbef1c2d6f2a6 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=5230cf0 ] [01/N] Clustered Purge: Define new purge API This is the first of a series of commits to implement the new clustered purge API. Currently purge is a single-node only API that allows for removing document revisions (and by extension entire documents) completely from a database. However, given our anti-entropy measures this API is extremely difficult to use in a cluster and requires significant operator intervention. Along with the operator intervention, this API is inherently unsafe with regards to accidentally triggering the rebuild of secondary indices. As such this patch set is aimed at creating a cluster aware API that is both easier to use and less likely to cause application downtime while secondary indices are rebuilt. There are four major areas that will be covered by this patch set: 1. Single node APIs and behavior changes 2. Cluster aware APIs 3. Anti-entropy updates 4. Cluster HTTP implementation This patch set is split up into a series of commits to aid in the review by other commiters that will hopefully allow for a logical and intuitive progression of implementation rather than landing as a single opaque commit covering a huge swath of the code base. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489877#comment-16489877 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit 3bc28506e56be93c4bc4f210968278a8d42e70e2 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=3bc2850 ] [07/N] Clustered Purge: Internal replication This commit implements the internal replication of purge requests. This part of the anit-entropy process is important for ensuring that shard copies continue to be eventually consistent even if updates happen to shards independently due to a network split or other event that prevents the successful purge request to a given copy. The main addition to internal replication is that we both pull and push purge requests between the source and target shards. The push direction is obvious given that internal replication is in the push direction already. Pull isn't quite as obvious but is required so that we don't push an update that was already purged on the target. Of note is that internal replication also has to maintain _local doc checkpoints to prevent compaction removing old purge requests or else shard copies could end up missing purge requests which would prevent the shard copies from ever reaching a consistent state. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489878#comment-16489878 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit 3ef43f885e510ae13c28fe3e9e9d9f1ca6de38cf in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=3ef43f8 ] [08/N] Clustered Purge: Fabric API This commit implements the clustered API for performing purge requests. This change should be a fairly straightforward change for anyone already familiar with the general implementation of a fabric coordinator given that the purge API is fairly simple. TODO: This includes pre-emptive changes for read-repair that need to go into the next commit (and then probably swap this commit to before we implement anti-entropy updates) COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[GitHub] wohali commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
wohali commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391861526 How are you launching your container? What is your host's CPU/RAM/disk setup? I don't have time to look at your database, but assuming they're straightforward views, you probably don't have enough CPUs allocated. See #1301 for instance. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali closed issue #1341: CouchDB degrades and starts timeouting on all index operations
wohali closed issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489880#comment-16489880 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit d4afc1440660ffb7d994432787bc0ce333afb2fd in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=d4afc14 ] [10/N] Clustered Purge: Clustered HTTP API The HTTP API for clustered purge is fairly straightforward. It is designed to match the general shape of the single node API. The only major caveat here is that the purge sequence is now hardcoded as null since the purge sequence would now otherwise be an opaque blob similar to the update_seq blobs. Its important to note that there is as yet no API invented for traversing the history of purge requests in any shape or form as that would mostly invalidate the entire purpose of using purge to remove any trace of a document from a database at the HTTP level. Although there will still be traces in individual shard files until all database components have processed the purge and compaction has run (while allowing for up to purge_infos_limit requests to remain available in perpetuity). COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489871#comment-16489871 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit f822cdd3e087e41c93c577f1c1fa217fd0dbe7e6 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=f822cdd ] [02/N] Clustered Purge: Update single node APIs This patch updates the single node API implementations for use with the new clustered purge API. At the single node level the major change is to store a history of purge requests that can then be consumed by various other parts of the database system. The simpler of the major areas to use this new functionality will be any secondary indices. Rather than checking that only a single purge request has occurred each secondary index will store a _local document referencing its oldest processed purge request. During index updates each secondary index implementation will process any new purge requests and update its local doc checkpoint. In this way secondary indexes will no longer be sensitive to reset when multiple purge requests are issued against the database. The two other major areas that will make use of the newly stored purge request history are both of the anit-entropy mechanisms: read-repair and internal replication. Read-repair will use the purge request history to know when a node should discard updates that have come from a node that has not yet processed a purge request during internal replication. Otherwise read-repair would effectively undo any purge replication that happened "recently". Internal replication will use the purge request history to be able to mend any differences between shards. For instance, if a shard is down when a purge request is issue against a cluster this process will pull the purge request and apply it during internal replication. And similarly any local purge requests will be applied on the target before normal internal replication. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489872#comment-16489872 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit f72396a8e4bf8496f1ec8206fa780a9a379a41a3 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=f72396a ] [03/N] Clustered Purge: Update couch_bt_engine This commit updates the couch_bt_engine storage engine implementation to satisfy the newly defined single-node purge APIs. This is accomplished by storing two new database btrees. The purge_seq_tree orders purge requests by their purge_seq. This tree is used to satisfy the fold_purge_infos API for database components to enumerate the list of purge requests in a defined order. The second index is the purge_tree which orders purge requests by their UUID to make for an efficient lookup when filtering replicated purge requests. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489875#comment-16489875 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit b28e5749aba28d1f97129d9bc8698532750c59ec in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=b28e574 ] [06/N] Clustered Purge: Update mrview indexes This commit updates the mrview secondary index to properly process the new history of purge requests as well as to store the _local purge checkpoint doc. The importance of the _local checkpoint doc is to ensure that compaction of a database does not remove any purge requests that have not yet been processed by this secondary index. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489873#comment-16489873 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit b1a68831610487c212ca730a86209753af625e57 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=b1a6883 ] [04/N] Clustered Purge: Update eunit tests This commit updates all of the various existing eunit tests to work with the new single node purge APIs. TODO: Split this into two commits: new tests and updated tests COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489874#comment-16489874 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit 1ab1665c0a572993a2c432aab3f29a1ed353fb26 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=1ab1665 ] [05/N] Clustered Purge: EPI Hook for compaction Blah. This probably needs to go into a pr3.5 as its own change. Also it shouldn't be implemented in couch_bt_engine_compactor... COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge
[ https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489879#comment-16489879 ] ASF subversion and git services commented on COUCHDB-3326: -- Commit d1400d775d713a0a5e7056c15f7246dd7289f654 in couchdb's branch refs/heads/COUCHDB-3326-clustered-purge-pr4-implementation from [~paul.joseph.davis] [ https://gitbox.apache.org/repos/asf?p=couchdb.git;h=d1400d7 ] [09/N] Clustered Purge: Update read-repair Read-repair needs to know which nodes have requested an update to a local doc so that it can determine if the update is applied. The basic idea here is that we may have gotten an update from a remote node that has yet to apply a purge request. If the local node were to apply this update it would effectively undo a succesful purge request. COUCHDB-3326 Co-authored-by: Mayya SharipovaCo-authored-by: jiangphcn > Implement clustered purge API: _purge > - > > Key: COUCHDB-3326 > URL: https://issues.apache.org/jira/browse/COUCHDB-3326 > Project: CouchDB > Issue Type: New Feature > Components: Database Core, Documentation, HTTP Interface >Reporter: Mayya Sharipova >Priority: Major > > This implements the clustered purge API: > {code:} > curl -H 'Content-Type: application/json' -X POST > "http://adm:pass@127.0.0.1:5984/test1/_purge; -d > '{"d1":["3-410e46c04b51b4c3304ed232790a49da", > "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"], > "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}' > {code} > Response: status_code 201 or 202 > {code:javascript} > { > "purged": [ > { > "ok": true, //Quorum was reached, at least W nodes > successfully purged doc > "id": "d1", > "revs": [ > "3-410e46c04b51b4c3304ed232790a49da", >"3-420e46c04b51b4c3304ed232790a35db" > ] > }, > { > "accepted": true, //Quorum was NOT reached, but request was > accepted > "id": "d2", > "revs": [ > "2-a39d6d63f29a956ae39930f84dd71ec3" > ] > }, > { > "ok": true, > "id": "d3", > "revs": []//(DocId or Revs missing) OR (Revs are not leaf > revisions) > } ], > "purge_seq": > "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl" > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[GitHub] pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-39103 Let me rephrase: the database doesn't start at all. The view functionality is dead. This should not happen. This is some obscure bug with Erlang failing to startup and I have not modified the scripts in the container enough to warrant any suspicion that it could happen in my code. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391889983 Alright, what the hell, if CouchDB can't even start on a single core (it worked just fine on 1.x), then why is this behavior accepted. Is there absolutely no way to increase the timeouts on the initial handshake or whatever? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] wohali commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
wohali commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391900971 @pzduniak I'll remind you we have a [Code of Conduct](https://couchdb.apache.org/conduct.html) at this project. Please choose your words a bit more carefully. You're also getting all of this support for free. We are a volunteer-run project here. /cc @janl "The database doesn't start at all" vs. "the view functionality is dead" are two different complaints. If you are able to `GET /` and get a response back, CouchDB is running. CouchDB runs inside of Erlang. The JavaScript view functionality is provided by 1 or more additional, forked, external `couchjs` processes. When CouchDB is busy, Erlang will gladly eat an entire core, meaning you may need to provide an additional core for `couchjs`. Further, in 2.x, the default is to split each database into 8 shards on disk. CouchDB 2.x forks a separate `couchjs` process for each of these shards, meaning your Docker container is running 8 additional, separate processes _per design document_ to build those views. More databases and more design documents mean multiplicatively more external `couchjs` processes. There are ways to alter [how many processes can run simultaneously](http://docs.couchdb.org/en/latest/config/query-servers.html#query_server_config/limit), and ways to [adjust the number of shards for each newly created database](http://docs.couchdb.org/en/latest/api/database/common.html?highlight=shards#put--db) as well as a [global default for newly created databases](http://docs.couchdb.org/en/latest/config/cluster.html#cluster-options). You may also wish to pipeline your view builds at startup so that not all of the views are attempted to be built at once (by querying them one at a time). Finally, if you simply want to wait longer, you can increase the [os process timeout](http://docs.couchdb.org/en/latest/config/couchdb.html?highlight=os_process_timeout#couchdb/os_process_timeout), and have your startup script try multiple times to `GET` the results of a view before it gives up. If you're looking to reduce CPU requirements, look into whether or not you can replace your views with declarative Mango secondary indexes. With the addition of [Mango-powered secondary indexes](http://docs.couchdb.org/en/latest/api/database/find.html) to CouchDB, JS views are becoming less necessary. As Mango runs inside of the Erlang process, it shares CPU with the main process more reasonably. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391888317 >How are you launching your container? Default Docker image params + my small script, basically the couchdb-docker repo. >What is your host's CPU/RAM/disk setup? Google Cloud, 1 vCPU, 3.75GB of RAM, their standard 300GB disk >you probably don't have enough CPUs allocated. Are you seriously suggesting that it should take more than 4 minutes to generate views for 15 rows? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391888317 >How are you launching your container? Default Docker image params + my small script, basically the couchdb-docker repo. >What is your host's CPU/RAM/disk setup? Google Cloud, 1 vCPU, 3.75GB of RAM, their standard 300GB disk >you probably don't have enough CPUs allocated. Are you seriously suggesting that it should take more than 4 minutes to generate views for 15 rows? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations
pzduniak commented on issue #1341: CouchDB degrades and starts timeouting on all index operations URL: https://github.com/apache/couchdb/issues/1341#issuecomment-391945581 Thank you, limiting the process count seems to work. But: 1) What's up with the sudden CoC mention? Are we supposed to be G-rated? Or did you think that some message was a personal attack? I just don't get it. I expressed my shock at how CouchDB has diverted from its roots. The same project that my colleague used on Raspberry Pis on farms in Africa suddenly started choking on relatively powerful hardware when it has like 10 views on barely any data, who would've thought? Maybe if 2.x breaks so easily, a dynamic default should be used for the process limit, probably one scaling with the CPU count? For example, Go doesn't spawn "up to 100 processes" when it starts up a hello world app. 2) There were no docs to assist me. A guy on IRC had to tell me about the existence of something called "fabric" (that I still don't know what it is, I only know that it has a setting that I had to increase), which is nearly unmentioned in the docs (I only found some references in the changelog). Additionally, I feel like there should be a huge disclaimer that says "the software might break if you run it on perfectly fine 2 server cores, please change the following settings to prevent it" somewhere in the docs. 3) Additionally, it feels like my issue was discarded nearly immediately without anyone looking into the actual configuration. Out of 3 interlinked issues, 1 was someone starving the database on purpose (50MB of RAM, come on), 1 person with a non-insignificant amount of data and 1 person dealing with different behaviour (degradation vs startup issue). Most of the timeouts that you've suggested were already in place. I still believe that what I reported _is_ a valid issue. CouchDB somehow manages to break its startup process by spawning tens of compute-hungry processes, even if only 1-2 cores are available. Is 2.x only supposed to be run on beefy servers now? A product that I'm working on (where I was forced to use CouchDB to in fact limit resource usage) started out with 1.x running on mobile servers (think notebook CPUs in small boxes) that are used to deliver educational content to students in developing countries. It would be a shame if I had to rewrite the database interaction layer just because it's impossible to both use modern features of CouchDB and have any reliability on slower hardware. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services