NodeManager( GraphDatabaseService graphDb, AdaptiveCacheManager cacheManager, LockManager lockManager, LockReleaser lockReleaser, TransactionManager transactionManager, PersistenceManager persistenceManager, IdGenerator idGenerator, boolean useNewCaches) { this.graphDbService = graphDb; this.cacheManager = cacheManager; this.lockManager = lockManager; this.transactionManager = transactionManager; this.propertyIndexManager = new PropertyIndexManager(transactionManager, persistenceManager, idGenerator); this.lockReleaser = lockReleaser; lockReleaser.setNodeManager(this); lockReleaser.setPropertyIndexManager(propertyIndexManager); this.persistenceManager = persistenceManager; this.idGenerator = idGenerator; this.relTypeHolder = new RelationshipTypeHolder(transactionManager, persistenceManager, idGenerator); if (useNewCaches) { nodeCache = new SoftLruCache<Integer, NodeImpl>("NodeCache"); relCache = new SoftLruCache<Integer, RelationshipImpl>("RelationshipCache"); } else { nodeCache = new LruCache<Integer, NodeImpl>("NodeCache", 1500, this.cacheManager); relCache = new LruCache<Integer, RelationshipImpl>("RelationshipCache", 3500, this.cacheManager); } for (int i = 0; i < loadLocks.length; i++) { loadLocks[i] = new ReentrantLock(); } }
void releaseLock(Object resource, LockType lockType) { if (lockType == LockType.READ) { lockManager.releaseReadLock(resource); } else if (lockType == LockType.WRITE) { lockReleaser.addLockToTransaction(resource, lockType); } else { throw new LockException("Unknown lock type: " + lockType); } }
public TransactionData getTransactionData() { return lockReleaser.getTransactionData(); }
public ArrayMap<Integer, PropertyData> getCowPropertyRemoveMap( Primitive primitive, boolean create) { return lockReleaser.getCowPropertyRemoveMap(primitive, create); }
public ArrayMap<Integer, PropertyData> getCowPropertyAddMap(Primitive primitive) { return lockReleaser.getCowPropertyAddMap(primitive); }
private void deletePrimitive(Primitive primitive) { lockReleaser.deletePrimitive(primitive); }
public IntArray getCowRelationshipAddMap(NodeImpl node, String string, boolean create) { return lockReleaser.getCowRelationshipAddMap(node, string, create); }
public IntArray getCowRelationshipAddMap(NodeImpl node, String string) { return lockReleaser.getCowRelationshipAddMap(node, string); }
public ArrayMap<String, IntArray> getCowRelationshipAddMap(NodeImpl node) { return lockReleaser.getCowRelationshipAddMap(node); }
public IntArray getCowRelationshipRemoveMap(NodeImpl node, String type, boolean create) { return lockReleaser.getCowRelationshipRemoveMap(node, type, create); }