-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/58937/
-----------------------------------------------------------

(Updated May 5, 2017, 4:57 p.m.)


Review request for geode, Galen O'Sullivan, Hitesh Khamesra, and Udo Kohlmeyer.


Bugs: GEODE-2865
    https://issues.apache.org/jira/browse/GEODE-2865


Repository: geode


Description
-------

The state-flush algorithm relies on MembershipManager.waitForMessageState() to 
ensure that all operations have been received and applied to the cache prior to 
state replication starting.  For multicast there was a flaw in the algorithm 
caused by two things: 1) cache operations were being sent out-of-band, allowing 
them to be processed out of order with the state-flush message, and 2) 
JGroupsMessenger was only waiting for the messages to be dispatched by NAKACK2, 
which isn't necessarily the same as being dispatched to the DistributionManager 
Executor that processes the message.

Cache operation messages are now sent in-band.
JGroupsMessenger now tracks NAKACK2 (multicast) sequence numbers of messages 
dispatched to the DistributionManager and this is used in waitForMessageState() 
to make sure the messages have been queued.
If multicast is enabled we now flush the serial executor to in 
waitForMessageState() to make sure that all messages queued in it have been 
applied to the region.


Diffs (updated)
-----

  
geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
 e99eff2be344d54da67c257a0bfa73ad8268c4c6 
  
geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java
 8ae66d0b6839cfbd46b479d896104f54fd11a68d 
  
geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java
 9a64f531431e714916765d6d6c741841ef719fb8 
  
geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
 307b5948c02befee61d61b628c38b8b8b8693c4d 
  
geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
 7e798c8358aaec070d3dd9d04c2486bd33a21d9e 


Diff: https://reviews.apache.org/r/58937/diff/2/

Changes: https://reviews.apache.org/r/58937/diff/1-2/


Testing
-------

passes precheckin and modified unit tests


Thanks,

Bruce Schuchardt

Reply via email to