- All Implemented Interfaces:
- org.neo4j.kernel.impl.locking.Locks, org.neo4j.kernel.lifecycle.Lifecycle
public class ForsetiLockManager
extends org.neo4j.kernel.lifecycle.LifecycleAdapter
implements org.neo4j.kernel.impl.locking.Locks
Forseti, the Nordic god of justice
Forseti is a lock manager using the dreadlocks deadlock detection algorithm, which means
deadlock detection does not require complex RAG traversal and can be found in O(1).
In the best case, Forseti acquires a lock in one CAS instruction, and scales linearly with the number of cores.
However, since it uses a shared-memory approach, it will most likely degrade in use cases where there is high
contention and a very large number of sockets running the database.
As such, it is optimized for servers with up to, say, 16 cores across 2 sockets. Past that other strategies such
as centralized lock services using message passing may yield better results.