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

Improve client partition table update push mechanism #16939

Merged
merged 1 commit into from May 4, 2020

Conversation

mdogan
Copy link
Contributor

@mdogan mdogan commented Apr 29, 2020

When a partition table update is detected, a member pushes
updated partition table to its clients.

When there are many clients (hundreds or more), partition table updates
cause big latencies in migration system. Reason is, partition service's lock must be acquired
to create partition table's latest view and this is called on every partition update.

To fix that, we can skip some intermediate partition table updates. There's no need to push every update,
because once partition table updates begin, generally there'll be many. Most of them will be stale
in a short time. It's fine to skip some to reduce push frequency and lock contention.

3.12: #16937
4.0: #16938

When a partition table update is detected, a member pushes
updated partition table to its clients.

When there are many clients (hundreds or more), partition table updates
cause big latencies in migration system. Reason is, partition service's lock must be acquired
to create partition table's latest view and this is called on every partition update.

To fix that, we can skip some intermediate partition table updates. There's no need to push every update,
because once partition table updates begin, generally there'll be many. Most of them will be stale
in a short time. It's fine to skip some to reduce push frequency and lock contention.
@hazelcast hazelcast deleted a comment May 4, 2020
@mmedenjak mmedenjak added the Source: Internal PR or issue was opened by an employee label May 4, 2020
@mmedenjak mmedenjak merged commit 3137348 into hazelcast:master May 4, 2020
@mmedenjak
Copy link
Contributor

Thank you for the fix and the review @mdogan @sancar 🙇

@mdogan mdogan deleted the client-ptable-update-4.1 branch May 5, 2020 10:29
andrewoelfing pushed a commit to andrewoelfing/hazelcast that referenced this pull request May 11, 2020
When a partition table update is detected, a member pushes
updated partition table to its clients.

When there are many clients (hundreds or more), partition table updates
cause big latencies in migration system. Reason is, partition service's lock must be acquired
to create partition table's latest view and this is called on every partition update.

To fix that, we can skip some intermediate partition table updates. There's no need to push every update,
because once partition table updates begin, generally there'll be many. Most of them will be stale
in a short time. It's fine to skip some to reduce push frequency and lock contention.
webashutosh pushed a commit to webashutosh/hazelcast that referenced this pull request Jun 29, 2020
When a partition table update is detected, a member pushes
updated partition table to its clients.

When there are many clients (hundreds or more), partition table updates
cause big latencies in migration system. Reason is, partition service's lock must be acquired
to create partition table's latest view and this is called on every partition update.

To fix that, we can skip some intermediate partition table updates. There's no need to push every update,
because once partition table updates begin, generally there'll be many. Most of them will be stale
in a short time. It's fine to skip some to reduce push frequency and lock contention.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants