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(); } }