Description:
|
Amongst other things, address this contention point:
When multiple threads attempt to store a big number of instances of a particular Entity type if paralell (i.e. 50k instances), contention could build up in a cleanup phase of the pending put queue in the PutFromLoadValidator.acquirePutFromLoadLock() logic. The way this can happen is if all the threads register pending puts, let's say for 40k of those instances, and then acquirePutFromLoadLock() gets called. In that case, each thread would have to go through a queue of 40k pending puts in cleanOutdatedPendingPuts(), which would create contention.
The javadoc on top of cleanOutdatedPendingPuts() indicate this was an important step, but having revised it with Brian, it can probably go.
|