All Downloads are FREE. Search and download functionalities are using the official Maven repository.

delta.README.html Maven / Gradle / Ivy




 
 
  
  
  

vFabric GemFire®

Delta Propagation

Java Caching API Programming Example


The Delta Propagation example uses two servers and two clients with simple and nested object types to demonstrate the delta propagation feature of GemFire. The example used the distributed system property, delta-propagation, and the region level property, cloning-enabled.

The example is located in the SampleCode distribution under examples/dist/delta.

The two servers connect as peers in a distributed system, and each client runs as a standalone GemFire application and connects to one server. The four processes are:

  • A client, feederClient, which connects to the server1 and updates its cache, causing the distribution of deltas to the server
  • A server, server1, which receives the delta updates from feederClient, updates its own cache, and distributes the deltas to server2.
  • The other server, server2, which receives delta distributions from server1 and updates it own cache.
  • The other client, receiverClient, which registers with server2 to receives deltas updates.
Both servers apply the delta to update the value objects in their process.

To run the example, take following steps.

  • Open four shells.
  • In each shell, configure your environment according to the instructions provided in examples/EnvSetup.html.
  • In each shell, change the current working directory to examples/dist/delta.
  • Start both the servers followed by the receiverClient and finally, the feederClient.
The example uses 10347 as the mcast port. To change this, set the mcast-port value in the server_gemfire.properties file supplied with the example.

The example uses the following cache server configuration files as input when starting the servers for cache initialization.

  • examples/delta/server1.xml.
  • examples/delta/server2.xml.
  • examples/delta/cloningEnabledOnServer1.xml.
  • examples/delta/cloningEnabledOnServer2.xml.
The first two files run the servers with the default setting - cloning turned off. The last two files set cloning-enabled to true. In these configurations, the value object is cloned before they are updated with the delta.

The corresponding configuration files for the clients are:

  • examples/delta/receiverClient.xml.
  • examples/delta/feederClient.xml.
  • examples/delta/cloningEnabledOnReceiverClient.xml.
  • examples/delta/cloningEnabledOnFeederClient.xml.

Running the servers

Start server1, with the default cloning property by using the following command.

       java -DgemfirePropertyFile=server_gemfire.properties \
             delta.DeltaCacheServer server1.xml

Use server2.xml to start server2.

       java -DgemfirePropertyFile=server_gemfire.properties \
             delta.DeltaCacheServer server2.xml
Use cloningEnabledOnServer1.xml or cloningEnabledOnServer2.xml to enable cloning instead. The servers use the same gemfire.properties file, and hence, are peers to each other in their distributed system. Once started, the servers wait for clients to connect.

Running the clients

Start receiverClient and feederClient in their separate shells.

To start receiverClient execute the following command for the default setting for cloning.

       java -DgemfirePropertyFile=client_gemfire.properties \
             delta.DeltaReceiverClient receiverClient.xml

Use feederClient.xml to run DeltaFeederClient. Use cloningEnabledOnReceiverClient.xml or cloningEnabledOnFeederClient.xml to have the value objects cloned before applying the updates. Both clients use the same client_gemfire.properties file.

The example demonstrates four different kinds of delta examples. These are selected based on the option provided.
  • Simple - A very basic implementation of delta. The class SimpleDelta has two fields - an int and a double.
  • Synchronized - For extracting and applying delta in synchronized block. The SynchronizedDelta class used synchronized versions of the toDelta and fromDelta, and demonstrates a way to protect against object inconsistency due to concurrent updates. Enabling cloning on the region preempts the need for such synchronization.
  • Nested - Delta object contain another delta object. The NestedDelta class has two fields, a int and a NestedType. NestedType is an inner class of NestedDelta, and consists of two fields, a boolean and an int.
  • Collection - Delta object has collection and this contain delta objects. The DeltaCollection class has one field, a HashMap.

By default, feederClient will feed simple delta objects to server1. You can change this behavior by specifying [ synchronized | nested | collection ] as an argument to use the synchronized, nested or collection delta example.

Both clients define the same cache region named cs_region. The second cache client connects and feeds deltas into the cs_region region. To run feederClient with cloning enabled, provide cloningEnabledOnFeederClient.xml for cache initialization.

