Skip to content
This repository has been archived by the owner on Jan 9, 2025. It is now read-only.

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant