Six years after I joined Coherence following Oracle’s
acquisition of BEA, it is great to see how the industry has embraced In-Memory
Data Grid’s as a mainstream technology to scale middleware applications. This adoption is driven by growth in customer
demand to manage more and more data, and to act on that data faster and
faster. The mission that the Coherence
team set upon over a decade ago has come to fruition, and our core team – still
intact all this time later even as we continue to grow the team in new
directions – is working on new challenges as in-memory data grid based
solutions become standard.
The latest release of Coherence and the new announcement of
the In-Memory Option for the Oracle Database make this an opportune time to
answer some recent questions I’ve received about where Coherence is headed. First lets review the recent
In June we announced Coherence 12.1.3, the
second release of Coherence 12cR1. Coherence 12.1.2, released in 2013, introduced groundbreaking
operational improvements like Managed
Coherence Servers and GAR files, GoldenGate HotCache to keep caches and
databases in sync, and Live Events to respond to state and data changes in
real-time. With Coherence 12.1.3 Oracle
became the first commercial vendor to support the recently ratified JSR-107
(JCache) spec, the standard for caching on the Java platform. We also introduced a JVisualVM plugin for
developers, asynchronous EntryProcessors to allow clients to submit work to the
data grid without waiting for a response, memcached client support, and
optimization improvements to our Exalogic Infiniband optimizations
(Exabus). Check out all the cool new
features of Coherence 12.1.3 in our release notes.
In July, Oracle
announced the availability of the In-Memory
Option for the Oracle Database. The
In-Memory Option is designed to accelerate database performance by orders of
magnitude for analytics, data warehousing, and reporting by storing columnar
data in-memory. It supports ad-hoc queries
and full-table scans without requiring application changes; the interface is
standard SQL. Maria Colgan answers
frequently asked questions about this release on her blog.
The new In-Memory
option has also led to some confusion in the In-Memory Data Grid market. Let me try to clarify some of the confusion.
Oracle Coherence is not embedded in the In-Memory Option for
the Oracle Database. Although I have
seen rumors of this to the contrary, this would make absolutely no sense. Coherence is a distributed key-value store; the in-memory option is a columnar store. The In-Memory option is purpose built and
optimized to work as one with the database with its primary access method being
SQL. (Of course, Coherence is part of
many other Oracle solutions, such as Oracle Service Bus which offers web
services results caching via a check box,
or the Elastic Charging Engine, which is architected on top of Coherence’s
fault-tolerant distributed processing. (As you can see, Coherence has become
strategic within Oracle.)
The In-Memory Option focuses on different use cases than
Coherence. In-Memory focuses on ad-hoc
full-table scans of unindexed data. in the words of Maria Colgan
"The main use case for the In-Memory column store is fast analytics, which
has very different access patterns to OLTP. Typically analytic queries access a
few columns from a table but they examine all of the entries in those
columns. You need to scan the whole table or segment, not just a small part of
the table to answer these queries.” Storing these columns in-memory, in
columnar format, speeds full-table scans orders of magnitude.
By contrast, Coherence focuses on providing scale-out data
management and processing to middleware applications thereby reducing load on
shared services such as databases, mainframes, and web services. By caching data in domain object format close
the application, Coherence also increases responsiveness and availability of
So if the In-memory
Option is not related to Coherence, what has the Coherence team been up to? Glad you asked! Aside from the two 12c releases over the past
year, we continue to invest in several strategic areas (you can get a pretty
good sneak peak of upcoming releases at Oracle OpenWorld next month).
The Cloud. Oracle has increased investment in
accelerating’s Coherence role in our various cloud offerings, from public to
private PAAS. Our Coherence cloud team
is leveraging investments in Managed Coherence Servers to simplify operations
and continue to integrate Coherence into the cloud environment. In addition, Coherence integrates with other
Oracle technology to provide a full cloud management solution.
Efficiency. Related to the Cloud,
but somewhat separate, we are innovating to reduce the cost it takes, both from
a hardware and IT staff perspective, to manage an in-memory data grid solution.
Architectures. Several features in
our next release will dramatically increase the availability of data to your
applications. Features include new
advancements in mutl-datacenter solutions and protecting the availability of
the in-memory data grid within a single datacenter.
Productivity. We continue to invest
in new functionality, new integration points (e.g. REST, JSR-107, memcached in
recent releases) that complement our native clients. We also invest in new product features that
simplify the lives of developers both from an API (Asynchronous
EntryProcessors) and from a tooling (JVisual VM plugin and Coherence tooling in
Oracle Enterprise Pack for Eclipse, or OEPE).
To get more specific of all these investments, you can join
me at my Coherence Product Strategy and Roadmap talk at OpenWorld.