java -DgemfirePropertyFile=client_gemfire.properties \ delta.DeltaFeederClient feederClient.xml Simple delta feed

A simple implementation of Delta, located at examples/dist/delta/SimpleDelta.java, is used as feed. This object has two fields:

  private int intVal;
  private double doubleVal;

This example changes combination of field on each update. So in the logs you would see these fields getting extracted or updated.

Logs output like shown below is displayed on the console of feeder client:

Region name is /cs_region
FEEDER_THREAD_0 putting _key, value=SimpleDelta [ hasDelta = true, intVal = 1, doubleVal = {0.5404765394313877} ]
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 1, doubleVal = {0.5404765394313877} ]
 Extracted delta from field 'intVal' = 1
FEEDER_THREAD_0 putting _key, value=SimpleDelta [ hasDelta = true, intVal = 1, doubleVal = {2.0} ]
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 1, doubleVal = {2.0} ]
 Extracted delta from field 'doubleVal' = 2.0
FEEDER_THREAD_0  putting _key, value=SimpleDelta [ hasDelta = true, intVal = 3, doubleVal = {3.0} ]
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 3, doubleVal = {3.0} ]
 Extracted delta from field 'intVal' = 3
 Extracted delta from field 'doubleVal' = 3.0
.
.
.

Logs output like shown below is displayed on the console of both the servers:

Initialized
Applying delta to SimpleDelta [ hasDelta = false, intVal = 2147483647, doubleVal = {0.5404765394313877} ]
 Applied delta to field 'intVal' = 1
Applying delta to SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {0.5404765394313877} ]
 Applied delta to field 'doubleVal' = 2.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {2.0} ]
 Applied delta to field 'intVal' = 3
 Applied delta to field 'doubleVal' = 3.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 3, doubleVal = {3.0} ]
 Applied delta to field 'intVal' = 4
Applying delta to SimpleDelta [ hasDelta = false, intVal = 4, doubleVal = {3.0} ]
 Applied delta to field 'doubleVal' = 5.0
.
.
.

Logs output like shown below is displayed on the console of receiver client:

Region name is /cs_region
After Create: SimpleDelta [ hasDelta = false, intVal = 2147483647, doubleVal = {0.5404765394313877} ]
-----------
Applying delta to SimpleDelta [ hasDelta = false, intVal = 2147483647, doubleVal = {0.5404765394313877} ]
 Applied delta to field 'intVal' = 1
After Update: SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {0.5404765394313877} ]
-----------
Applying delta to SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {0.5404765394313877} ]
 Applied delta to field 'doubleVal' = 2.0
After Update: SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {2.0} ]
-----------
Applying delta to SimpleDelta [ hasDelta = false, intVal = 1, doubleVal = {2.0} ]
 Applied delta to field 'intVal' = 3
 Applied delta to field 'doubleVal' = 3.0
After Update: SimpleDelta [ hasDelta = false, intVal = 3, doubleVal = {3.0} ]
-----------
Applying delta to SimpleDelta [ hasDelta = false, intVal = 3, doubleVal = {3.0} ]
 Applied delta to field 'intVal' = 4
After Update: SimpleDelta [ hasDelta = false, intVal = 4, doubleVal = {3.0} ]
-----------
.
.
.
Synchronized delta feed

A synchronized implementation of Delta, located at examples/dist/delta/SynchronizedDelta.java, is used as feed. There are 5 threads performing concurrent updates on the entries in the region. The object has two fields:

  private long longVal;
  private double doubleVal;

This example changes combination of field on each update. So in the logs you would see this fields getting extracted or updated.

Logs output like shown below is displayed on the console of feeder client:

Region name is /cs_region
FEEDER_THREAD_2 create _key, value=SynchronizedDelta [ hasDelta = false, longVal = 23, doubleVal = {0.3114208337382478} ]
FEEDER_THREAD_1 create _key, value=SynchronizedDelta [ hasDelta = false, longVal = 22, doubleVal = {0.6809330603215199} ]
FEEDER_THREAD_0 create _key, value=SynchronizedDelta [ hasDelta = false, longVal = 21, doubleVal = {0.42404865258767743} ]
FEEDER_THREAD_4 create _key, value=SynchronizedDelta [ hasDelta = false, longVal = 25, doubleVal = {0.1981782306789458} ]
FEEDER_THREAD_3 create _key, value=SynchronizedDelta [ hasDelta = false, longVal = 24, doubleVal = {0.18805155080261315} ]
FEEDER_THREAD_0  putting _key, value=SynchronizedDelta [ hasDelta = true, longVal = 1246528738932131000, doubleVal = {0.40517
71974740377} ]
FEEDER_THREAD_4  putting _key, value=SynchronizedDelta [ hasDelta = true, longVal = 1246528738936074000, doubleVal = {0.76960
8638345658} ]
Extracting delta in synchronized block from SynchronizedDelta [ hasDelta = true, longVal = 1246528738932131000, doubleVal = {
0.4051771974740377} ]
 Extracted delta from field 'longVal' = 1246528738932131000
 Extracted delta from field 'doubleVal' = 0.4051771974740377
FEEDER_THREAD_0 putting _key, value=SynchronizedDelta [ hasDelta = true, longVal = 1246528738987661000, doubleVal = {0.405177
1974740377} ]
Extracting delta in synchronized block from SynchronizedDelta [ hasDelta = true, longVal = 1246528738987661000, doubleVal = {
0.4051771974740377} ]
 Extracted delta from field 'longVal' = 1246528738987661000
FEEDER_THREAD_0 putting _key, value=SynchronizedDelta [ hasDelta = true, longVal = 1246528738987661000, doubleVal = {0.181456
4589583273} ]
.
.
.

Logs output like shown below is displayed on the console of both the servers:

Region name is /cs_region
After Create: SynchronizedDelta [ hasDelta = false, longVal = 23, doubleVal = {0.3114208337382478} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 24, doubleVal = {0.18805155080261315} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 22, doubleVal = {0.6809330603215199} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 21, doubleVal = {0.42404865258767743} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 25, doubleVal = {0.1981782306789458} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 25, doubleVal = {0.1981782306789458} ]
 Applied delta to field 'longVal' = 1246528738932131000
 Applied delta to field 'doubleVal' = 0.4051771974740377
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246528738932131000, doubleVal = {0.4051771974740377} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 1246528738932131000, doubleVal = {0.4051771974740377} ]
 Applied delta to field 'longVal' = 1246528738987661000
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246528738987661000, doubleVal = {0.4051771974740377} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 1246528738987661000, doubleVal = {0.4051771974740377} ]
 Applied delta to field 'doubleVal' = 0.1814564589583273
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246528738987661000, doubleVal = {0.1814564589583273} ]
-----------
.
.
.

Logs output like shown below is displayed on the console of receiver client:

Region name is /cs_region
After Create: SynchronizedDelta [ hasDelta = false, longVal = 26, doubleVal = {0.34843115669804614} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 25, doubleVal = {0.3108178409880603} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 23, doubleVal = {0.8693684686894905} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 22, doubleVal = {0.6714219881196654} ]
-----------
After Update: SynchronizedDelta [ hasDelta = false, longVal = 24, doubleVal = {0.7907098370145067} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 24, doubleVal = {0.7907098370145067} ]
 Applied delta to field 'longVal' = 1246529498684743000
 Applied delta to field 'doubleVal' = 0.43574465916013716
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246529498684743000, doubleVal = {0.43574465916013716} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 1246529498684743000, doubleVal = {0.43574465916013716} ]
 Applied delta to field 'longVal' = 1246529498710952000
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246529498710952000, doubleVal = {0.43574465916013716} ]
-----------
Applying delta in synchronized block to SynchronizedDelta [ hasDelta = false, longVal = 1246529498710952000, doubleVal = {0.43574465916013716} ]
 Applied delta to field 'longVal' = 1246529498686279000
 Applied delta to field 'doubleVal' = 0.7779255067881132
After Update: SynchronizedDelta [ hasDelta = false, longVal = 1246529498686279000, doubleVal = {0.7779255067881132} ]
-----------
.
.
.
Nested delta feed

In this case, an implementation of Delta, located at examples/dist/delta/NestedDelta.java, is used as feed. This implementation has two fields:

  private int intVal;
  private NestedType nestedDelta = new NestedType();

nestedDelta is an instance of another implementation of Delta, NestedType. It has following fields:

    private boolean flag; 
    private int id = -1; 

