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

XThreads.executeSynchronized is a global lock blocking multiple storageManagers writing in a single JVM #536

Open
54446776 opened this issue Mar 1, 2023 · 0 comments

Comments

@54446776
Copy link

54446776 commented Mar 1, 2023

Environment Details

  • MicroStream Version: 7.x and 8.0
  • JDK version:
  • OS:
  • Used frameworks:

Describe the bug

Working with Microstream in a multi-threaded environment, and use XThreads.executeSynchronized according Microstream doc, which lock a global object in JVM (XThreads class GLOBAL_LOCK static object).
When working with multiple storageManagers environment and use XThreads.executeSynchronized method, all persistence operations will race GLOBAL_LOCK, even operations are irrelevant, cause low performance.
It will be good to limit the lock object scope to each storageManager.

PS: also some configurations are JVM global, such enable Housekeeping GC. will be good to change to not-global.

To Reproduce

Expected behavior

Screenshots

Additional context

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

No branches or pull requests

1 participant