Try our new research platform with insights from 80,000+ expert users
it_user516927 - PeerSpot reviewer
HPC Team Lead and HPC Senior Consultant in BBVA (Madrid, Spain) at a tech company with 51-200 employees
Vendor
With push replication, we can share data between different projects without attaching the original data.

What is most valuable?

We use 75% of the functionality of the product, including Coherence Incubator (not embedded for our version yet). The most interesting features for us are push replication and write through because these give us a lot of flexibility with data.

From the point of view of push replication, we are able to share data between different projects without attaching original data, so, if any client modified this data by error, it wouldn't affect the rest of the projects.

Regarding the feature of write through, we need to persist to DB a lot of data that changes three times per second. However, this is difficult to support by a database. (We have statistics in Coherence of 120 million puts in the cache.) What we do in this case is write to Coherence and then persist to database in batch mode, so the database receives fewer charges than if the streaming is connected directly.

How has it helped my organization?

We are storing information from one of our applications. This allows us to answer requests in milliseconds, while the application would take seconds to answer request from clients.

What needs improvement?

First of all, extend clusters between different sites. We have done this configuration but is not recommended by Oracle. This configuration is strategic for us.

Oracle doesn't recommend having an extended cluster between two CPD with different locations (in our case, 20 kms apart). The recommended way to implement this is replicating information between the different CPDs. In our case, we have an extended cluster between these two CPDs and we found some issues with, for example, push replication. With an extended cluster between two CPDs, Coherence opens two replication channels, one per site; however, only one site replicates its data. I think this issue is resolved in 12.1.1. with federated caches, but we haven't check this behaviour yet.

For how long have I used the solution?

I have used it for for years, since 2012.

Buyer's Guide
Oracle Coherence
December 2024
Learn what your peers think about Oracle Coherence. Get advice and tips from experienced pros sharing their opinions. Updated: December 2024.
824,067 professionals have used our research since 2012.

What do I think about the stability of the solution?

In four years, we haven´t found any issues with stability. We have had some problems but they derived from how clients use this product.

What do I think about the scalability of the solution?

As mentioned, we have extended clusters between different sites, even though Oracle does not recommend this configuration.

How are customer service and support?

Depending on the consultant, we were very happy or very unhappy, so I would rate technical support 5/10.

Which solution did I use previously and why did I switch?

I did not previously use a different solution.

How was the initial setup?

Initial setup was complex, until we contracted an expert who helped us to configure everything. After that, life was easier. ;)

What's my experience with pricing, setup cost, and licensing?

Due to the licensing prices, we are looking for other solutions as an alternative to Coherence. It is very expensive and projects are not willing to pay this amount of money for caching data, so they requested that we find a cheaper alternative.

Which other solutions did I evaluate?

People here were using Ehcache or other solutions, but we decided to use Coherence as our corporate solution.

What other advice do I have?

It is a very powerful tool but is very expensive, so if you don´t have enough money, just choose another solution.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user509847 - PeerSpot reviewer
Program Director and Architect at a tech services company with 501-1,000 employees
Consultant
It delivered a standalone caching solution that prioritized speed of data serialization and integrity. Integrating it into an overall solution was not easy.

What is most valuable?

The features that were of most value to us:

  • Uptime
  • Scalability
  • Speed
  • The ability to read-through and write-through to a backing datastore (something that other caches usually require a separate solution for)

How has it helped my organization?

An example of how the product improved organizational function was in the speed of request processing. The client had needs to support very high throughput, particularly at certain “peak” times of the year, both in terms of bandwidth for data streaming, as well as retail transactions. A robust standalone caching solution that prioritized speed of data serialization and data integrity was a must. Coherence delivered on that front.

What needs improvement?

Coherence’s issues (besides high monetary cost compared to other caching solutions) were mostly around the high learning curve required to use it properly, as well as the technical challenge of maintaining a separate artifact of mapped, POF-serializable data types for the cache to have available in its classpath.