This example changes the fields intVal and nestedDelta of NestedDelta with each update. The field intVal will gets incremented with each update. The field id of NestedType too gets incremented by one with each update. So in the logs you would see only these two fields getting extracted or updated.

Logs output like shown below is displayed on the console of feeder client:

Region name is /cs_region
FEEDER_THREAD_0 putting _key, value=NestedDelta [ hasDelta = true, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
Extracting delta from NestedDelta [ hasDelta = true, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
 Wrote modified field 'intVal' = 1 to DataOutput
FEEDER_THREAD_0 putting _key, value=NestedDelta [ hasDelta = true, intVal = 1, nestedDelta = NestedType [ hasDelta = true, fldSwitch = false, fldIdent = 2 ] ]
Extracting delta from NestedDelta [ hasDelta = true, intVal = 1, nestedDelta = NestedType [ hasDelta = true, fldSwitch = false, fldIdent = 2 ] ]
Extracting delta to NestedType [ hasDelta = true, fldSwitch = false, fldIdent = 2 ]
 Wrote modified field 'fldIdent' = 2 to DataOutput
 Wrote modified field 'nestedDelta' = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ] to DataOutput
FEEDER_THREAD_0 putting _key, value=NestedDelta [ hasDelta = true, intVal = 3, nestedDelta = NestedType [ hasDelta = true, fldSwitch = true, fldIdent = 3 ] ]
Extracting delta from NestedDelta [ hasDelta = true, intVal = 3, nestedDelta = NestedType [ hasDelta = true, fldSwitch = true, fldIdent = 3 ] ]
 Wrote modified field 'intVal' = 3 to DataOutput
Extracting delta to NestedType [ hasDelta = true, fldSwitch = true, fldIdent = 3 ]
 Wrote modified field 'fldSwitch' = true to DataOutput
 Wrote modified field 'fldIdent' = 3 to DataOutput
 Wrote modified field 'nestedDelta' = NestedType [ hasDelta = false, fldSwitch = true, fldIdent = 3 ] to DataOutput
.
.
.

Logs output like shown below is displayed on the console of both the servers:

Initialized
Applying delta to NestedDelta [ hasDelta = false, intVal = 2147483647, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
 Applied delta to field 'intVal' = 1
Applying delta to NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
Applying delta to NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ]
 Applied delta to field 'fldIdent' = 2
Applying delta to NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ] ]
 Applied delta to field 'intVal' = 3
Applying delta to NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ]
 Applied delta to field 'fldSwitch' = true
 Applied delta to field 'fldIdent' = 3
Applying delta to NestedDelta [ hasDelta = false, intVal = 3, nestedDelta = NestedType [ hasDelta = false, fldSwitch = true, fldIdent = 3 ] ]
 Applied delta to field 'intVal' = 4
Applying delta to NestedType [ hasDelta = false, fldSwitch = true, fldIdent = 3 ]
 Applied delta to field 'fldSwitch' = false
Applying delta to NestedDelta [ hasDelta = false, intVal = 4, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 3 ] ]
.
.
.

Logs output like shown below is displayed on the console of receiver client:

Region name is /cs_region
After Create: NestedDelta [ hasDelta = false, intVal = 2147483647, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
-----------
Applying delta to NestedDelta [ hasDelta = false, intVal = 2147483647, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
 Applied delta to field 'intVal' = 1
After Update: NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
-----------
Applying delta to NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ] ]
Applying delta to NestedType [ hasDelta = false, fldSwitch = false, fldIdent = -1 ]
 Applied delta to field 'fldIdent' = 2
After Update: NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ] ]
-----------
Applying delta to NestedDelta [ hasDelta = false, intVal = 1, nestedDelta = NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ] ]
 Applied delta to field 'intVal' = 3
Applying delta to NestedType [ hasDelta = false, fldSwitch = false, fldIdent = 2 ]
 Applied delta to field 'fldSwitch' = true
 Applied delta to field 'fldIdent' = 3
After Update: NestedDelta [ hasDelta = false, intVal = 3, nestedDelta = NestedType [ hasDelta = false, fldSwitch = true, fldIdent = 3 ] ]
-----------
.
.
.
Collection delta feed

In this case, an implementation of Delta, located at examples/dist/delta/DeltaCollection.java, is used as feed. This implementation has one field:

    private HashMap map = new HashMap(); 

This example changes the field map with each update, may contain Delta objects. So in the logs you would see these fields getting extracted or updated.

Logs output like shown below is displayed on the console of feeder client:

Region name is /cs_region
Extracting delta from DeltaCollection [ hasDelta = true, map = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
 _key13=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {13.0} ], _key2_added=SimpleDelta [ hasDelta = false, intVal = 2, doubleVal = {2.0} ], \
 _key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key16=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {16.0} ], \
 _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], _key19=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {19.0} ], \
 _key8_added=SimpleDelta [ hasDelta = false, intVal = 8, doubleVal = {8.0} ], _key5_added=SimpleDelta [ hasDelta = false, intVal = 5, doubleVal = {5.0} ], \
 _key11_added=SimpleDelta [ hasDelta = false, intVal = 11, doubleVal = {11.0} ], _key23_added=SimpleDelta [ hasDelta = false, intVal = 23, doubleVal = {23.0} ], \
 _key20_added=SimpleDelta [ hasDelta = false, intVal = 20, doubleVal = {20.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
 _key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key22=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {22.0} ], \
 _key17_added=SimpleDelta [ hasDelta = false, intVal = 17, doubleVal = {17.0} ], _key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], \
 _key1=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {1.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
 _key4=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {4.0} ], _key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], \
 _key7=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {7.0} ], _key10=SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {10.0} ], \
 _key14_added=SimpleDelta [ hasDelta = false, intVal = 14, doubleVal = {14.0} ]} ]
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {22.0} ]
 Extracted delta from field 'doubleVal' = 22.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {13.0} ]
 Extracted delta from field 'doubleVal' = 13.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {16.0} ]
 Extracted delta from field 'doubleVal' = 16.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {19.0} ]
 Extracted delta from field 'doubleVal' = 19.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {1.0} ]
 Extracted delta from field 'doubleVal' = 1.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {4.0} ]
 Extracted delta from field 'doubleVal' = 4.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {7.0} ]
 Extracted delta from field 'doubleVal' = 7.0
Extracting delta from SimpleDelta [ hasDelta = true, intVal = 0, doubleVal = {10.0} ]
 Extracted delta from field 'doubleVal' = 10.0

Logs output like shown below is displayed on the console of both the servers:

Initialized
Applying delta to DeltaCollection [ hasDelta = false, map = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
_key12=SimpleDelta [ hasDelta = false, intVal = 37, doubleVal = {37.0} ], _key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {38.0} ], \
_key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key15=SimpleDelta [ hasDelta = false, intVal = 40, doubleVal = {40.0} ], \
_key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {41.0} ], _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], \
_key18=SimpleDelta [ hasDelta = false, intVal = 43, doubleVal = {43.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {44.0} ], \
_key21=SimpleDelta [ hasDelta = false, intVal = 46, doubleVal = {46.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
_key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key24=SimpleDelta [ hasDelta = false, intVal = 49, doubleVal = {49.0} ], \
_key9=SimpleDelta [ hasDelta = false, intVal = 34, doubleVal = {34.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {47.0} ], \
_key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], _key0=SimpleDelta [ hasDelta = false, intVal = 25, doubleVal = {25.0} ], \
_key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {26.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
_key3=SimpleDelta [ hasDelta = false, intVal = 28, doubleVal = {28.0} ], _key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {29.0} ], \
_key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], _key6=SimpleDelta [ hasDelta = false, intVal = 31, doubleVal = {31.0} ], \
_key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {32.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {35.0} ]} ]
Applying delta to SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {47.0} ]
 Applied delta to field 'doubleVal' = 22.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {38.0} ]
 Applied delta to field 'doubleVal' = 13.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {41.0} ]
 Applied delta to field 'doubleVal' = 16.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {44.0} ]
 Applied delta to field 'doubleVal' = 19.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {26.0} ]
 Applied delta to field 'doubleVal' = 1.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {29.0} ]
 Applied delta to field 'doubleVal' = 4.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {32.0} ]
 Applied delta to field 'doubleVal' = 7.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {35.0} ]
 Applied delta to field 'doubleVal' = 10.0
 Applied delta on DeltaCollection's field 'map' = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
 _key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {13.0} ], _key2_added=SimpleDelta [ hasDelta = false, intVal = 2, doubleVal = {2.0} ], \
 _key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {16.0} ], \
 _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {19.0} ], \
 _key8_added=SimpleDelta [ hasDelta = false, intVal = 8, doubleVal = {8.0} ], _key5_added=SimpleDelta [ hasDelta = false, intVal = 5, doubleVal = {5.0} ], \
 _key11_added=SimpleDelta [ hasDelta = false, intVal = 11, doubleVal = {11.0} ], _key23_added=SimpleDelta [ hasDelta = false, intVal = 23, doubleVal = {23.0} ], \
 _key20_added=SimpleDelta [ hasDelta = false, intVal = 20, doubleVal = {20.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
 _key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {22.0} ], \
 _key17_added=SimpleDelta [ hasDelta = false, intVal = 17, doubleVal = {17.0} ], _key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], \
 _key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {1.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
 _key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {4.0} ], _key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], \
 _key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {7.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {10.0} ], \
 _key14_added=SimpleDelta [ hasDelta = false, intVal = 14, doubleVal = {14.0} ]}

