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

Fixes #3169 : Avoid firing unneeded Events #3236

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

SamuelBussmann
Copy link

@SamuelBussmann SamuelBussmann commented Jul 18, 2024

Based on #3170 Track event listeners keyed by type to allow earlier event firing veto

This provides the following improvements:

  • No deadlock on recursive cache modifications if no listener is registerd for those events
  • Improved performance when listeners are used

Perf:
Testcase: 20k add(),get(),udate(),get(),remove() with a NoOp Listener on Removes

-> Baseline rev_ehcache=3.10.8

  • test no_listener ended average duration was 20ms
  • test unordered_asynch ended average duration was 45ms
  • test unordered_synch ended average duration was 1411ms
  • test ordered_asynch ended average duration was 59ms
  • test ordered_synch ended average duration was 1418ms

-> MR rev_ehcache =3.10_event-firing-veto

  • test no_listener average duration was 18ms
  • test unordered_asynch average duration was 36ms <- 50% overhead to submit to ExecutorService?
  • test unordered_synch average duration was 21ms
  • test ordered_asynch average duration was 38ms
  • test ordered_synch average duration was 594ms

@SamuelBussmann
Copy link
Author

Can you retrigger the test pipelines? locally the test runs successful and it timed out on your infrastructure

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.

1 participant