Introduction......................................................................................................................................2Defining and Configuring Key Concepts.........................................................................................3What is a “write-behind” cache?..................................................................................................3Configuring the write-behind function........................................................................................4What is a JPA loader?..................................................................................................................4JPA Loader Configuration...........................................................................................................5Exploring an Example Business Case..............................................................................................6Use Case: Portal Personalization.................................................................................................61. Populating the database........................................................................................................72. Warming the cache...............................................................................................................83. Generating load on the grid..................................................................................................94. Results..................................................................................................................................9Conclusion.....................................................................................................................................12Resources.......................................................................................................................................12Acknowledgements................................................................................................................13
Introduction
Applications typically use a data cache to increase performance, especially where the application predominantly uses read-only transactions. These applications directly update the database for changes in the data. The issue here is that as the load increases then the response time on theseupdates grows. Databases are not good at executing lots of concurrent transactions with a smallnumber of records per transaction. Databases are much better at executing batched transactions.Eventually, the database will saturate the CPU or disks and at that point the response time willrise as additional load is added. Conventional in-memory caches are also limited to only storingwhat can fit in the free memory of a JVM. Once we need to cache more than this amount of datathen thrashing occurs where the cache continuously evicts data to make room for other data. Therequired record must then be read continually thereby making the cache useless and exposing thedatabase to the full read load. This paper shows how WebSphere eXtreme Scale can allow all of the free memory of a cluster of JVMs to be used as a cache rather than just the free memory of asingle JVM. This allows the capacity of the cache to scale linearly as more JVMs areincorporated. If these JVMs are on additional physical servers with CPU, memory and network,then this allows linearly scalable, constant response time, servicing of read requests. It can also provide linearly scalable, constant response time, servicing of update requests by leveraging itswrite-behind technology. The linear scalability of WebSphere eXtreme Scale makes it ideal tohandle extreme transaction processing (XTP) scenarios. XTP is defined by Gartner as "anapplication style aimed at supporting the design, development, deployment, management andmaintenance of distributed TP applications characterized by exceptionally demanding performance, scalability, availability, security, manageability and dependability requirements.”(1)In this paper, we will illustrate how to optimize the performance of an application by leveragingWebSphere eXtreme Scale as the intermediary between the database and the application.WebSphere eXtreme Scale is a highly available, distributed in-memory cache with manyadvanced features to boost application performance. The write-behind function batches updatesto the back-end database asynchronously within a user configurable interval of time. The
Add a Comment