Logs output like shown below is displayed on the console of receiver client:

Region name is /cs_region
After Create: DeltaCollection [ hasDelta = false, map = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
_key12=SimpleDelta [ hasDelta = false, intVal = 37, doubleVal = {37.0} ], _key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {38.0} ], \
_key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key15=SimpleDelta [ hasDelta = false, intVal = 40, doubleVal = {40.0} ], \
_key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {41.0} ], _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], \
_key18=SimpleDelta [ hasDelta = false, intVal = 43, doubleVal = {43.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {44.0} ], \
_key21=SimpleDelta [ hasDelta = false, intVal = 46, doubleVal = {46.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
_key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key24=SimpleDelta [ hasDelta = false, intVal = 49, doubleVal = {49.0} ], \
_key9=SimpleDelta [ hasDelta = false, intVal = 34, doubleVal = {34.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {47.0} ], \
_key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], _key0=SimpleDelta [ hasDelta = false, intVal = 25, doubleVal = {25.0} ], \
_key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {26.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
_key3=SimpleDelta [ hasDelta = false, intVal = 28, doubleVal = {28.0} ], _key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {29.0} ], \
_key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], _key6=SimpleDelta [ hasDelta = false, intVal = 31, doubleVal = {31.0} ], \
_key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {32.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {35.0} ]} ]
-----------
Applying delta to DeltaCollection [ hasDelta = false, map = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
_key12=SimpleDelta [ hasDelta = false, intVal = 37, doubleVal = {37.0} ], _key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {38.0} ], \
_key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key15=SimpleDelta [ hasDelta = false, intVal = 40, doubleVal = {40.0} ], \
_key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {41.0} ], _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], \
_key18=SimpleDelta [ hasDelta = false, intVal = 43, doubleVal = {43.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {44.0} ], \
_key21=SimpleDelta [ hasDelta = false, intVal = 46, doubleVal = {46.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
_key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key24=SimpleDelta [ hasDelta = false, intVal = 49, doubleVal = {49.0} ], \
_key9=SimpleDelta [ hasDelta = false, intVal = 34, doubleVal = {34.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {47.0} ], \
_key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], _key0=SimpleDelta [ hasDelta = false, intVal = 25, doubleVal = {25.0} ], \
_key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {26.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
_key3=SimpleDelta [ hasDelta = false, intVal = 28, doubleVal = {28.0} ], _key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {29.0} ], \
_key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], _key6=SimpleDelta [ hasDelta = false, intVal = 31, doubleVal = {31.0} ], \
_key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {32.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {35.0} ]} ]
Applying delta to SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {47.0} ]
 Applied delta to field 'doubleVal' = 22.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {38.0} ]
 Applied delta to field 'doubleVal' = 13.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {41.0} ]
 Applied delta to field 'doubleVal' = 16.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {44.0} ]
 Applied delta to field 'doubleVal' = 19.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {26.0} ]
 Applied delta to field 'doubleVal' = 1.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {29.0} ]
 Applied delta to field 'doubleVal' = 4.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {32.0} ]
 Applied delta to field 'doubleVal' = 7.0