In other words, integrating it into an overall solution was not easy from an integration and a code complexity standpoint. This caused developers to either put off integrating it for as long as possible, or otherwise struggle with it more than with something like memcached or ehcache.

For how long have I used the solution?

I have personally used the solution for approximately one year (it was in use much longer at the organization).

What do I think about the stability of the solution?

For the most part, we have not encountered stability issues.

What do I think about the scalability of the solution?

Scalability was not an issue.

Which solution did I use previously and why did I switch?

In this case, Coherence was the incumbent technology.

How was the initial setup?

While Coherence was already deployed on premises, integrating it into a new application was cumbersome.

What's my experience with pricing, setup cost, and licensing?

My understanding is that Coherence is not cheap, based on Oracle’s Technology Global Price List. However, as a contractor, I did not participate in decision-making related to cost.

Which other solutions did I evaluate?

I have evaluated/used other products since, and have concluded that Coherence offers slightly superior performance and integrated read/write-through at the cost of technical complexity. Complexity being a huge contributor to risk/cost for projects, I am more likely to use other products as a result.

What other advice do I have?

My advice to those looking to implement Coherence is to hire someone who has used it extensively in the past, and to create sufficient documentation internally to bring developers up to speed with how to integrate it into their applications. The learning curve to get comfortable with the configuration/deployment/mapping was the single biggest pain point for our project, and greater than I would expect of a third-party integration like this.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
Oracle Coherence
December 2024
Learn what your peers think about Oracle Coherence. Get advice and tips from experienced pros sharing their opinions. Updated: December 2024.
824,067 professionals have used our research since 2012.
it_user488157 - PeerSpot reviewer
Technology Consultant at a comms service provider with 10,001+ employees
Vendor
Customer Facing Application response time has improved. The error and exception handling is not that great as it can be difficult to debug issues.

Valuable Features

As well as using HotCache to synchronise a Coherence cache with database tables in real-time, it can also be used to warm the cache by loading an initial dataset. The nice thing about this approach is that cache warming is just an extension to the setup for cache synchronisation.

Improvements to My Organization

The Customer Facing Application response time has been improved 95%. Also, in the releases the Portal does not goes down as the data is being pulled from the Cache not from the Database.

Room for Improvement

Monitoring API needs to be improved and needs to be user friendly. Also, the error and exception handling is not that great as it can be difficult to debug issues.

Use of Solution

We have been using this solution for five years.

Deployment Issues

The GAR file naming convention.

Stability Issues

There have been issues in the cache configuration file in older versions, and a nodes eviction and timeout error.

Scalability Issues

To add additional capacity, the cluster has to be fully recycled and that cause the down time of the environment.

Customer Service and Technical Support

Oracle Customer Support works when we escalate the issue, otherwise first level support is not that good.

Initial Setup

The latest version is straightforward, as there is lots of configuration done through the WebLogic console.

Implementation Team

We implemented it ourselves. Before implementation, review the requirements thoroughly because if the cache sizing is not correctly defined it creates a major bottleneck. The size of the JVM depends on the size of cache.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user533112 - PeerSpot reviewer
Sr. Technical Architect at a tech services company with 10,001+ employees
MSP
It is easy to use, scales without too much work, and provides failover recovery.

What is most valuable?

The most valuable features are ease of use, scalability without too much work, and failover recovery.

How has it helped my organization?

We were trying to get better performance of compute tasks previously developed on RDBMS to cache and it has improved the performance by a factor of 4.

What needs improvement?

I'd like to see:

  • More documentation
  • Less/easier configuration
  • More IDE support or create a spring-boot starter

For how long have I used the solution?

I have used this product for around six months.

What do I think about the stability of the solution?

I have not really encountered any stability issues. I was pleased with its fault tolerance.

What do I think about the scalability of the solution?

I have not encountered any scalability issues either.

How are customer service and technical support?

We have not made use of any technical support as of yet.

Which solution did I use previously and why did I switch?

We tried several approaches towards our goal of performance improvement. This was the most likely solution and hence was used.

How was the initial setup?

The tutorials helped, but I use NetBeans, so there was a learning curve, but nothing complicated.

What's my experience with pricing, setup cost, and licensing?

The price is high. I believe there should be a cheaper version for only the caching solution.

Which other solutions did I evaluate?

We have not evaluated other caching products because this an Oracle product and the product/solution was from Oracle too. We tried some streaming alternatives like Spark, etc.

What other advice do I have?

The product is great, simple, and easy to use and integrate. See if your infrastructure supports it; if there are ways to make it work. Do a PoC before deciding.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user529299 - PeerSpot reviewer
SOA & Middleware Architect at a tech consulting company with 501-1,000 employees
Consultant
It allows applications to cache objects and application-specific data in an in-memory data grid.

What is most valuable?

Caching: It allows applications to cache objects and application-specific data in an in-memory data grid, which provides substantial gain in performance. In my experience, while working on customers’ solutions where performance is a key requirement, along with robustness and stability needs, I have always found Oracle Coherence as the best solution for integrating with different Oracle products and caching data for application-specific needs.

How has it helped my organization?

I have worked on different projects that sometimes demand high performance (millions of transaction per day) without compromising availability or sequencing of the flows. Therefore, Oracle Coherence offered the possibility to cache and also allow sharing of cached objects through remote availability of the cache. Oracle Coherence is easy to integrate using any industry-based programming solution and standard products (works very effectively with Oracle middleware technologies). With Oracle Coherence, we managed to decouple many of our backend and legacy systems through limiting many incoming transactional requests and therefore improving performance immensely in such systems.

What needs improvement?

In my experience, I did find it challenging to use this product when namespace prefixes on the resulting XML object was a requirement. I learned that the default output from Coherence cache used to strip all of the namespace prefixes and namespace definitions if the input XML object had them. And, if the system that retrieves the result doesn’t receive namespace prefixes, there could be challenges with parsing of the output.

It is important to mention that this was experienced when the Coherence cache was used for remote caching and accessed through an out-of-the-box REST API. As a temporary fix, I had to add annotations to all JAXB-generated classes, along with the namespaces of all the involved elements. I think there should be default support for namespaces and their prefixes, when JAXB classes are used as object factories (generated from schema definition files (XSD)). Over time, with XDD changes, we had to generate new JAXB classes, and had to bump namespaces manually through annotations and bundle the object factory.

For how long have I used the solution?

I have used it for around three years.

What do I think about the stability of the solution?

I encountered stability issues sometimes, but that was mainly due to the wrong cache configuration used in implementation. Wrong configuration causes an impact on how objects are serialized or retained, etc.

What do I think about the scalability of the solution?

I have not encountered any scalability issues. In fact, we had a configuration that allowed the cache to fill up to its limit and then was flushed when entire cache was fully occupied.

How are customer service and technical support?

Oracle support was really good in cases when I had troubles with implementation. Also, when I asked the question regarding namespaces as mentioned, I received very good cooperation.

Which solution did I use previously and why did I switch?

I did not previously use a different solution.

How was the initial setup?

Installation was rather straightforward and usage was simple. But the complex part was mainly using PofSerializer, which did not work that easily for me and we ended up using a standard Java serialiser in the end.

What's my experience with pricing, setup cost, and licensing?

I am not sure about pricing and licensing, but what I remember from my experience, if a customer has a WebLogic license, it should be ok to use the Coherence cache. But I might be wrong.

Which other solutions did I evaluate?

Before choosing this product, I did not evaluate other options. While using the Oracle Fusion Middleware stack, it was always our preferred choice due to its integration capability with available tools.

What other advice do I have?

Caching in an important element in order to gain a stable and high-performing system. Therefore, it is important that this product, which is designed to help, should be implemented in the correct way. There are different architectural patterns that can be referred before using cache, best practises regarding cache and invalidation schemes around objects. It is also important to consider the reliability of the object state during usage and also to make sure that its usage is compliant with Oracle’s best practises regarding cache.

Disclosure: My company has a business relationship with this vendor other than being a customer: My company is an Oracle implementation partner (gold).
PeerSpot user
PeerSpot user
Senior Technical Architect at Altimetrik
Vendor
Extend's proxy instance concept allows flexibility, even with the Enterprise Edition.

