Locking is now implemented by only allowing 1 write at the same time, while also denying read requests during writes. Back in the old days, locking was path based: if 2 paths did not cross they were allowed to proceed in parallel. This was disabled later on because it resulted in deadlocks in particular cases. While only allowing 1 write lock at a time is ok, many read requests should be allowed to proceed during writes. Even better if deadlocks could be prevented; multiple simultaneous writes would become possible again. This has to be investigated.
Locking is now implemented by only allowing 1 write at the same time, while also denying read requests during writes. Back in the old days, locking was path based: if 2 paths did not cross they were allowed to proceed in parallel. This was disabled later on because it resulted in deadlocks in particular cases. While only allowing 1 write lock at a time is ok, many read requests should be allowed to proceed during writes. Even better if deadlocks could be prevented; multiple simultaneous writes would become possible again. This has to be investigated.