Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dedicated priority generic thread(s) #7857

Conversation

Projects
None yet
4 participants
@pveentjer
Copy link
Member

commented Mar 28, 2016

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.

@pveentjer pveentjer added this to the 3.7 milestone Mar 28, 2016

@pveentjer pveentjer force-pushed the pveentjer:fix/3.x/dedicated-generic-operationthread-part-2 branch from 03ec8fe to 49fb413 Mar 29, 2016

@mdogan

This comment has been minimized.

Copy link
Member

commented Mar 29, 2016

👍

1 similar comment
@tombujok

This comment has been minimized.

Copy link
Contributor

commented Mar 29, 2016

👍

@pveentjer

This comment has been minimized.

Copy link
Member Author

commented Mar 29, 2016

Thanks guys. I need to wait with merging till the PRD also has been given the green light.

@pveentjer

This comment has been minimized.

Copy link
Member Author

commented Mar 29, 2016

I made a small adjust in the threadname. Now priority threads get their own sequence. So you get:

hz._hzInstance_1_dev.priority-generic-operation.thread-0
hz._hzInstance_1_dev.priority-generic-operation.thread-1
hz._hzInstance_1_dev.generic-operation.thread-0
hz._hzInstance_1_dev.generic-operation.thread-1
hz._hzInstance_1_dev.generic-operation.thread-2
hz._hzInstance_1_dev.generic-operation.thread-3

Instead of:

hz._hzInstance_1_dev.priority-generic-operation.thread-0
hz._hzInstance_1_dev.priority-generic-operation.thread-1
hz._hzInstance_1_dev.generic-operation.thread-2
hz._hzInstance_1_dev.generic-operation.thread-3
hz._hzInstance_1_dev.generic-operation.thread-4
hz._hzInstance_1_dev.generic-operation.thread-5

This is with 2 priority generic threads configured.

@pveentjer pveentjer force-pushed the pveentjer:fix/3.x/dedicated-generic-operationthread-part-2 branch from 49fb413 to 0c2020f Mar 29, 2016

@Donnerbart

This comment has been minimized.

Copy link
Contributor

commented Mar 31, 2016

There was a test failure in com.hazelcast.spi.impl.operationservice.impl.ResponseHandler_NotifyTest.normalResponse_whenBackupMissing_thenEventuallySuccess:
https://hazelcast-l337.ci.cloudbees.com/job/new-lab-fast-pr/2249/testReport/junit/com.hazelcast.spi.impl.operationservice.impl/ResponseHandler_NotifyTest/normalResponse_whenBackupMissing_thenEventuallySuccess/

Let's see if this is repeatable.

@pveentjer

This comment has been minimized.

Copy link
Member Author

commented Apr 6, 2016

I'm going to close this PR in favor of a simpler approach:

#7913

@pveentjer pveentjer closed this Apr 6, 2016

@pveentjer pveentjer deleted the pveentjer:fix/3.x/dedicated-generic-operationthread-part-2 branch Apr 6, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.