You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by GitBox <gi...@apache.org> on 2020/04/21 05:28:33 UTC

[GitHub] [geode] albertogpz commented on a change in pull request #4928: GEODE-7971: Gw sender deliver TX events atomically to Gw receivers

albertogpz commented on a change in pull request #4928:
URL: https://github.com/apache/geode/pull/4928#discussion_r411879596



##########
File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java
##########
@@ -410,6 +441,53 @@ public Object peek() throws CacheException {
     // so no need to worry about off-heap refCount.
   }
 
+  private void peekEventsFromIncompleteTransactions(List<AsyncEvent> batch,

Review comment:
       You are right, the code is very similar (just as it happens with the peek method) but the structures on which they operate are different:
   On the SerialGatewaySenderQueue it operates on a set of transactionIds while on the ParallelGatewaySenderQueue it operates on a map of <TransactionId, bucketId>.
   
   Besides, the difference between the Serial queue and the parallel queue makes it different the access to them. On the parallel you need to pass the bucketId and the partition region. On the serial one, you need to pass the last accessed key so that you do not go through the same elements over and over because those are not removed immediately when peeked from the queue as it happens with the parallel queue.
   
   As a consequence I did not find an easy way to reuse code that did end up making things more complex.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org