What is most valuable?

  • Coherence Extend with its concept of a proxy instance, thus allowing flexibility even with the Enterprise Edition
  • Read- and write-through capability
  • A good community maintaining the Coherence Incubator project: Though this isn’t directly from the vendor, the fact that such wonderful documentation exists makes it easier for the users of the product.
  • Ease of clustering and the data fabric operation + querying
  • Multi-cast free operation

How has it helped my organization?

I am unable to name specific projects and companies for confidentiality reasons. I have, however, listed the high-level aspects of how Coherence benefited us.

For company X, a major telecom provider in the continental United States, we had the GRID edition here. A single logical cache scattered across various geographies ensured we had only one cache to look against (location transparency) at the same time, ensuring high availability. With Coherence taking care of CAP (Consistency, Availability and Partition Tolerance) we had little to worry about in those aspects. The ability to add any number of server instances and the ability to query with a simple API reaped benefits in our application scaling and the developers happy with the ease of coding.

What needs improvement?

In short, features across editions but this is a moot point if it directly relates to room for improvement and is a subjective topic. Better support for active-active data center capability in Enterprise Edition. We could achieve this through a fully replicated cache or having our distributed caches in a single cluster placed across two different centers. The former doesn’t scale for high-write scenarios and is available only in the GRID edition while we used Enterprise edition in our project. The latter will result in direct coupling between two data centers which defeats the purpose of active-active data center availability.

We had to write a custom solution based on listening to events transported between data centers on Kafka infrastructure, but had to go through a lot of trouble to suppress events originating from the same data center to make sure we don’t go into an infinite loop in achieving replication. Easier API support for this purpose would have helped.
Greater tooling support for moving across editions and implementing Coherence Extend would also help.

For how long have I used the solution?

I have used it for more than two years.

What do I think about the stability of the solution?

I have not encountered any stability issues.

What do I think about the scalability of the solution?

I have not encountered any scalability issues.

How are customer service and technical support?

Technical support is 8/10.

Which solution did I use previously and why did I switch?

I did not previously use a different solution.

How was the initial setup?

Initial setup was complex. We wrote a lot of wrapper code around the Coherence libraries in order to make it easier for the developer.

What's my experience with pricing, setup cost, and licensing?

Be aware of the pitfalls of using Enterprise Edition in a vast enterprise ecosystem. Specifically, keep in mind the long-term needs of the evolution of your organization’s enterprise infrastructure and susceptibility to change of technology. For example, only GRID edition supports replicated caches, local transactions and different types of clients across tech stacks.

Which other solutions did I evaluate?

Before choosing this product, we looked at Terracotta and other custom caching solutions.

What other advice do I have?

Make sure you understand which edition gives which capability, and how that maps to your current needs and your long-term infrastructure evolution. Build wrapper libraries abstracting your actual caching implementation to make it easier for moving across editions and even vendors in the future.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Consultant at a tech consulting company with 51-200 employees
Consultant
Oracle needs to continue to develop and add to Coherence, avoiding the all to common bloat in enterprise software

On the 12th July, Oracle announced the 12c release of the full Cloud Application Foundation (CAF) stack.

Since Oracle are trying to bring all their products in line with each other, Oracle Coherence has leaped up in version number from 3.7.1 to 12.1.2 despite 12c being only one major release after 3.7.1.

Major is certainly the operative word here. Oracle has put a lot of effort into upping the amount of added value of running Coherence with Weblogic. Here’s a summary of the changes to Coherence in 12c

Managed Coherence Servers

The first change I want to highlight is a biggie - gone are the days of ActiveCache and Coherence*Web and Coherence Managed Servers and GAR (Grid Archive) files are here to stay! If you have a big investment into ActiveCache already, then have no fear, it isn’t retired just yet but is being phased out to give you a chance to refactor those existing Coherence*Web applications.

