apache / couchdb-erlfdb

Erlang API for FoundationDB
https://www.foundationdb.org
Apache License 2.0
28 stars 20 forks source link

Adds FDB Tenants #55

Closed JesseStimpson closed 6 months ago

JesseStimpson commented 7 months ago

Hi!

This commit adds support for FDB Tenants to erlfdb, and I wanted to offer it for your consideration.

I used the source for the official FDB Python and Java clients as reference.

Further guidance needed

There are some decisions that will probably raise an eyebrow. They are:

API version

Tenant support exists in some version after 620, though I did not pinpoint it precisely. Presumably this would be a breaking change for anyone using a cluster with <= 620. Guidance is appreciated here.

Empty Unit Test

I almost got myself into a pickle by running unit tests using a real cluster file. Perhaps I should have known better, but I didn't expect the unit tests to run a full clear_range. (Especially given that the unit tests are set to run with a simple make command). Luckily, the cluster I used only contained dev data, so no harm done. However, this seemed like an opportunity to use tenants to conduct the test in a safe manner.

nickva commented 6 months ago

Thank you for your PR, @JesseStimpson!

The implementation looks reasonable. For the FDB_API_VERSION version, from what I remember, we usually target some minimal supported version explicitly. That is why we had a hard-coded version there.

Unfortunately, I don't have a current working FDB setup to validate the PR in depth. If you're willing, feel free to fork and maintain the repo. I don't think anyone has been updating or looking at this repo besides me in a while.

I almost got myself into a pickle by running unit tests using a real cluster file. Perhaps I should have known better, but I didn't expect the unit tests to run a full clear_range.

Oof. Sorry about that. Yeah, the tests usually assume they have full rein on the cluster and just wipe it out. Perhaps the new tenants feature could help with that.

JesseStimpson commented 6 months ago

Thanks @nickva ! I've moved this work over to https://github.com/foundationdb-beam/erlfdb/pull/1