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

JMX footprint work #136

Merged
merged 3 commits into from
Sep 7, 2020
Merged

JMX footprint work #136

merged 3 commits into from
Sep 7, 2020

Conversation

elcallio
Copy link
Contributor

@elcallio elcallio commented Sep 1, 2020

Fixes #133
Fixes #134
Refs #135

Makes CF mbean refresh code synchronized and tries to remove reductant calls if we contend.
Adds background reaping of dead objects to reduce memory load in (test) scenarios where we manage
to refresh to add, but not cause removal (i.e. no wildcard queries).

TableMetricsObjectName serialization is fixed in the series because without it we see loads of
exceptions when refreshing the mbean set.

Fixes scylladb#133

TableMetricObjectName is not serializable as such, since
it depends on a lexicon object etc.

Use writeReplace to put a regular ObjectName in
the stream instead.
Copy link
Contributor

@penberg penberg left a comment

Choose a reason for hiding this comment

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

Can you also say few words on why we need RegistrationChecker? Why do we need light-weight synchronization for this, instead of slapping synchronized everywhere?

Allows for shared code for synchronized and optionally
partial update checks.
Fixes scylladb#134
Refs scylladb#135

Replaces previous refresh calls with ones bound to registration
check objects, which provides some sync between threads doing
refresh, and reduced redundant calls.

Also adds repeated reaping of dead objects, i.e. every 5 minutes
we try to remove dead CF:s (not adding new ones), to reduce
idle footprint.
@elcallio
Copy link
Contributor Author

elcallio commented Sep 7, 2020

Fixed the above notes.

@penberg penberg merged commit 8d92e54 into scylladb:master Sep 7, 2020
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.

Column family beans refresh is not syncronized TableMetricsObjectname is not serializable
2 participants