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

Choose a KV store to use for alpha #12

Open
dgrnbrg opened this issue May 8, 2016 · 2 comments
Open

Choose a KV store to use for alpha #12

dgrnbrg opened this issue May 8, 2016 · 2 comments
Milestone

Comments

@dgrnbrg
Copy link
Collaborator

dgrnbrg commented May 8, 2016

Integrating with the KV store will be trivial, since it only needs to support put and get with hinted ordered writes. Ordered writes are if a client which writes to the same key in a sequence, any other readers will see that same sequence appear--no writes can be seen out of order (n.b. Riak and Cassandra don't do this by default). Hinting means that we don't need every write to have that ordering property--only certain ones (the metadata update operations).

Ideally, we should choose a system easy to run locally or deploy scalably in the cloud.

Here are some choices we can consider:

  • Riak
  • Cassandra
  • Redis
  • RethinkDB
  • Any JDBC sql db
  • Accumulo
  • DynamoDB
  • CockroachDB
@dgrnbrg dgrnbrg added this to the Alpha Release milestone May 8, 2016
@bendlas
Copy link

bendlas commented Jun 29, 2016

Have you considered to KISS the actual storage mechanism and implementing distributation across jvm and browser:

  • bdb on jvm
  • localStorage in browser
  • achieve distribution via a p2p dht (via WebRTC in the browser)

@dgrnbrg
Copy link
Collaborator Author

dgrnbrg commented Jun 29, 2016

I think that most of those KV stores are very easy to interact with. Also, currently, the code's JVM-focused (particularly the serialization & performance tuning).

I think the KV store choice will really depend on who wants to implement it--if you want to use BDB, then go for it! I'd be glad to merge that.

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

No branches or pull requests

2 participants