| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| | |
Apparently SpiderMonkey 60 changed the behavior of OOM errors to not
exit the VM. This updates the SpiderMonkey 60 implementation to match
that behavior.
|
| |
| |
| |
| |
| | |
This test is actually checking the behvior of an OOM in `couchjs` now
since we lifted the OS process timeout limit.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |\
| | |
| | | |
Bring IOQ in tree
|
| | |
| | |
| | |
| | |
| | | |
The hqueue dependency is only needed for experimental IOQ2 functionality
that is not included in the codebase we're bringing into the mainline.
|
| | | |
|
| | |\
| |/ /
| | |
| | |
| | |
| | | |
git-subtree-dir: src/ioq
git-subtree-mainline: c8a5757c33c8f782d935fce2f804cb745bf77b4a
git-subtree-split: e641a740978447f0b29785580e46d2e30e822001
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |\
| | | |
| | | |
| | | | |
Fixes #6
|
| | |/ |
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | | |
This closes #5
Signed-off-by: Eric Avdey <eiri@eiri.ca>
|
| | |/
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | | |
This closes #4
Signed-off-by: ILYA Khlopotov <iilyak@ca.ibm.com>
|
| | | |
| | | |
| | | |
| | | | |
COUCHDB-3102
|
| | |/
| | |
| | |
| | | |
COUCHDB-3102
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | | |
This closes #3
COUCHDB-2561
|
| | | |
| | | |
| | | |
| | | | |
COUCHDB-2561
|
| | |/
| | |
| | |
| | | |
COUCHDB-2561
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |
| |
| |
| |
| | |
This is substantively the work from branch 1775-feature-io-regulator
but with erlang application paraphenalia.
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
* fix: avoid segfaults, patch by @davisp
* fix: build against sm60 on mac needs extra compiler flags
|
| |
| |
| | |
Closes #1567
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Even when disabled these logs can take a non-trivial amount of
reductions which can add extra suspensions to couch_server's main loop.
|
| |
| |
| |
| |
| | |
Its not uncommon to have file_server_2 behaving poorly so we'll avoid it
when there are calls that are made often.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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>
|
| |
| |
| |
| |
| |
| |
| | |
* restore tests removed in 0a85b75ee150
* disable autoupdate when testing for stale indexes
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|