1 Reply Latest reply on Jan 28, 2019 2:50 PM by P Fry-Oracle

    Federated Caching's Eventual Consistency : A potential solution federating Incubator Command pattern Cache and WRITE QUORUM

    3673303

      Problem Summary

      ---------------------------------------------------

      Federated Caching Service Data Coherence solution approach (Similar to Cassandra WRITE QUORUM)

       

      Problem Description

      ---------------------------------------------------

      Federated Caching Service is unable to process massive exchange of data between 2 sites approximately (16GB)

       

      I have deployed Federated Caching in production but some services get marked as Error Status as soon as Federated services

      reached the following peak load:

       

      Bytes Sent/sec : 8667033

      Current Msgs Sent/sec : 40

      Throughput Usage: 63 Mbps

      Total Bytes Sent: 16GB

      Total Entry Sent: 57 Millions

      Total Records Sent: 10 Millions

      Total Message Sent: 691,726

       

      I happens when a massive data loading from database is performed in one site and later one is replicated to the

      remote site using Federated Caching. A total of 16GB of data is being sent over the network channel.

      This is basically data to be used actively by consumer clients at both sites in active/active mode willing to perform calculations over them.

       

      Different clients run at the same time and we would like to improve data coherence across to sites remotely with Federated Caching.

      The other solution is hide the problems caused for Eventual Consistency inherent to Federated Caching Feature

       

      As an alternative I am considering federate a cache that  hold the load actions instead of the data itself.

      In a few words use the Coherence Command pattern and federate the  cache used to store the commands to the remote site.

      That way when the federated command reach the remote site the data loading process can be launch at the same time.

      Achieving something that could help to increase data coherence  between the two sites.

      The small variation here is that the Command invoked in the primary site will not  finish his execution till it has received confirmation

      that the Remote Command executed in the REmote Site  have finished to perform the load. This concept is similar to Cassandra WRITE Quorum.

       

      Any opinion about the above solution is greatly appreciated.

       

      Regards

       

      Michel