Open-source Distribued Cache for Java
Asked Answered
I

6

6

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.

Isotropic answered 18/9, 2012 at 9:58 Comment(1)
What are your requirements? How much data are you looking to distribute? How often does it change?Bos
R
2

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

Rear answered 18/9, 2012 at 12:41 Comment(0)
D
4

Memcached is worth looking into.

Doormat answered 18/9, 2012 at 10:0 Comment(2)
I read about it and it appears to be a good but old solution, and I was rather thinking to go for CouchBase...Isotropic
It's old but it does the job. It's widely used in many corporations because of easy configuration and performance. In java world there're two main memcached's clients: xmemcached and spymemcached. If you want higher cache abstraction and add transparent caching mechanizm to your code only by adding few annotations on methods take a look at my project Simple Spring Memcached.Dorena
P
3

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

Pyxis answered 14/4, 2017 at 0:12 Comment(0)
R
2

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

Rear answered 18/9, 2012 at 12:41 Comment(0)
G
2

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

Gambetta answered 26/9, 2012 at 19:45 Comment(0)
K
1

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

Kaiulani answered 17/9, 2015 at 11:44 Comment(0)
D
0

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)

Delative answered 18/9, 2012 at 17:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.