質問

What is the best open source distributed cache that can be used in Java?

I thought it was EHCache, but apparently it can be scaled on multiple nodes only when using Terracotta Server Array, which is a commercial product.

My goal is to build caches for streaming data in real-time with a certain delay, and my actual estimated size of the data lies is in the order of 8gb, while the production rate is much slower, in the order of 3mb per second.

Since there is an initial delay, I would like my cache also to be replicated, because when starting from 0 my cache would require a warm up period which I am seriously interested in avoiding.

役に立ちましたか?

解決

I would recommend you to take a look on the product called Hazelcast although its not a distributed cache per se, its rather a data grid which is very scalable and very easy to use.

BTW it could be better if you could tell us what are the requirements, there are a lot of open source products that may fit your needs...

Hope this helps

他のヒント

Memcached is worth looking into.

You don't need a commercial license to Terracotta to cluster your (Eh)caches... You do need a license when using multiple stripes, but one server (and potentially a passive) don't require any license

Apache Ignite has a feature rich distributed data grid which, of course, supports distributed caching. You can find more info here: https://ignite.apache.org/features/datagrid.html

Try out TayzGrid, its an Open Source In-Memory Data Grid and also known as In-Memory Data Grids.

OP: My goal is to build caches for streaming data in real-time with a certain delay, and my actual estimated size of the data lies is in the order of 8gb, while the production rate is much slower, in the order of 3mb per second.

The open source version is production ready and easily caters 100GBs of data. Your data is very small compared to that :)

OP: I would like my cache also to be replicated

Your wish has been granted: Replicated Cache. Quoting;

Two or more In-Memory Data Grid servers form a Replicated Cache cluster. Each one of the data grid servers contains all of the data in the data grid. Any update performed on any server is propagated in a synchronous manner to all the other servers within the cluster

You can use memcached

or Redis (http://code.google.com/p/redis/) --> storage is not volatile

or twemcache (http://engineering.twitter.com/2012/07/caching-with-twemcache.html)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top