Oracle True Cache helps a leading global financial conglomerate to serve their users with reliable, high speed and high volume data with a scalable and easy to deploy and easy to manage caching solution.

 

Build a scalable caching solution for a critical and widely used financial platform

Applications frequently employ caching solutions to boost their performance and to reduce the load on their primary database. This becomes all the more crucial for financial platforms that tens of thousands of users rely on for getting financial data every single day. One such platform, a leading global stock exchange, took on the challenge to serve their clients and users with reliable, high volume, fast response data with a scalable and easy to manage caching solution. They have several trillion in global market cap and need to transact on average in less than 200 microseconds.

 

They evaluated various solutions in the market, and faced with the complexity of managing the cache data as well as larger cache clusters that were needed, they turned to Oracle True Cache to create an automatically managed cache for their primary database that eliminated the need for large clusters and also provided consistent data.

 

At a Glance

Oracle True Cache is an in-memory, consistent, and automatically managed SQL and object cache for Oracle Database. It offers a powerful solution for data caching in enterprise environments, effectively addressing challenges posed by growing data volumes and the need for real-time access. By improving application response times and reducing database server loads, it helps organizations achieve reliable, low-latency data access for critical applications. True Cache is built with scalability and performance as core principles, ensuring it meets the demands of modern enterprise systems.

 

Data at scale is the lifeblood

The engineers in the organization deal with data and at high scale, which is the lifeblood of their platform. There are about a dozen financial platforms and exchanges in their portfolio and several thousands of contracts and trade entities. Heavy data volume reaching surges of 1000 billion transactions per day are not unheard of! A few hundred terabytes of data flow through the system on a daily basis. And, as previously stated, on an average there is a need to transact in less than 200 microseconds. One can clearly fathom the challenges involved in dealing with such high scale of data and also being able to provide nippy user experiences through fast response times.

 

Oracle already a key technology partner

Oracle is a primary transactional database platform supporting their various businesses. There are databases using Exadata as well as RAC (Real Application Cluster) supporting the OLTP and Data Mart environments.


The large transactional databases can run about 100 to 200 TB each, and they can easily produce about 5 to 15 TB of redo logs every day! There are also large transactional databases with history – archived data of about 250 TB using HCC compression. Total database size can span upwards of 5-6 TB.

 

Need for an Enterprise Grade Caching solution

The goal is to build a cache tier separate from the database RAC servers, to boost the application performance and also to reduce the read load on the primary database. The goal is to maximize the benefit when the buffer cache or I/O is under pressure. The cache being part of the application tier would help offloading the heavy read loads from the primary database systems.

About 10 TB (still a large number for a cache) out of around 100 TB is frequently accessed for read queries which can be put in True Cache.

 

Challenges faced when they evaluated alternate caching solutions

Developers have to change the application to manage the cache. This is a huge painpoint, since now in order to solve a performance and load problem, it is introducing a cache management problem.

 

For example, when there is a cache miss, the developers need to write the application in such a way that it reads data from the primary database and the app needs to have custom code written to load the data in the cache.  Developers also are responsible for cache consistency with the database, which is a challenge to deal with to write custom code to keep the cache in sync with the database. Some of the solutions work around this by allowing applications to configure a time-to-live for the data in the cache, but that does not always work well. Frequent invalidations reduce cache effectiveness and add load to the backend database! Less frequent invalidations result in a higher chance of getting stale data from the cache. Application schema changes on the database side can invalidate the entire cache content.

 

Also in order to deal with the 10 TB of data that needs to be cached, a couple of hundred nodes of cache cluster was needed with one of the popular caching systems in the market. That means now the cluster management of the cache cluster needs to be handled by the developers/administrators of the system.

 

Oracle True Cache comes to the fore

With Oracle True Cache deployed on an enterprise commodity machine with 2 TB of RAM (and with NvMe SSD attached storage configured to extend the cache storage by another 8 TB), a single machine could essentially handle the read load and serve as the cache, instead of the couple of hundred nodes needed in alternate solutions. For the purpose of load-balancing , the customer chooses to have a few additional True Cache nodes (but that is purely for the purpose of load-balancing and availability). The high volume of reads as well as the size of data could well be handled by a single True Cache instance which is formidable.

 

Oracle True Cache deployment

 

Business Results Achieved

  • A performance improving cache tier for offloading heavy I/O from the database systems with extreme read load   
  • No application change with quick time to value
  • Can serve fresh (most recent and consistent) data needed for subset of read queries (for some critical use-cases)
  • Around 42%-86% improvement in query run times
  • Achieved 2x faster queries for large data reads using Oracle True Cache
  • Easy to use, easy to manage cache
  • Improved read scalability to support workload growth
  • Data in true cache automatically synchronized, parallel processed, with reduction in nodes which may have been needed for alternate caching solutions
  • True Cache manages multiple concurrent requests for same data blocks in memory significantly better than regular instance.

 

Benefits experienced using Oracle True Cache

  • As True Cache supports all features of the Oracle database, hence no application change is required resulting in quick time to value.
  • The application uses different data types like relational, JSON, Text, features like indexes, secondary index, partitioning, security features. All these are supported out of the box by Oracle True Cache which made it extremely easy for the customer’s development team
  • No new developer or operational skill set, API, or tooling needed
  • Data in True Cache is automatically synchronized with the primary database (and in a consistent manner) so there is no need for cache invalidation
  • Oracle True Cache supports parallel processing by taking advantage of multi-core architecture
  • The customer saw tangible benefits with both high transaction volume OLTP applications as well as with long-running analytical queries
  • The ability to spool to M2 or SSD disks enabled very large data volumes to be cached
  • The ability in True Cache to pin certain tables provided consistent query performance
  • The customer was able to use DML redirect feature to enable occasional writes to be propagated through True Cache

 

Looking ahead: the future of Oracle True Cache in the organization

The financial platform and exchange provider next plans to use Oracle True Cache with an even more rigorous around 3 million I/O operations per second, 200 GB/sec throughput application. Also in works are plans to take advantage of True Cache to deploy closer to application in geographically distributed systems to reduce network roundtrips which become a major time consumer. They also intend to work closely with Oracle True Cache team to study patterns in cache refresh latencies. As their chief architect of application services puts it: “Oracle True Cache is a great scalability option to support workload growth by moving read calls out of primary instance”.

 

Resources for further information:
True Cache home: https://www.oracle.com/truecache
User Guide: True Cache User Guide
Live Labs: How to access Live Labs for True Cache
Video: Video presentation