Transactions were accessed from multiple threads, this is not allowed and has undefined behavior (this has always been the case but recently this has started to cause more problems like flaky tests, probably some change in kernel that makes it more sensitive).
Errors silently stopped the procedure from processing. This was not documented so I assume it was an oversight.
For simplicity, the implementation is changed to be single threaded. We previously spawned a second thread for executing inner queries. While this could have performance benefits in some situations, there is also an overhead of starting and synchronizing threads. We currently have no benchmarks for this procedure so there's not much to base this decision on either way.
Some undocumented behavior is kept from previous implementation:
Fixes two issues in
apoc.cypher.runMany
:For simplicity, the implementation is changed to be single threaded. We previously spawned a second thread for executing inner queries. While this could have performance benefits in some situations, there is also an overhead of starting and synchronizing threads. We currently have no benchmarks for this procedure so there's not much to base this decision on either way.
Some undocumented behavior is kept from previous implementation:
AuthorizationViolationException
errors silently.