|
Description:
|
GMS's Requests are divided into two categories: 1/ Can Be Processed Together (CBPT): JOIN, LEAVE and SUSPECT 2 Can Not Be Processed Together (CNBPT) : MERGE and JOIN_WITH_STATE_TRANSFER
Bundling concerns only CBPT requests. So when a CNBPT request is received, it should be processed immediately.
Currently, a MERGE request is postponed due to bundling instead of being executed immediately. Two conditions to unblock it:
- Timeout expiration.
- Receiving another message. Note that whatever the following message is, it can't be processed with CBPT message
Expected behavior: Treating immediately CNBPT requests
A simple solution: Bring a light modification to method GMS.ViewHandler.run() at line 1333 ------------- if(wait_time > 0)
becomes :
if(wait_time > 0 && firstRequest.canBeProcessedTogether(firstRequest)) -------------
Note that if a request can't be processed with a request of the same type => it coudn't be processed with any other request type
|