summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into jenkins-pr-jenkinsfilejenkins-pr-jenkinsfileJoan Touzet2020-01-0717-9/+352
|\
| * 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.
* | Merge branch 'master' into jenkins-pr-jenkinsfileAdam Kocoloski2020-01-061-1/+1
|\ \ | |/
| * bump hqueue dep for Windows buildJoan Touzet2020-01-061-1/+1
| |
* | Merge branch 'master' into jenkins-pr-jenkinsfileJoan Touzet2020-01-0622-121/+487
|\ \ | |/
| * 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.
| * Avoid file_server_2 for existance testsPaul J. Davis2020-01-051-2/+11
| | | | | | | | | | Its not uncommon to have file_server_2 behaving poorly so we'll avoid it when there are calls that are made often.
| * Simplfiy interleaved message couch_server testPaul J. Davis2020-01-051-33/+17
| | | | | | | | | | | | | | Previous this test relied on delete/open requests getting things into a confused state. Now that we understand the issue we can replace the more complicated logic by directly polutnig couch_server's message queue with invalid messages.
| * Feat/1752/setup UUID and auth secret (#2398)Jan Lehnardt2020-01-052-3/+26
| | | | | | | | | | | | | | | | * reafactor: generalise sync_admin to sync_config * feat: sync cluster UUID and http auth secret on setup Closes #1752
| * a systemd-journald compatible log output on stderr (#1912)Дамјан Георгиевски2020-01-052-4/+82
| | | | | | | | | | | | | | | | | | | | * a systemd-journald compatible log output on stderr based on the stderr logger but changed: - doesn't output the timestamp, the journal already has a timestamp - output the log level as <num> where num is defined as in `sd-daemon(3)` https://www.freedesktop.org/software/systemd/man/sd-daemon.html
| * Fix/1977 (#2296)Grzegorz Abramczyk2020-01-055-1/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added db initialization for standalone instance * Test setup * Updated readme * Added standalone option to rel/overlay/etc/default.ini * Simplified test setup * s/standalone/single_node/ Co-authored-by: Jan Lehnardt <jan@apache.org>
| * feat: add metric counter for unindexed mango queries. Closes #1913 (#2390)Jan Lehnardt2020-01-052-0/+5
| |
| * Lock shard splitting targets during the initial copy phaseNick Vatamaniuc2020-01-055-8/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the initial copy phase target shards are opened outside the couch_server. Previously, it was possible to manually (via remsh for instance) open the same targets via the couch_server by using the `couch_db:open/2` API for example. That could lead to corruption as there would be two writers for the same DB file. In order to prevent such a scenario, introduce a mechanism for the shard splitter to lock the target shards such that any regular open call would fail during the initial copy phase. The locking mechanism is generic and would allow local locking of shards for possibly other reasons in the future as well.
* | Merge branch 'master' into jenkins-pr-jenkinsfileJoan Touzet2020-01-0480-153/+1478
|\ \ | |/
| * Blacklist all 21.x releases older than 21.2.3 (#2056)Paul J. Davis2020-01-041-1/+1
| | | | | | | | | | | | | | | | This basically just extends the black list to cover the `21.{0,1}` release range. This is due to a compiler bug [1] which is a duplicate of [2]. [1] https://bugs.erlang.org/browse/ERL-981 [2] https://bugs.erlang.org/browse/ERL-807
| * Feature/user db security obj readonly (#2395)Jan Lehnardt2020-01-044-5/+53
| | | | | | | | | | | | | | | | | | | | | | | | * Allow to set the user db security object to readonly - Add the default config - Deny update on _security if the database is the user db and if the config is to false - Add unit test * Allow edits on _users security for the JS test Co-authored-by: Alexis Côté <popojargo@users.noreply.github.com>
| * removed useless configfile section (#1967)Alessandro Ogier2020-01-040-0/+0
| |
| * Multi/elixir 3 (#2394)Jan Lehnardt2020-01-0463-67/+1142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add auth cache test into elixir test suite * Port cookie_auth test suite into elixir * Remove conflicting functions * remove debug log level config * Port users_db from js test suite to elixir * WIP: make test more robust * WIP: increase default timeout, revert to fail when login error * Auth cache test fixes * Cookie auth test fixes * Cookie auth test fixes * Correct test name * Correct test name * Disable all JS tests that have Elixir test counterparts. * Convert test setup/teardown logic into idiomatic ExUnit and use @moduletag config * Disable auth_cache_test * auth cache test is disabled * Update elixir test suite README.md with missing ported stuff * Port UTF8 js test suite to elixir * fix: losen assertion * disable more JS tests Co-authored-by: Juanjo Rodriguez <jjrodrig@gmail.com> Co-authored-by: Alessio Biancalana <dottorblaster@gmail.com>
| * Autoupdate false test (#2311)Robert Newson2020-01-042-2/+33
| | | | | | | | | | | | | | * restore tests removed in 0a85b75ee150 * disable autoupdate when testing for stale indexes
| * Fixes #2151 - start CouchDB from symlinks (#2152)Ronny2020-01-042-2/+22
| |
| * Port erlang views tests into elixir test suite (#2237)Juanjo Rodriguez2020-01-044-3/+120
| | | | | | | | | | | | | | | | | | * Port erlang views tests into elixir test suite * Enable erlang views in elixir testing * Support nil or :null in response
| * Fix some typos in the bug report issue template (#2233)Bessenyei Balázs Donát2020-01-041-4/+4
| | | | | | | | * Fix some typos in the bug report issue template