| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- provide downgrade functionality in case there is need to downgrade
database which was modified by builds with clustered purge feature.
After database is modified by builds with clustered purge feature,
the disk version is bumped to 7. Also, there are two newly introduced
trees: PurgeTreeState and PurgeSeqTreeState.
Once downgrade function is called, the disk version is back to the
latest version of current build. Also, purge_seq and purged_docs
are re-introduced again.
COUCHDB-3226
Add test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`#leaf.atts` data structure is a `[{Position, AttachmentLength}, ...]` proplist
which keeps track of attachment lengths and it is used when calculating
external data size of documents. `Position` is supposed to uniquely identify an
attachment in a file stream. Initially it was just an integer file offset. Then,
after some refactoring work it became a list of `{Position, Size}` tuples.
During the PSE work streams were abstracted such that each engine can supply
its own stream implementation. The position in the stream then became a tuple
that looks like `{couch_bt_engine_stream,{<0.1922.0>,[{4267,21}]}}`. This was
written to the file the `#leaf.atts` data structure. While still correct, it is
unnecessarily verbose wasting around 100 bytes per attachment, per leaf.
To fix it use the disk serialized version of the stream position as returned
from `couch_stream:to_disk_term`. In case of the default CouchDB engine
implementation, this should avoid writing the module name and the pid value for
each attachment entry.
|
|\
| |
| | |
Expose document update errors to client
|
|/
|
|
|
|
|
|
|
| |
Currently, errors resulting from race conditions during document updates
don't get handled correctly, result in a case error, and sending a 500
to the client.
This change instead allows errors, which occur in the race to sync
a doc update across the cluster, to be exposed to the client.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If _session response is 401 and WWW-Authentication header is set assume
endpoint has require_valid_user set. Remember that in the state and
retry to reinitialize again. If it succeeds, keep sending basic auth
creds with every subsequent _session request.
Since session uses the replicator worker pool, it needs to handle worker
cleanup properly just like couch_replicator_httpc module does. If response
headers indicate the connection will be closed, don't recycle it back to the
pool, otherwise during an immediate retry there will be a connection_closing
error, instead follow what the server indicated and stop the worker then
release it to the pool. The pool already knows how to handle dead worker
processes. This is needed with this commit, because we now have a pattern of an
immediate retry after an auth failure.
Fixes #1550
|
|\
| |
| | |
Ensure we only receive the correct DOWN message
|
|/
|
|
| |
relates to issue #1544.
|
|
|
|
|
|
|
|
|
|
| |
This moves the Mango selector matching down to the shard level.
this would mean that the document is retrieved from the index and
matched against the selector before being sent to the coordinator node.
This reduces the network traffic for a mango query
Co-authored-by: Paul J. Davis <paul.joseph.davis@gmail.com>
Co-authored-by: Garren Smith <garren.smith@gmail.com>
|
|
|
|
|
|
|
| |
Add a ping message to rexi to avoid any long running operations from
timing out. Long running operations at the node level can exceed the
fabric timeout and be cancelled. Sending a ping message back will
stop that from happening.
|
|\
| |
| | |
Support callback module data provider
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
Fixes #1409
|
| |
|
|
|
|
| |
Fixes issue #1028
|
|\
| |
| | |
Fix _stats reducer when map function emits array
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Sometimes it is hard to guess what went wrong when application
started via `test_util:start_applications` or `test_util:start_couch`
is unable to start. Since the traceback was truncated.
This change would print the reason in addition to the traceback.
|
| |
|
| |
|
| |
|
|
|
|
| |
Relates to #1153 and #1176
|
|
|
|
| |
This reverts commit 817b2b6f5f0883092df60c1ec8ec7ec6d6094a23.
|
|
|
|
| |
This reverts commit 89a727b625e74f40fcf612bda18421b8fc21eead.
|
|
|
|
| |
This reverts commit 6ffe0421ac524138a6b48fd010f2540631b83d16.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Function closures are fragile and attachment uploads would break if
fabric_doc_attachments is different on any of the nodes in a cluster, like it
might happen during a roling cluster upgrade.
Previously fe53e437ca5ec9d23aa1b55d7934daced157a9e3 introduced two versions of
the module one which handles function closure, other which handled message but
only in this commit messages are starting to be sent.
To avoid breakages in attachemnt uploads during the period of a rolling cluster
upgrade, make sure to upgrade to that commit first then upgrade to this change.
Issue #1394
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Unfortuantely, #1437 brought in a build bug that caused dist tarballs
to be created always using the last tag that could be found on the
tree. This lead to `master` building tarballs labelled `2.1.0`.
The new approach includes extensive comments to explain the approach,
fixes the bug, and for an encore adds -dirty if you're building a
CouchDB with local changes that aren't committed to git.
|
|
|
|
| |
Closes #1309
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes #927
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
the released tarball should have -RCx in the name, but not in the
extracted file, otherwise we can't simply rename the final artefact for
our public release.
|
|
|
|
|
|
|
|
|
|
|
| |
git-describe may have changed output formats. The previous regex doesn't
allow any trailing content, and git-describe always appends -g<SHA> unless
abbrev=0 is added.
This approach pulls out only the matching tag, leaving behind any
trailing garbage from git-describe, and as a bonus allows tagging a
commit from within a branch, and running a release directly from the
branch without needing to re-check out the tag itself.
|
|
|
|
|
|
| |
- send a readable error response from failed config set
- trust but verify admin-supplied content in separate function
- return specific error conditions for logging
|