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

ISPN-6046 Server Rolling Upgrade performance improvement #3924

Closed

Conversation

gustavocoding
Copy link

https://issues.jboss.org/browse/ISPN-6046
https://issues.jboss.org/browse/ISPN-6052
https://issues.jboss.org/browse/ISPN-6053
https://issues.jboss.org/browse/ISPN-6064
https://issues.jboss.org/browse/ISPN-6065

Perf

Before: Rolling upgrade from clusters 8.1.0.Final (2 members) -> 8.1.0.Final (2 members)
(times are the sum of time to dump keys plus the time to synchronize data)

After: Rolling upgrade from clusters 8.2.0-SNAPSHOT (2 members) -> 8.2.0-SNAPSHOT (2 members)
(no key dump is necessary if the source cluster is ispn >= 8.0)

Entries Before (avg) After (avg)
50k 24s 5s
500k 3min10s 41s
2M 15min10s 2min30s
5M Error during key dump (timeouts, OOME) 7min9s

benchmark hardware: 8Gb RAM, 4 vCPU, Fedora 22 on Openstack

Details

This PR makes use of the Remote Iterator to migrate data between clusters, the dumpKeys step is not necessary if the source cluster has version >= 8.0. If not, it will fallback to reading keys dumped.

}
} else {
final AtomicInteger count = new AtomicInteger(0);
ExecutorService executorService = Executors.newFixedThreadPool(threads);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for consistency, use the same naming for the ExecutorService variable as above (es/executorService)

@gustavocoding
Copy link
Author

@ttarrant Updated. I also had to change the architecture a little bit to maintain the "advertised" performance, since putAll cannot used anymore: now the data migrator is distributed, each node of the new cluster will load a portion of the data (a set of segments)

@tristantarrant
Copy link
Member

Good job, @gustavonalle . Merged

@gustavocoding gustavocoding deleted the rolling_upgrade branch January 25, 2016 15:06
@galderz
Copy link
Member

galderz commented Jan 28, 2016

Brilliant work @gustavonalle 👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants