Jmintz
(Josh Mintz)
October 21, 2019, 2:10pm
1
Hi FoundationDB Community,
As some of you know, the CouchDB community recently voted to adopt FoundationDB in CouchDB 4.0. (1) The community has been hard at work developing the architecture, comparability, and feature set of this major version of CouchDB, so I wanted to share some areas we are working on in case anyone wants to get involved or is merely just curious to learn more….
RFCs and architecture proposals - https://github.com/apache/couchdb-documentation/tree/master/rfcs
CouchDB Layer for FoundationDB - this code covers the stateless layer of CouchDB that will interact with FoundationDB including, but not limited to, CRUD functionality, map indices (not Mango ones yet) and materialized views
https://github.com/apache/couchdb/tree/prototype/fdb-layer
Lucene Layer for FoundationDB - CouchDB has full-text search capabilities as a third party extension. The IBM Cloudant managed service developed and operates this add-on for our DBaaS. This layer would replace that capability in CouchDB 4.0 and the Cloudant managed service https://github.com/cloudant-labs/fdblucene , https://github.com/cloudant-labs/search3-java , https://github.com/cloudant-labs/search3-erl
FoundationDB Client (Erlang) - Erlang bindings! Yay! https://github.com/cloudant-labs/couchdb-erlfdb
Interested in getting involved or have any questions? Join the conversation in the following locations:
Slack (#fdb ) - couchdb.slack.com
IRC - couchdb-dev
Dev mailing list (official communication medium) - https://lists.apache.org/list.html?dev@couchdb.apache.org
Upcoming Talks:
Jan Lehnardt will be giving a talk on this work at Velocity Berlin (2)
Adam Kocoloski will talking about adopting a new foundation for CouchDB at FDB Summit (3)
Garren Smith will be talking about his work building Secondary Indexes on top of FoundationDB with CouchDB @ FDB Summit (4)
(1) https://lists.apache.org/list.html?dev@couchdb.apache.org:lte=1M:foundationdb
(2) https://conferences.oreilly.com/velocity/vl-eu/public/schedule/detail/77131
(3) https://sched.co/UdZr
(4) https://sched.co/Udd0
8 Likes
mengxu
(Meng Xu)
October 22, 2019, 4:52am
2
Do we need to go through some special process to sign into the slack channel?
Thanks,
Meng
alexmiller
(Alex Miller)
October 22, 2019, 8:07am
3
You can get an invite via Apache CouchDB
3 Likes
PierreZ
(Pierre Zemb)
May 9, 2022, 7:51am
4
Jmintz:
CouchDB Layer for FoundationDB - this code covers the stateless layer of CouchDB that will interact with FoundationDB including, but not limited to, CRUD functionality, map indices (not Mango ones yet) and materialized views
https://github.com/apache/couchdb/tree/prototype/fdb-layer
I saw a few weeks ago that efforts are redirected towards CouchDB 3.x , I’m wondering if the basecode is still accessible? The link provided above is not working anymore:
Jmintz:
CouchDB Layer for FoundationDB - this code covers the stateless layer of CouchDB that will interact with FoundationDB including, but not limited to, CRUD functionality, map indices (not Mango ones yet) and materialized views
https://github.com/apache/couchdb/tree/prototype/fdb-layer
harikb
(Hari B)
May 9, 2022, 9:12pm
5
@PierreZ I am not part of couchdb team, but some FDB related changes have been merge to main as visible from these merges
apache:main
← apache:respect-FDB_CLUSTER_FILE
opened 11:14PM - 27 Mar 21 UTC
## Overview
This patch introduces a handful of related improvements to the co… de that chooses the FoundationDB cluster file. We now check for a cluster file in up to 4 locations, in priority order:
1. The value of `[erlfdb] cluster_file` in the server config
2. The value of the FDB_CLUSTER_FILE environment variable
3. /usr/local/etc/foundationdb/fdb.cluster (MacOS package default)
4. /etc/foundationdb/fdb.cluster (Linux packages default)
The second and fourth locations are new. We also check that the file has appropriate access permissions, namely that is RW accessible by the user running CouchDB. Finally, we add some more detailed logging to help users debug any problems in this department on startup.
If a location is specified using either one of the first two "custom" approaches and there is a problem with that location, CouchDB will abort rather than try any further option. This avoids a situation where a user intended to override the default cluster file but CouchDB starts up with the default one because e.g. the user failed to actually install the new file with the correct permissions.
## Testing recommendations
Still need to add a test suite here, and really some documentation too (although that would probably be a larger project involving documentation of the 4.0 stack as a whole). I could use a bit of guidance on the testing. Should I just verify the behavior of `find_cluster_file/1` with a mix of valid and invalid input? Is it better to create fixtures with bad permissions or just mock `file:read_file_info/2`?
I've tested several aspects of this manually:
- [x] ~~checked that a custom cluster file with bad permissions causes a crash~~ (logging a warning instead now)
- [x] checked that FDB_CLUSTER_FILE can be used instead of the server config setting
- [x] checked that CouchDB will find /etc/foundationdb/fdb.cluster without any config help
## Checklist
- [x] Code is written and works correctly
- [ ] Changes are covered by tests
- [ ] Any new configurable parameters are documented in `rel/overlay/etc/default.ini`
- [ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation
Just guessing here - may be that branch was deleted after a PR merge
kocolosk
(Adam Kocoloski)
May 9, 2022, 9:30pm
6
Yes, that’s right, main
still represents the latest in terms of the FDB development work there.