Obtain a reader lock containing given metadata.
@param metadata Serialized lock metadata (this may contain informationsuch as the process owning the lock or the purpose for which the lock was acquired). Must not be null.
@return An instantiated InterProcessReadWriteLock instance
Acquires a read lock on the graph. Calling thread will be blocked until all write locks are released. Several threads can read but only once can write.
A read lock can be acquired several times by a thread, but be sure to call readUnlock() the same number of time you called this method, or use readUnlockAll() to release all locks.