Good news for business can be bad news for IT—if critical applications cannot maintain responsiveness under too much data load. Applications that performed well in the lab during testing can bring the whole system down when usage increases or activity spikes. The Progress® DataXtend™ CE cache synchronization (or cache clustering) technology can help maintain application responsiveness and speed.
Scaling a system to serve more users is not as simple as buying additional hardware. The relational database can become a bottleneck and data integrity can be compromised, particularly when multiple applications need concurrent access to the same data. Applications using DataXtend CE data services have the built-in ability to scale and retain the performance value of caching without compromising data.
Topics:
Requirements for availability, scalability, and fault tolerance motivate the distribution of enterprise applications across software processes and hardware nodes. Typically, enterprise applications are deployed in clusters of cooperating or cloned servers to meet these requirements.
DataXtend CE's reliable cache clustering allows you to distribute your application in this manner without worrying about the integrity of your cached or persistent data. Without cache synchronization, the utility of cached data would be limited. Write operations would always require a database Read, or in the case of optimistic locking, many operations would result in optimistic failures.
In a distributed application, an DataXtend CE shared cache handles data access for each of the clustered processes. Cache synchronization maintains data freshness by using an underlying messaging system to propagate changes made in any cache to all of the cooperating caches.
To use cache clustering (or cache synchronization), you need to set up a messaging system and configure DataXtend CE to use it. At runtime, DataXtend CE handles cache clustering for you automatically. When DataXtend CE creates, updates, or deletes persistent data, a cache synchronization messenger propagates the appropriate information to the other processes in the cluster via the messaging system, such as Progress SonicMQ.
The cache synchronization service provides two types of message delivery: express and guaranteed. Express synchronization sends the synchronization message after a transaction completes. Guaranteed synchronization integrates the sending of the synchronization message with the transaction and also writes the message to a persistent store.
The express synchronization messenger eliminates the performance impact on transaction throughput by sending the synchronization message after a transaction completes. However, if the application server fails after DataXtend CE commits the transaction and before the messenger sends the message, the synchronization message will never be sent. In addition, some of the supported messaging systems do not persist the messages and a messaging system failure could produce the same effect-a message that never arrives.
For most applications, a missed message is not a problem. The next time that DataXtend CE tries to update the objects changed in that message, it would simply receive an optimistic control failure. Application code would need to read the updated object from the database and retry the transaction. Guaranteed messengers are the solution for applications that cannot afford to miss messages.
If your application has extremely high fault tolerance requirements that do not allow for losing a synchronization message, you should use guaranteed synchronization. Guaranteed synchronization ties the message processing to the transaction. The messenger sends the synchronization messages if and only if the database update commits successfully. The messenger also persists the message.
Cache clustering ensures fresh data by using a messaging system to keep distributed, cooperating caches up-to-date. The type of messaging appropriate for a particular system depends upon the requirements of the application:
For clusters of five or fewer caches, all on the same LAN, simple, lightweight messaging fits the bill.
DataXtend CE supplies cache synchronization messengers for the following messaging systems, one or more of which meet the requirements mentioned previously:
Object-oriented applications built on the advanced caching capabilities of DataXtend CE operate in complex environments where other enterprise applications that make use of traditional SQL access methods may be modifying the data as well. It is critical that updates made by these other enterprise applications are reflected in the object cache in a timely and consistent way.
Typical OR mapping and caching infrastructures follow a traditional "request-response" model for accessing data. In this model changes made by other enterprise applications would not be seen until an explicit request is made to reload the cached data. This can result in accessing stale or even inconsistent data.
To address the caching requirements of these complex environments, DataXtend CE features Continuous Cache Coordination (CCC) to proactively "push" changes made to the database out to the distributed cache. This ensures that the enterprise data caching infrastructure maintains fresh and consistent data. The advanced data caching technology of Continuous Cache Coordination is only available with DataXtend CE.
> OR Mapping
> Data Caching
> DataXtend CE
> Download DataXtend CE
> Data Integration Resource Center
> Partner Programs
Contact us to gain more insight and to learn more about the products and technologies from Progress Software.