The OperationExecutor is now by default configured with 1 extra priority generic thread. This thread will only process generic priority operations; which still can be picked up by another regular generic thread if the priority thread for whatever reason is busy. But it can't happen that if only regular generic tasks are running that a priority generic task is not going to be picked up.
This should increase reliability since generic threads are used for all kinds of purposes, e.g. launching and syncing on queries. And stuff like heartbeats, cluster operations etc should be processed asap.
Thanks guys. I need to wait with merging till the PRD also has been given the green light.
I made a small adjust in the threadname. Now priority threads get their own sequence. So you get:
This is with 2 priority generic threads configured.
Initial work on introducing dedicated high priority generic thread
There was a test failure in com.hazelcast.spi.impl.operationservice.impl.ResponseHandler_NotifyTest.normalResponse_whenBackupMissing_thenEventuallySuccess:
Let's see if this is repeatable.
I'm going to close this PR in favor of a simpler approach: