Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gokv.Store implementation for ArangoDB #59

Open
philippgille opened this issue Dec 22, 2018 · 2 comments
Open

Add gokv.Store implementation for ArangoDB #59

philippgille opened this issue Dec 22, 2018 · 2 comments
Labels
enhancement New feature or request

Comments

@philippgille
Copy link
Owner

ArangoDB seems popular due to its multi-model approach, although key-value pairs are currently only implemented as documents with single values and no secondary indexes (see arangodb/arangodb#663 and https://docs.arangodb.com/3.4/Manual/Architecture/DeploymentModes/Cluster/DataModels.html#keyvalue-pairs).

@philippgille philippgille added the enhancement New feature or request label Dec 22, 2018
@gfxlabs
Copy link

gfxlabs commented Aug 29, 2022

hi there! i made this for arangodb. https://github.com/gfxlabs/gokv/tree/arangodb/arangodb

not sure exactly what features you would want in it so i kept it simple . we can add index on the key for a more advanced store, but honestly if it is only key->value lookup that is being done, the K field should be removed. I copied the mongodb test suite and it seems to pass, so that's good at least.

arangodb is a bit weird in its rules for byte arrays and keys. this is explained at the top of arangodb.go. tl;dr keys need to be a subset of ascii, and there is no 1 byte numeric type (only 8).

as for connecting, it creates the database + collection on connection if they do not exist, and so it would be up to user to either use a user with permissions to do so, or to pre-populate their database.

let me know if there is anything else that would be needed, or if you have any questions.

arangodb is just a nosql database layer on top of rocksdb, so performance wise, raw rocksdb will of course always be better.

@philippgille
Copy link
Owner Author

Hello 👋 , Wow thank you for working on this! I had a quick look just now and it looks pretty good 👍 . You can open a PR, then I will dig into the details and maybe ask some questions around individual lines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants