Key/Value distributed database for caching binary data

℡╲_俬逩灬. 提交于 2019-12-11 09:32:48

问题


I am looking for distributed kv database for caching small binary objects, like images with TTL. Size limitation is not a problem, as I am planning to split each object anyway, to minimize latency. I need C# and Java drivers, and in very near future I will also need C++ driver. The databases like CouchDb and Redis seems to be document based. Mongo supports binary data and well documented, but it is persistent and I am not sure it is scalable in terms of throughput , Cassandra is also persistent and I am not sure about C++/C# drivers quality + need for constantly repair because of deletions.

Aerospike is commercial and also document based. Maybe Riak with memory or leveldb backend (anyone worked with its C++ client?)


回答1:


Aerospike would be a perfect solution for you because of below reasons:

Serves all your Use cases

  1. Key Value based.
  2. Open sourced from 3.0 version. Earlier upto 2 node Aerospike cluster was open sourced and 3 or more nodes cluster was paid.
  3. Can be used in Caching mode with no persistence.
  4. Supports LRU and TTL.
  5. Can save binary data.

Reasons for choosing Aerospike

  1. Throughput: Better than Mongo/Couchbase or any other NoSQL solution. See this http://www.aerospike.com/benchmark/. Have personally seen it work fine with more than 300k read TPS and 100k Write TPS concurrently.
  2. Automatic and efficient data sharding, data re-balancing and data distribution using RIPEMD160.
  3. Highly Available system in case of Failover and/or Network Partitions.



回答2:


Couchbase (not CouchDB) is a great option for you. Highly scalable, easy to understand, use and scale. It's a KV document database evolved from memcached that also offers secondary indexes through Map/Reduce and many new things coming soon. You can still use memcached protocol/libraries or speed it up with Couchbase SDK's.




回答3:


Have you looked at Pivotal GemFire Pivotal GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence.

Pivotal GemFire also has client drivers in C++, C# and Java



来源:https://stackoverflow.com/questions/18643091/key-value-distributed-database-for-caching-binary-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!