jvarenina edited a comment on pull request #6477: URL: https://github.com/apache/geode/pull/6477#issuecomment-848723153
Hi @DonalEvans and all, Thanks for the review! Regarding your question whether it is possible to check on receiving member if is notification only. I have already tried that with previous commit https://github.com/apache/geode/pull/6477/commits/b3dbf5024dd378ef1bbb48658cf02500b6cff6c9 which broke design base case explained in this comment: https://github.com/apache/geode/pull/6477#issuecomment-846037604 Beside above solution I was considering another alternative solution on receiving member. When TXCommitMessage is received on member which doesn't host targeted bucket (only subscription queue) then part of code within following if statement is executed : https://github.com/apache/geode/blob/be1fad39c4f7291ad37051ba1e59046f8c52537e/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java#L1300 Impact (set TailKey to -1) could be done within to avoid putting the event in parallel gateway sender temporary queue. I haven't done it because I was unsure of the case that is described in following comment (open link since it has multiple lines): https://github.com/apache/geode/blob/be1fad39c4f7291ad37051ba1e59046f8c52537e/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java#L1323 In comment it is stated that this part of code can be also reached while data bucket (colocated parallel gateway-sender queue bucket is always created after data bucket) is being created and `TXCommitMessage` message is received. I couldn't been able to get this case, and I'm not sure that it is possible. I tried to execute transactions before member requests for data bucket `InitialImageOperation$RequestRVVMessage` (this is done even before GII) and in this case `if (this.internalRegion instanceof PartitionedRegion)` condition is not fulfilled because targeted BucketRegion is at this point of time already created and therefore `internalRegion` variable is of type `BucketRegion` and not `PartitionedRegion`. Based on all above, at least to me, it seems that impact could be created on receiving member. Also I guess that even if it happens that some parallel gateway-sender events are ignored in period before` InitialImageOperation$RequestRVVMessage` (for data bucket region) everything should be fine, because these gateway-sender events should be transferred later on in initial image for colocated gateway-sender queue bucket. To be honest I'm not experienced in this part and I'm probably missing something. What do you think? Is this better solution? Any other suggestion is welcome. -- 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: us...@infra.apache.org