The idea is to enhance the use of Coherence with Weblogic by optimizing packaging and deployment and provide application isolation and “lifecycle events” (see below!) thanks to the ability to deploy Grid Archives to a Managed Coherence Server. The advantage is that Oracle say that Grid Archives can be used by standalone Coherence customers too!

So the next question is…what is a “Grid Archive”?

Grid Archive (GAR)

A GAR file is simply a directory structure for Coherence configuration files which can be packaged and referenced as a module by other applications.
  • GARs must contain at least two folders: lib and META-INF in the root directory.
  • The META-INF directory must contain a coherence-application.xml file
  • GARs need to be packaged in an EAR to be referenced by other modules.

    GoldenGate HotCache

    A major aspect of any cache is consistency of data. Coherence has always been very good at keeping in sync with backend data sources. HotCache fits particularly well with Coherence in that it monitors the database for changes and then pushes them into the cache. The really clever thing about this though, is that extra overhead is avoided by making sure that only stale changes get pushed, lowering latency.

    Live Events

    We’ve seen the usefulness of cache event processing in Coherence before (Steve even presented on it at JavaOne). The implementation in 12c has changed a little but the theory remains the same, as do the sort of events available to process. Register an event interceptor with the cache and you can process events relating to the cache data, the cache itself (monitor the movement of partitions around, for instance), or “lifecycle events” – a notification that a ConfigurableCacheFactory instance has either activated or been disposed.

    REST Enhancements

    The Coherence REST API has been updated in more than one area:
    • Run multiple REST applications
      • Configure multiple context paths in the cache config and your application server can run multiple REST applications. As simple as that!
    • REST security
      • Very necessary, Coherence REST security uses both authentication and authorization. Authentication support includes: HTTP basic, client-side SSL certificate, and client-side SSL certificate together with HTTP basic. Authorization is implemented using Oracle Coherence*Extend-style authorization.
    • Support for named queries
      • Named queries are CohQL expressions which are configured for resources in the coherence-rest-config.xml file. In a nutshell, an expression is defined in the XML file and given a name. Using a GET request on the query name will return the results of that query!
    While all this is nice to have, and some of it very necessary (I’m looking at you, REST api and HotCache), one of the most appealing things about Coherence for me has always been its conciseness when compared to competitors. The lightweight distribution of Coherence never held it back either – indeed, it has performed very well in the market for data grids (and distributed caches, for that matter) thanks to some great design.

    If Oracle can maintain that philosophy as it continues to develop and add to Coherence, avoiding the bloat that people often assume comes with all enterprise software, Coherence certainly seems like it will continue to be a formidable player and a crucial component of Oracle’s wider cloud strategy.

    Disclaimer: The company I work for is partner with several vendors including Oracle
    Disclosure: I am a real user, and this review is based on my own experience and opinions.
    PeerSpot user
    it_user742710 - PeerSpot reviewer
    Technical Lead at a tech services company with 10,001+ employees
    Real User
    Facilitates ​​Putting and getting data from cache and clearing cache via a batch job

    What is most valuable?

    • Putting and getting data from cache
    • Clearing the cache using a batch job
    • Querying the cache using Coherence QL
    • Trigger functionality used when putting data to cache

    What needs improvement?

    Would be good if the initial setup was easier.

    For how long have I used the solution?

    Almost 2 years.

    How are customer service and technical support?

    It is Okay. Seven out of 10.

    Which solution did I use previously and why did I switch?

    We used Ehcache in a previoius project and switched to Coherence. Ehcache should be installed in each JVM but Oracle Coherence is a central place, provides response from cache. Space consumption is much less.

    How was the initial setup?

    Initial setup is bit complex in WebLogic 12c when compared to WebLogic 10g. Performance is very good in Coherence.

    What other advice do I have?

    Coherence uses key value pair logic to put data to cache and fetch. If you use immutable object in the cache is it very fast, it takes a nanosecond to put it. It uses PortableObject instead of serialization. PortableObject is lightweight compared to implementing serialization.

    Disclosure: I am a real user, and this review is based on my own experience and opinions.
    PeerSpot user