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

libgenders: rearchitect internal libgenders datastructures #84

Merged
merged 2 commits into from
Feb 27, 2025

Conversation

chu11
Copy link
Member

@chu11 chu11 commented Feb 27, 2025

Problem: The internal libgenders data structures were designed
back when the majority of genders files stored only 1 node per
line. It builds up a number of lists, as well as hashes that point
to many attrs, vals, and other lists.

This design has shown itself to perform poorly on very large
clusters, such as those with 10K nodes or more.

Re-do the entire set of data structures internal to libgenders.

This re-architecture improves performance in the average/normal case, but
could perform worse in worst case scenarios. Most notably, it will be
on users to create "smart" genders files.

For example, hostranges should always be used in genders files. The
old legacy of 1 node per line should not be used.

Using nodeattr's --compress-hosts option should help as well.

Fixes #70

Problem: The internal libgenders data structures were designed
back when the majority of genders files stored only 1 node per
line.  It builds up a number of lists, as well as hashes that point
to many attrs, vals, and other lists.

This design has shown itself to perform poorly on very large
clusters, such as those with 10K nodes or more.

Re-do the entire set of data structures internal to libgenders.

This re-architecture improves performance in the average/normal case, but
could perform worse in worst case scenarios.  Most notably, it will be
on users to create "smart" genders files.

For example, hostranges should always be used in genders files.  The
old legacy of 1 node per line should not be used.

Using nodeattr's --compress-hosts option should help as well.
Problems: With the rearchitecture of libgenders some convenience
functions are now no longer used.

Remove now dead functions.
@chu11 chu11 merged commit 6093c32 into chaos:master Feb 27, 2025
1 check passed
@chu11 chu11 deleted the rearchitect branch February 27, 2025 23:44
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.

genders: slow on elcap
1 participant