| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| | |
cloudant/add-timeout-to-fold_docs_with_different_keys
Add timeout for 'fold_docs-with_different_keys' test
|
|/ |
|
| |
|
|
|
|
|
|
|
| |
Specifying a custom prefix allows having multiple CouchDB instances on a single
FDB cluster. This can be used for one form of multi-tenancy. It can also be
used for integration testing by creating a temporary prefix then deleting all
data in that directory when the test has finished.
|
| |
|
|
|
|
|
| |
This opens the max document size to the transaction limits rather than a
single 100k value.
|
| |
|
|
|
|
|
|
| |
If the indexing job has timed out and has been requed we need to exit
the current indexer. This ensures the errors are logged so that we can
keep an eye on failing jobs.
|
|
|
|
|
|
| |
This adds couch_views which builds map indexes and stores them in FDB.
Co-authored-by: Paul J. Davis <paul.joseph.davis@gmail.com>
|
|
|
|
|
| |
If a start or end key is not specified we still need to scope the range
read to the given `RangePrefix`.
|
|
|
|
|
| |
This exposes a single place where we can check for whether a given
database or database name is a replicator or users database.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The old test got around this by using couch_httpd_auth cache in its
tests which is fairly odd given that we run chttpd_auth_cache in
production. This fixes that mistake and upgrades chttpd_auth_cache so
that it works in the test scenario of changing the authentication_db
configuration.
|
| |
|
| |
|
|
|
|
|
| |
Previously I was forgetting to keep the previous history around which
ended up limiting the revision depth to two.
|
|
|
|
| |
Simple function change to `fabric2_db:name/1`
|
|
|
|
|
|
| |
The existing logic around return codes and term formats is labyrinthine.
This is the result of much trial and error to get the new logic to
behave exactly the same as the previous implementation.
|
|
|
|
|
|
| |
This adds the mapping of CouchDB start/end keys and so on to the similar
yet slightly different concepts in FoundationDB. The handlers for
`_all_dbs` and `_all_docs` have been udpated to use this new logic.
|
|
|
|
|
| |
Neither partitioned databases or shard splitting will exist in a
FoundationDB layer.
|
|
|
|
|
|
|
| |
RFC: https://github.com/apache/couchdb-documentation/pull/409
Main API is in the `couch_jobs` module. Additional description of internals is
in the README.md file.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This changes `chttpd_auth_cache` to use FoundationDB to back the
`_users` database including the `before_doc_update` and `after_doc_read`
features.
|
|
|
|
| |
This was a remnant before we used a version per database.
|
|
|
|
|
|
|
|
| |
This fixes the behavior when validating a document update that is
recreating a previously deleted document. Before this fix we were
sending a document body with `"_deleted":true` as the existing document.
However, CouchDB behavior expects the previous document passed to VDU's
to be `null` in this case.
|
|
|
|
|
| |
The older chttpd/fabric split configured filters as one step in the
coordinator instead of within each RPC worker.
|
|
|
|
|
|
|
|
| |
I was accidentally skipping this step around properly
serializing/deserializing attachments.
Note to self: If someon specifies attachment headers this will likely
break when we attempt to pack the value tuple here.
|
|
|
|
|
|
|
|
|
|
| |
When uploading an attachment we hadn't yet flushed data to FoundationDB
which caused the md5 to be empty. The `new_revid` algorithm then
declared that was because it was an old style attachment and thus our
new revision would be a random number.
This fix just flushes our attachments earlier in the process of updating
a document.
|
| |
|
|
|
|
|
| |
This still holds all attachment data in RAM which we'll have to revisit
at some point.
|
| |
|
|
|
|
|
|
| |
This is not an exhaustive port of the entire chttpd API. However, this
is enough to support basic CRUD operations far enough that replication
works.
|
| |
|
|
|
|
|
|
|
|
| |
This provides a good bit of code coverage for the new implementation.
We'll want to expand this to include relevant tests from the previous
fabric test suite along with reading through the various other tests and
ensuring that we cover the API as deeply as is appropriate for this
layer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides a base implementation of a fabric API backed by
FoundationDB. While a lot of functionality is provided there are a
number of places that still require work. An incomplete list includes:
1. Document bodies are currently a single key/value
2. Attachments are stored as a range of key/value pairs
3. There is no support for indexing
4. Request size limits are not enforced directly
5. Auth is still backed by a legacy CouchDB database
6. No support for before_doc_update/after_doc_read
7. Various implementation shortcuts need to be expanded for full API
support.
|
|
|
|
|
|
|
| |
Most of these tests are for quorum and clustered response handling which
will no longer exist with FoundationDB. Eventually we'll want to go
through these and pick out anything that is still applicable and ensure
that we re-add them to the new test suite.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`local` replication endpoints do something completely unexpected from a user's
point of view -- they replicate to and from node local databases on a random
node. The only way this worked correctly was if someone used the backend port
(:5986) with a single node database. However, that port is getting closed for 3.x
release as well, so it makes even less sense to keep this functionality around.
For more discussion and voting results see ML list:
https://lists.apache.org/thread.html/ddcd9db93cee363db7da571f5cbc7f2bd24b881a34e1ef734d6a0a1c@%3Cdev.couchdb.apache.org%3E
The `_replicate` HTTP "hack" was left as is, since it does work more or less,
However it is inconsistent with what _replicator docs do so we should probably
deprecated it and remove it in 4.x.
|
|
|
|
|
| |
Fix a race condition in state matching, also parameterize the state
field in wait_state.
|
|
|
|
|
|
|
| |
Whole app is retried 2 extra times if it fails.
Added to *nix Makefile only for now. May not be needed for Windows as this is
for CI flakiness mostly.
|
|\
| |
| | |
Exunit simplified
|
| | |
|
| | |
|
| | |
|