Applying delta to SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {35.0} ]
 Applied delta to field 'doubleVal' = 10.0
 Applied delta on DeltaCollection's field 'map' = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
 _key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {13.0} ], _key2_added=SimpleDelta [ hasDelta = false, intVal = 2, doubleVal = {2.0} ], \
 _key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {16.0} ], \
 _key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {19.0} ], \
 _key8_added=SimpleDelta [ hasDelta = false, intVal = 8, doubleVal = {8.0} ], _key5_added=SimpleDelta [ hasDelta = false, intVal = 5, doubleVal = {5.0} ], \
 _key11_added=SimpleDelta [ hasDelta = false, intVal = 11, doubleVal = {11.0} ], _key23_added=SimpleDelta [ hasDelta = false, intVal = 23, doubleVal = {23.0} ], \
 _key20_added=SimpleDelta [ hasDelta = false, intVal = 20, doubleVal = {20.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
 _key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {22.0} ], \
 _key17_added=SimpleDelta [ hasDelta = false, intVal = 17, doubleVal = {17.0} ], _key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], \
 _key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {1.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
 _key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {4.0} ], _key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], \
 _key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {7.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {10.0} ], \
 _key14_added=SimpleDelta [ hasDelta = false, intVal = 14, doubleVal = {14.0} ]}
After Update: DeltaCollection [ hasDelta = false, map = {_key11=SimpleDelta [ hasDelta = false, intVal = 36, doubleVal = {36.0} ], \
_key13=SimpleDelta [ hasDelta = false, intVal = 38, doubleVal = {13.0} ], _key2_added=SimpleDelta [ hasDelta = false, intVal = 2, doubleVal = {2.0} ], \
_key14=SimpleDelta [ hasDelta = false, intVal = 39, doubleVal = {39.0} ], _key16=SimpleDelta [ hasDelta = false, intVal = 41, doubleVal = {16.0} ], \
_key17=SimpleDelta [ hasDelta = false, intVal = 42, doubleVal = {42.0} ], _key19=SimpleDelta [ hasDelta = false, intVal = 44, doubleVal = {19.0} ], \
_key8_added=SimpleDelta [ hasDelta = false, intVal = 8, doubleVal = {8.0} ], _key5_added=SimpleDelta [ hasDelta = false, intVal = 5, doubleVal = {5.0} ], \
_key11_added=SimpleDelta [ hasDelta = false, intVal = 11, doubleVal = {11.0} ], _key23_added=SimpleDelta [ hasDelta = false, intVal = 23, doubleVal = {23.0} ], \
_key20_added=SimpleDelta [ hasDelta = false, intVal = 20, doubleVal = {20.0} ], _key20=SimpleDelta [ hasDelta = false, intVal = 45, doubleVal = {45.0} ], \
_key8=SimpleDelta [ hasDelta = false, intVal = 33, doubleVal = {33.0} ], _key22=SimpleDelta [ hasDelta = false, intVal = 47, doubleVal = {22.0} ], \
_key17_added=SimpleDelta [ hasDelta = false, intVal = 17, doubleVal = {17.0} ], _key23=SimpleDelta [ hasDelta = false, intVal = 48, doubleVal = {48.0} ], \
_key1=SimpleDelta [ hasDelta = false, intVal = 26, doubleVal = {1.0} ], _key2=SimpleDelta [ hasDelta = false, intVal = 27, doubleVal = {27.0} ], \
_key4=SimpleDelta [ hasDelta = false, intVal = 29, doubleVal = {4.0} ], _key5=SimpleDelta [ hasDelta = false, intVal = 30, doubleVal = {30.0} ], \
_key7=SimpleDelta [ hasDelta = false, intVal = 32, doubleVal = {7.0} ], _key10=SimpleDelta [ hasDelta = false, intVal = 35, doubleVal = {10.0} ], \
_key14_added=SimpleDelta [ hasDelta = false, intVal = 14, doubleVal = {14.0} ]} ]
-----------

To end this example, press CTRL-C in the server, peer and receiver client shells, then enter exit in shells to close them.






© 2015 - 2024 Weber Informatics LLC | Privacy Policy