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

Update Redis DB implementation #16

Open
Rjected opened this issue May 23, 2019 · 1 comment
Open

Update Redis DB implementation #16

Rjected opened this issue May 23, 2019 · 1 comment
Labels
feature New feature or request refactor Code necessary for long-term code quality but will involve lots of abstraction & generalization

Comments

@Rjected
Copy link
Collaborator

Rjected commented May 23, 2019

Is your feature request related to a problem? Please describe.
Redis is extremely fast, and was originally chosen as the database implementation (cxdb/cxdbredis). However, it was much easier to do transactions in MySQL, and cxdb/cxdbsql was created. #11 should help to more thoroughly define the interaction between the server and datastore, so once there is a more general, easy to use, and modular interface for defining datastore implementations, the redis implementation should be much easier to update.

Describe the solution you'd like
Once #11 is finished, the cxdb/cxdbredis package should be essentially rewritten to conform to the interfaces that we will have defined. Writing a DB implementation for OpenCX that is also ACID would be very helpful.

Describe alternatives you've considered
There are other databases that we could implement but there should really be a fast database option alongside the SQL database, and redis is pretty good. Memcached is another option but we don't want to be maintaining too many database implementations unless it's absolutely necessary. Another alternative could be Cassandra, which would be very cool, but again it's hard to maintain multiple database implementations unless we've decided on a final interface, which is unlikely to happen anytime soon.

Additional context
N/A

@Rjected Rjected added feature New feature or request refactor Code necessary for long-term code quality but will involve lots of abstraction & generalization labels May 23, 2019
@metalicjames
Copy link
Member

This might be cool to try: https://github.com/pingcap/tidb. Distributed, MySQL compatible and written in Go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request refactor Code necessary for long-term code quality but will involve lots of abstraction & generalization
Projects
None yet
Development

No branches or pull requests

2 participants