Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java distributed cache for low latency, high availability [closed]

Tags:

I've never used distributed caches/DHTs like memcached, jboss cache, ehcache, etc. I'm wondering which, if any, is appropriate for my use.

First, I'm not doing web applications (as most of these project seem to be geared towards web apps). I write servers (Order Management Systems actually) for financial trading firms. The servers themselves are not too complicated. They need to receive information (market data, orders, executions, etc.) rout them to their destination while possibly transforming some of these messages.

I am looking at these products to solve the following problems:

  • Safe repository of the state of the server. I'd rather build the logic of my application as a bunch of transformers (similar to Apache Camel) and store the state in a 'safe' place

  • This repository should be distributed: in case one of these data stores crashes, one or two more should be up and I should be able to switch to them seamlessly

  • This repository should be fast. Single digits milliseconds count here, in other words, systems which consume/process this data are automated systems, not humans clicking on links. This system needs to have high-throughput and low latency. By sending my data outside the process, I am necessarily slowing performance, but I am trying to balance absolute raw speed and absolute protection of data.

  • This repository should be safe. Similar to the point about several on-line backups, this system needs to write data to disk (potentially more than one disk).

I'd really like to stop writing my own 'transaction servers.' Am I correct to be looking into projects such as jboss cache, ehcache, etc.?

Thanks

like image 898
Shahbaz Avatar asked Mar 16 '09 06:03

Shahbaz


People also ask

Which is the best cache for Java?

Ehcache is an open-source implementation of the JSR-107, which is reported to be the most used Java-based cache (URL-2, 2020).

How does Java distributed cache work?

In distributed mode, the Object Caching Service for Java can share objects and communicate with other caches running either locally on the same machine or remotely across the network. Object updates and invalidations are propagated between communicating caches.

Is ehcache distributed?

is a pluggable cache for Hibernate, tuned for high concurrent load on large multi-cpu servers, provides LRU, LFU and FIFO cache eviction policies, and is production tested. Ehcache is used by LinkedIn to cache member profiles.

What is the best distributed cache for Java?

Hazelcast is an open source, transactional, distributed caching solution for Java. Good fit for financial applications. It is released under Apache license. Hazelcast is actually a little more than a distributed cache; it is distributed implementation of queue, topic, map, multimap, lock, executor service for Java.

What is low latency Java?

Low latency in Java. Java, because of its virtual machine and garbage collection is very often perceived slow. Fortunately, with the right optimisations, we can make it extremely fast. Let’s focus on the key elements influencing low latency: Garbage Collection.

What is a good latency for a web application?

A standard web application will target a latency of 200ms to 800ms. #3. A gaming application or a more complex web application will target a latency of 500ms to 1000ms. Q5. How will you go about improving the latency for a more complex web site? A5. 15 key considerations to write low latency applications in Java. Q6.

What is the difference between client server cache and distributed cache?

Client-Server cache as the name suggests it follows a client-server architecture and then distributed cache as the name suggests when we have multiple applications retrieve data from a server cache. Why Microservices required cache in any application?


1 Answers

Hazelcast is an open source, transactional, distributed caching solution for Java. Good fit for financial applications. It is released under Apache license.

Hazelcast is actually a little more than a distributed cache; it is distributed implementation of queue, topic, map, multimap, lock, executor service for Java.

like image 156
Talip Ozturk Avatar answered Sep 27 '22 17:09

Talip Ozturk