-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
ReplicatedMap updates in 3.6 takes very long time #7617
Comments
I think your test is flawed - you're iterating NEW_ENTRIES_COUNT times, but you will likely not be adding that many entries to the Map<> since you will likely have collisions on the random number generated. Based on tests I just ran, I frequently got a key collision even with only 7 iterations. Check the value from the map.put() - if it's non-zero then you have a key collision. I don't mean to imply that there isn't an issue but the test as it stands doesn't prove a defect. Are you also aware of the consistency model of ReplicatedMaps? See http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#replicated-map |
Hi,
but still when running 3 nodes cluster (locally), it takes about 18 seconds (in average) for the cluster to finish the update, Are these the expected time measures for updating ReplicatedMap ?
|
It looks like an issue with As a workaround until the fix is available, you can use Thanks you for reporting the issue |
No, Thank you !! we rolled back to 3.5.5, but in your opinion, if we replace the putAll with put, are we safe with 3.6, or you think its better to stay on 3.5.5 ? |
I think it is better to update 3.6 because we've made a lot of improvements to replicated map. |
The fix will be available on 3.6.2 and 3.7 |
Thank you so much |
@eminn I just took a look at the PR - what was causing the delay: https://github.com/hazelcast/hazelcast/pull/7626/files - that equality check seems innocuous enough - are there DNS lookups taking place? |
@vertex-github that was causing write operations to not to replicate to the callers. There is a anti-entropy system which checks whether data owners are in sync with the replicas, if not syncs them every 30 seconds. So when the updates are not replicated to callers, it takes up to 30 seconds make all the members sync. |
Thanks. Is that 30s parameter configurable? |
No, that's an internal right now. But we can make it configureable for the next versions. |
in version 3.6 there is a massive ,IMO, regression in the ReplicatedMap updates.
sometimes the update loses some of the entries to update.
here is a test i prepared that demonstrate the problem :
hazelcast.xml :
ReplicatedMapIssue.java :
DummyObject.java :
using java 8 and hazelcast 3.6
reproduce steps:
--> after some times either the update will take more than a minute or the program will simply freeze (its because the map contains only 6 entries and the seventh entry will never get updated.
in 3.5.5, the scenario is much better, but around 20% of the times, also the seventh entry is lost.
The text was updated successfully, but these errors were encountered: