JCache: Supercomputing For The Rest Of Us

On the opening day of JavaOne and Oracle Open World, Hazelcast, the leading In-Memory Data Grid provider is announcing the release of Hazelcast 3.3.1 JCache, the JCache compatible version of Hazelcast. By using JCache, developers will be able to deploy extremely high-performance and scalable java applications.

How JCache Will Change Computing

JCache, co-authored by Hazelcast CEO Greg Luck and Oracle Coherence architect Brian Oliver is a Java standard approved by the Java Community Process (JCP). It will accelerate mainstream adoption of In-Memory Computing by giving all Java developers an easy-to-use and standard way to access memory from within Java. Enterprises will greatly benefit from the increased speed and scalability of applications written to take advantage of JCache, and will be able to change providers without having to rewrite their applications or maintain a proprietary bespoke cache abstraction layer.

“In-Memory Computing used to be the realm of HPC Supercomputing gurus.” said Greg Luck, CEO of Hazelcast, Co-Author of JCache spec and creator of Ehcache. “With JCache, it is now standardized and ready for mainstream adoption.”
Much like the advent of JDBC (Java Database Connectivity), the emergence of a JCache standard will shift the perception of java developers from caching as an afterthought to caching as a core part of every Java application. Since Java is still the dominant programming language for Enterprise computing, this will popularize this style of programming across many organizations. Traditionally, caching has been an afterthought as performance starts to lag. Today, this is an unacceptable approach as we are in the era of IoT (Internet of Things), Mobile, Social, Viral and Multichannel distribution, where user activity can spike unexpectedly and “cache later” mentality can result in expensive system outages.

The Brief History of In-Memory Computing

Memory has always been part of the solution for system performance. The nanosecond access characteristics of RAM have long made it the mechanism of choice for speeding operations. In fact, placing the data and instructions in RAM close to the processing is an inherent part of the design of todays multicore processors, focusing on developing a tiered system of Level 1 and Level 2 memory caches that sit directly inside the chips themselves.

But Main Memory has always been expensive. I remember my first computer was a 16k Atari 400. 16k isn’t very much, but we were able to do all sorts of fun applications including gaming, speech synthesis and (limited) recognition, Artificial Intelligence (what they call “Machine Learning” these days) and other fun applications.

Supercomputing “Dinosaur” Era

The advent of “Supercomputing” through companies like Silicon Graphics and Cray heralded the computer age of dinosaurs–huge lumbering beasts with tremendous compute power–at least at the time. Today’s XBox has more memory and compute power than those systems did at the time. These supercomputers were highly expensive and within the reach of a few dozen governments and even fewer private companies.

Supercomputing “Mammal” Era

The 1990’s heralded the rise of “open High Performance Computing (HPC)” through the emergence of systems like the Linux based Beowulf clusters, a legacy that is carried forward today by the Open Compute project. During this same era, technology from High Energy Physics and Supercomputer climate simulation came into vogue in the form of In-Memory Data Grids. One of the problems this solved was how to ingest terabytes of data in the nanoseconds after a supercollider smashed together two particles at close to the speed of light.

The Roaring 90’s, the rise of Financial Quant Trading

In the roaring 90’s the finance industry started hiring PhD physicists and computer scientists in order to begin a revolution called Algorithmic Trading. This has carried forward to today, when 85% of trades on wall street are conducted automatically by machines. This led to the use of In-Memory Data Grid (IMDG) technology to be the beating heart of market data that supported algorithmic and quantitative trading, or “quant” for short.

The 2000’s the rise of NoSQL

Meanwhile in mainstream computing, the rise of the relational database for transactional computing dominated all other forms of databases including object databases and XML databases. Despite being closer to formats familiar to developers and to network systems operators, the overwhelming power of business transactional systems and the robust ecosystems of reporting tools and skill sets caused relational databases to dominate data centric transactional computing during this era. This led to the rise of In-Memory Database Caching such as the TimesTen system, eventually acquired by Oracle.

More recently, the dominance of relational databases is being challenged by the NoSQL data stores including MongoDB, Apache Cassandra, Redis, Hazelcast, CouchDB and many others. These systems enable a broader scale-out pattern typically using open source and commodity computing and distributed data. Concurrent with the rise of these systems are the rise of multichannel, mobile, social and viral applications which are also supported by cloud computing and virtualization technologies. Often times these applications have a different requirement set when it comes to data consistency and concurrency than traditional databases. This combination of forces enables the more developer-friendly NoSQL data stores to compete in a subset of data centric applications with traditional relational database systems like Oracle, Microsoft SQL Server, MySQL, Postgres and others.

Today: Supercomputing for the rest of us

This brings us to today, when the “science fiction” crashed UFO technology of In-Memory Data Grid which has long been available to supercomputer researchers, high energy physicists and high end investment bankers has finally been delivered in a standardized way to all Java developers around the world.

“I’m stoked to be a participant in the democratization of supercomputing. Even the word supercomputing is a bit off because it evokes wizards and an arcane sect of computer programming. What we are talking about today is just the new normal for software.” said Miko Matsumura, VP of Marketing at Hazelcast.
Hazelcast, NoSQL on Top IMDG underneath

I recently referred to Hazelcast as the “Mullet” hairstyle. This was an absurd hairstyle popularized in the 1980s which was adopted by a very conflicted middle America trying to choose between a rebellious party and long-haired rock-and-roll aesthetic and a short corporate-friendly business haircut. The result was the hilarious “all business up front and party in the back” mullet. Hazelcast provides a number of “all business” and developer friendly interfaces up top such as a Map/Key Value Store interface familiar to all MoSQL developers. But underneath, Hazelcast deploys as a distributed In-Memory Data Grid (IMDG). Developers shouldn’t care much about this, however, it provides IT operations with an elastically scalable and highly performant system. High performance means not only faster transactions, but of course greatly reduced cost of hardware and doing more with less. Of course the “mullet” hairstyle was a greatly compromised “hair architecture” and the height of absurdity as far as aesthetics, but if Hazelcast achieves the level of popularity as the mullet did in the 1980’s I think my work will be done.

Hazelcast and JCache

Hazelcast is now drop-in “pin compatible” with both Oracle Coherence, the leading In-Memory Data Grid and Ehcache, the leading Java Caching solution.

  • JCache is the Java standard for In-Memory Computing
  • Spring Framework 4.1 already has JCache support, Java EE is coming
  • Hazelcast  3.3.1 passes all 463 JSR 107 TCK Tests
  • Hazelcast joins Oracle Coherence and Ehcache as the only JCache implementations to date
  • Hazelcast CEO Greg Luck wrote Ehcache
  • Hazelcast CEO Greg Luck is co-author of the JCache specification alongside Brian Oliver, Architect of Oracle Coherence