summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into fix/2143/override-query-server-configfix/2143/override-query-server-configJoan Touzet2020-01-082-3/+5
|\
| * Debug design_docs.js failurePaul J. Davis2020-01-081-2/+4
| | | | | | | | | | This test has been failing randomly on Jenkins across multiple PRs. This adds more context to the error that causes the test to fail.
| * Log the exit code of couchjsPaul J. Davis2020-01-081-1/+1
| | | | | | | | | | | | Recently we've been seeing the `couchjs` test runner exiting without displaying a traceback of an error. This logs the exit code of the OS process to see if that gives any insight into why its exiting.
* | Merge branch 'master' into fix/2143/override-query-server-configJoan Touzet2020-01-084-58/+46
|\ \ | |/
| * Fix missing mango execution stats (part 2)Will Holley2020-01-082-52/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation of Mango execution stats relied on passing the docs_examined count from each shard to the coordinator in the view_row record. This failed to collect the count of documents read which weren't followed by a match (in a given shard). For example, if an index was scanned but no documents were matched, the docs_examined would be 0, when it should be equal to the number of documents in the index. This commit changes the implementation so that docs examined is passed only when each shard has completed its index scan. The work is split into 2 commits to support mixed-version cluster upgrades - the previous commit adds the message handlers only so can be safely rolled out without breaking in-flight requests.
| * Fix missing mango execution stats (part 1)Will Holley2020-01-083-6/+23
| | | | | | | | | | Adds message handlers to mango / all_docs / mrview fabric to recieve an execution_stats message.
* | Remove incorrect quotation marks from couchdb.cmd.inJoan Touzet2020-01-081-3/+3
| |
* | Merge branch 'master' into fix/2143/override-query-server-configJoan Touzet2020-01-0812-677/+52
|\ \ | |/
| * Jenkins: update binary platform matrix (#2422)Joan Touzet2020-01-081-4/+7
| | | | | | | | This PR drops Debian jessie, adds Debian buster, and adds CentOS 8 to the binary platform build matrix on master.
| * Uncomment COUCHDB_FAUXTON_DOCROOT for couchdb.cmd (#2416)Joan Touzet2020-01-071-1/+1
| | | | | | Fixes #2404
| * Halt on no admin to avoid crash dump (#2417)Joan Touzet2020-01-071-1/+1
| |
| * Bypass authentication check for /_up (#2411)Jan Lehnardt2020-01-072-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add config variable chttpd.require_valid_user_except_for_up defaulting to false. This will allow various automated health check systems to hit /_up without having to provide a username/password pair when the chttpd.require_valid_user config setting is true. Apparently, many of these health check providers do not even allow supplying creds for such a purpose... Closes #823 Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
| * Make the rexi:stream2 interface unacked message limit configurable (#2360)Kyle Snavely2020-01-072-2/+4
| | | | | | | | | | | | | | | | Also lower the default stream_limit to 5 based on the results of performance testing. Co-authored-by: Adam Kocoloski <kocolosk@apache.org> Co-authored-by: Kyle Snavely <kjsnavely@gmail.com>
| * Remove unused batching code from replicator (#2419)Nick Vatamaniuc2020-01-071-33/+9
| | | | | | | | | | | | The `batch_doc(Doc)` code was previously used for local endpoints when flushing docs with attachments. After that code was removed, the `remote_doc_handler/2` filters out all docs with attachments before they even get to the doc flusher so batch_doc(Doc) effectively is always returns `true`.
| * feat: remove couchup (#2399)Jan Lehnardt2020-01-073-617/+4
| | | | | | | | Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
| * Set the session correctlyPaul J. Davis2020-01-071-17/+8
| | | | | | | | | | | | Adam K noticed that we aren't setting the session cookie correctly which appears to have made this test fail randomly. Why its random and not consistent is currently unknown.
| * Jenkins: Use 'docker' label for dockerised builds (#2418)Joan Touzet2020-01-072-1/+12
| |
* | Merge branch 'master' into fix/2143/override-query-server-configJoan Touzet2020-01-07111-398/+2641
|\ \ | |/
| * Rework CI setup (#2367)Joan Touzet2020-01-075-188/+431
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit: * Removes Travis CI from the build (no more .travis.yml) * Moves Jenkinsfile to `build-aux/Jenkinsfile.full` and updates the version of Erlang used in all steps to `20.3.8.24-1` (Erlang Solutions packages). * Introduces a new `build-aux/Jenkinsfile.pr` that just builds CouchDB against the 3 most important versions of Erlang, intended for use when building PRs, using a special `debian-buster-erlang-all` image that has `kerl` builds of those 3 versions of Erlang: * the oldest supported * the version we release our binary convenience builds with * the latest supported * Builds against SpiderMonkey 60 on the platforms where it is available (currently, only Debian buster) * Updated README file with new, dynamic Jenkins embeddable build status badge
| * Match the OOM beahvior of 1.8.5Paul J. Davis2020-01-064-0/+55
| | | | | | | | | | | | Apparently SpiderMonkey 60 changed the behavior of OOM errors to not exit the VM. This updates the SpiderMonkey 60 implementation to match that behavior.
| * Remove allowance for unnamed_errorPaul J. Davis2020-01-061-1/+1
| | | | | | | | | | This test is actually checking the behvior of an OOM in `couchjs` now since we lifted the OS process timeout limit.
| * Set `couchTests.elixir = true` to skip ported testsPaul J. Davis2020-01-064-4/+4
| | | | | | | | | | | | This avoids the 1.2s pause between tests to save time during the test suite. All ported tests are also logged to measure our progress porting the JS test suite.
| * Merge pull request #2408 from apache/ioq-in-treeAdam Kocoloski2020-01-068-4/+292
| |\ | | | | | | Bring IOQ in tree
| | * Remove ioq/hqueue dependencies, add ioq as subdirAdam Kocoloski2020-01-062-4/+1
| | | | | | | | | | | | | | | The hqueue dependency is only needed for experimental IOQ2 functionality that is not included in the codebase we're bringing into the mainline.
| | * Configure IOQ defaultsAdam Kocoloski2020-01-061-0/+34
| | |
| | * Add 'src/ioq/' from commit 'e641a740978447f0b29785580e46d2e30e822001'Adam Kocoloski2020-01-065-0/+257
| | |\ | |/ / | | | | | | | | | | | | git-subtree-dir: src/ioq git-subtree-mainline: c8a5757c33c8f782d935fce2f804cb745bf77b4a git-subtree-split: e641a740978447f0b29785580e46d2e30e822001
| | * Enable users to bypass IOQ for certain IO classesAdam Kocoloski2020-01-061-9/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows an administrator to configure a "bypass" which will cause a particular class of IO to be submitted directly to the file descriptor or OS process instead of going through the IO queueing mechanism. Installing a bypass can result in higher throughput and lower latency, at the expense of less control over the stability of the system. A bypass is configured via the `ioq.priority` configuration block: [ioq.bypass] read = true write = true compaction = false This configuration will cause user-submitted read IO to be submitted directly. At this time the following classes are available: - os_process - read - write - view_update - shard_sync - compaction This also expands the "compaction" queue to be a general-purpose "background" queue that handles IO for both compaction and internal replication (aka shard_sync). The other four classes are handled by the "interactive" queue. As before, the [ioq] ratio setting determines the likelihood that background IO will be selected ahead of interactive IO when both queues are non-empty.
| | * Merge branch 'use-couch-rand-module'Nick Vatamaniuc2017-10-051-1/+1
| | |\ | | | | | | | | | | | | Fixes #6
| | | * Use couch_rand compatibility moduleNick Vatamaniuc2017-10-051-1/+1
| | |/
| | * Merge remote branch 'cloudant:remove-unused-config-subscriber'Eric Avdey2016-10-041-22/+1
| | |\ | | | | | | | | | | | | | | | | | | | | This closes #5 Signed-off-by: Eric Avdey <eiri@eiri.ca>
| | | * Remove unused codeEric Avdey2016-10-031-22/+1
| | |/ | | | | | | | | | | | | | | | We are subscribing both ioq and ioq_sup to config_event, but while ioq is actually processing config changes, ioq_sup just sends uncatched messages to unexisting ioq_server.
| | * Merge remote branch 'cloudant:3102-fix-config_subscription'ILYA Khlopotov2016-08-232-8/+31
| | |\ | | | | | | | | | | | | | | | | | | | | This closes #4 Signed-off-by: ILYA Khlopotov <iilyak@ca.ibm.com>
| | | * Fix a typo in a child nameILYA Khlopotov2016-08-231-1/+1
| | | | | | | | | | | | | | | | COUCHDB-3102
| | | * Update handle_config_terminate APIILYA Khlopotov2016-08-232-8/+31
| | |/ | | | | | | | | | COUCHDB-3102
| | * Merge remote-tracking branch 'iilyak/2561-make-config-API-consistent'Alexander Shorin2015-02-041-7/+9
| | |\ | | | | | | | | | | | | | | | | | | | | This closes #3 COUCHDB-2561
| | | * Don't restart event handler on terminationILYA Khlopotov2015-01-301-0/+1
| | | | | | | | | | | | | | | | COUCHDB-2561
| | | * Update config_listener behaviuorILYA Khlopotov2015-01-301-7/+8
| | |/ | | | | | | | | | COUCHDB-2561
| | * Handle {gen_event_EXIT,{config_listener,ioq},shutdown} messageAlexander Shorin2015-01-131-2/+6
| | |
| | * Allow to customize concurrency valueAlexander Shorin2014-10-131-2/+3
| | |
| | * Update state on config changesAlexander Shorin2014-10-131-1/+17
| | |
| | * Fallback to direct I/O if ioq is not runningRobert Newson2014-09-051-1/+6
| | |
| | * new IOQ apiRobert Newson2014-09-011-5/+7
| | |
| | * Initial commitRobert Newson2014-07-175-0/+194
| | | | | | | | | | This is substantively the work from branch 1775-feature-io-regulator but with erlang application paraphenalia.
| * bump hqueue dep for Windows buildJoan Touzet2020-01-061-1/+1
| |
| * Fix SM60 build on Mac (#2401)Jan Lehnardt2020-01-062-3/+5
| | | | | | | | | | | | * fix: avoid segfaults, patch by @davisp * fix: build against sm60 on mac needs extra compiler flags
| * feat: add read-only _metrics role for _stats and _system endpoints (#2392)Jan Lehnardt2020-01-062-5/+21
| | | | | | Closes #1567
| * Set a high priority on couch_serverPaul J. Davis2020-01-053-0/+17
| | | | | | | | | | | | | | | | | | | | In a VM with lots of processes couch_server can end up slowing down purely to not being scheduled which in turn will cause its message queue to backup. We've attempted this before but due to message passing have never seen it have a significant effect. However, now that we're actively avoiding synchronous message passing inside the man loop this has a significant effect by being able to process messages as soon as it has one in its mailbox.
| * Move more work out of couch_server's main loopPaul J. Davis2020-01-051-59/+92
| | | | | | | | | | | | | | This moves the database name check and engine lookup into the open_async process. There's no reason that this work had to happen in the main loop so we can easily move the regex and engine lookups out of the loop to minimize the work per handle_call even further.
| * Track db open times in the async_open pidPaul J. Davis2020-01-051-14/+19
| | | | | | | | | | We can track the open latencies from the async_open process so that couch_server does not have to perform the update in its main loop.
| * Reduce logging calls in couch_serverPaul J. Davis2020-01-051-4/+15
| | | | | | | | | | Even when disabled these logs can take a non-trivial amount of reductions which can add extra suspensions to couch_server's main loop.