Oracle Coherence Review

It caches part of the database. We can execute complex queries using EntryProcessors.


Valuable Features

  • Entry processors
  • Distributed cache
  • Events

Improvements to My Organization

It has allowed us to greatly improve our response times in several services by caching part of the database into Coherence and executing complex queries using EntryProcessors.

Room for Improvement

Configuration is too complex. One of the reasons configuration can be complex in the POF is due to the XML files required for the IDs of the classes. Also, the normal configuration files in XML are not so easy to use; I’m not an expert on them, but I have heard complaints from some of my colleagues.

There is a a lot of room for improvement with POF serialisation. It is slow compared to other serialization mechanisms. We have done some testing using Kryo and custom serialisation built by ourselves, and I have managed to serialise / deserialise 10 times faster than POF. And I haven’t event tried using Unsafe. That means there is even more room for improvement.

POF serialisation also requires both XML files with the IDs of all the Java classes that are going to be stored and implementing the write external read external methods with all the fields of the classes. If you have a few classes, it is fine, but when you try to store complex messages like FIXML or FPML protocols, it becomes quite a nightmare. In our case, we have built a code generator that solves our problem, but is not a simple solution.

Support for writing the cache contents to disk and recover it should be available in production. This feature allows writing the current content of the cache into a file on disk and being able to repopulate the cache later with this information. This is very useful when, for any reason, there is a need to stop all the cache nodes for some time and restart them again without losing information. The problem is that it is not, or at least it was not, supported for production environments. That means we cannot really use it. Our solution was to use a backing database, but that is not trivial, either, because the only way to represent our complex objects into the database was with blob binaries.

Use of Solution

I have used it for four years.

Stability Issues

We found some issues using the incubator libraries for database integration on writing and also using the feature to write cache contents to disk.

Scalability Issues

I have not encountered any scalability issues.

Customer Service and Technical Support

Technical support is 5/10; not very good, in Spain at least.

Previous Solutions

I did not previously use a different solution.

Other Solutions Considered

We have recently evaluated other solutions such as Hazelcast and GridGain.

Other Advice

Get a good expert on the technology, because the learning curve can be high.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Add a Comment
Guest
Sign Up with Email