You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
InMemoryDirectoryServer is single threaded and blocks for searches because InMemoryRequestHandler synchronizes every search method on the entryMap, insead read/write locks can be used so multiple threads can read if no thread writes
The text was updated successfully, but these errors were encountered:
ofiterev
added a commit
to ofiterev/ldapsdk_inmem
that referenced
this issue
Apr 19, 2024
This is something that I had considered in the past, but avoided for a couple of reasons:
I had been concerned that there may be use cases in the future in which operations that are currently read-only might require making changes to the data in some form (e.g., maintaining password policy state for bind operations, or perhaps updating other state information for other kinds of read operations).
The in-memory directory server is primarily meant for some relatively simple use cases, and especially for use in things like unit tests for LDAP-enabled applications, where performance is typically not a substantial concern.
However, I have gone ahead and updated the LDAP SDK to make changes to support concurrency for methods that don't attempt to make any changes to the data. I didn't look at the pull request that you submitted because we don't currently accept third-party contributions (as noted here). These changes will be included in the next release of the LDAP SDK (which will probably be out by the end of June, although there's no hard schedule as yet), but you can test them now by checking out and building the LDAP SDK for yourself.
InMemoryDirectoryServer is single threaded and blocks for searches because InMemoryRequestHandler synchronizes every search method on the entryMap, insead read/write locks can be used so multiple threads can read if no thread writes
The text was updated successfully, but these errors were encountered: