| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| | |
Add "Dreyfus" (Erlang side of Search) to CouchDB
|
| |\
| |/
|/| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
The clouseau_rpc:version() call actually takes a few milliseconds to
complete, so instead we first check for a hidden clouseau node already
connected to our node. If we don't find it, we do the version() RPC.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we had been using module_loaded(dreyfus_index) as a check
for the presence of the Search system. There are two issues with this
approach going forward:
1. Dreyfus is going to be included in every build
2. An Erlang release loads modules lazily and so this check could
accidentally fail even on a Search-enabled system.
This patch changes the check to one that makes an RPC request
to the Clouseau (Java) subsystem. This should be a low-cost operation,
but I haven't benchmarked it.
|
| |\
| |/
|/| |
|
| |
| |
| |
| |
| | |
Before shard splitting it was possible to replicate shards even if they were
not in the shard map. This commit brings back that behavior.
|
| | |
|
| | |
|
| | |
|
| |\
|/ /
| |
| |
| |
| | |
git-subtree-dir: src/dreyfus
git-subtree-mainline: 57bf82e5cc3c3ab55ad6c3e46ea2c666ac2711cc
git-subtree-split: 80e3cd8111bda643686d9165ea6afa99d0d33cd4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a lazy workaround to address a tricky interdependency in the
application startup order. Dreyfus depends on the config application,
but the plugin engine makes a call to dreyfus_config:data(), which
relies on the config app, before the dreyfus app -- or the config app --
is started. The couch_epi module does not add a dependency on config so
if couch_epi happens to start before config the whole VM can crash.
The dreyfus_epi module configures the plugin interface to re-load the
configuration data once a second, so ignoring the failure on startup
only leaves a window of up to one second where any custom blacklist
configuration for the dreyfus app is not loaded.
|
| |\
| | |
| | | |
adjust metric for io_queue-search
|
| |/ |
|
| |\
| | |
| | | |
Use dedicated search IOQ channel for
|
| | | |
|
| |/ |
|
| |\
| | |
| | | |
add stats for search
|
| |/ |
|
| |\
| | |
| | |
| | |
| | | |
cloudant-labs/avoid-dreyfus-index-manager-for-disk-size
Avoid dreyfus_index_manager for _search_disk_size.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, all use of the _search_disk_size endpoint was serialised
through gen_server calls in dreyfus_index_manager. However, the code
executed in response to the public interface function used no state from
the server, relying only on the passed arguments. Under load, this
resulted in dreyfus_index_manager accumulating a long message queue,
with the usual negative side effects.
|
| |\
| | |
| | | |
Always send a binary when calling clouseau_rpc:delete
|
| |/
| |
| |
| | |
BugzID: 116712
|
| |
| |
| |
| | |
JsonBody was already a tuple list so putting in brackets made it
a nested list which function claused on {K,V}. This fixes that
|
| | |
|
| |\
| | |
| | | |
Partition improvements
|
| |/
| |
| |
| |
| |
| |
| |
| | |
If a user specifies different values for `partition` parameters in the
query string or request body the behavior can be surprising on which one
ends up being used. This change provides the user with an error that
indicates the condition rather than leaving the user to figure out why
queries are returning unexpected data.
|
| |\
| | |
| | | |
Fix search with limit using POST method
|
| |/ |
|
| |\
| | |
| | | |
Implement partitioned queries
|
| | |
| | |
| | |
| | | |
Issue #44
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Co-authored-by: Garren Smith <garren.smith@gmail.com>
Co-authored-by: Peng Hui Jiang <jiangph@cn.ibm.com>
|
| |/
| |
| |
| | |
Co-authored-by: Garren Smith <garren.smith@gmail.com>
|
| |\
| | |
| | | |
Fix function_clause caused by malformed accumulator
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In a previous commit we added another item to the accumulator used by
load_docs. Unfortunately one clause was not modified so we send the
original 6-tuple, which then fails to match the function and crashes.
This affects searches of busy indexes, the user gets a function_clause
erorr instead of search results. It does not appear to prevent index
commits, though.
BugzID: 114420
|
| |\
| | |
| | | |
Avoid calls to `fabric:design_docs/1`
|
| |/ |
|
| |\
| | |
| | | |
use updated_on instead of timestamp_utc in local purge doc
|
| |/
| |
| |
| | |
COUCHDB-3326
|
| |\
| | |
| | | |
Couchdb 3326 clustered purge
|
| |/
| |
| |
| | |
COUCHDB-3326
|
| |\
| | |
| | | |
Improve search blacklist
|
| |/
| |
| |
| |
| |
| |
| | |
- add additional check in dreyfus_fabric_search:go clause, and
the same for dreyfus_fabric_info, dreyfus_fabric_group, etc
Bugzid: 109229
|
| |
| |
| |
| | |
BugzId:109264
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We add the ability to black list search indexes. The implementation requires
couch_epi that generates a dynamic module to check for configuration values.
A new config section, dreyfus_blacklist is added. Each key in the section will
be of the form "<db>.<groupid>. <indexname>". Setting this value, either via
remsh or via the _node/<node>/_config endpoint, to "true", will disable the index.
Search requests will throw a 400 error, and indexing will not start. Index processes
that have already begun will be allowed to finish.
|
| |\
| | |
| | | |
Update to use pluggable storage engine APIs
|