opencx
opencx copied to clipboard
Update Redis DB implementation
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
This might be cool to try: https://github.com/pingcap/tidb. Distributed, MySQL compatible and written in Go.