package org.exist.storage.index; import org.exist.storage.BrokerPool; import org.exist.storage.DefaultCacheManager; import org.exist.storage.btree.BTree; import org.exist.storage.btree.DBException; import org.exist.storage.lock.Lock; import org.exist.storage.lock.ReentrantReadWriteLock; import org.exist.util.FileUtils; import java.nio.file.Path; public class BTreeStore extends BTree { public final static short FILE_FORMAT_VERSION_ID = 2; protected Lock lock = null; public BTreeStore(final BrokerPool pool, final byte fileId, final boolean recoverEnabled, final Path file, final DefaultCacheManager cacheManager) throws DBException { super(pool, fileId, recoverEnabled, cacheManager, file); lock = new ReentrantReadWriteLock(FileUtils.fileName(file)); if(exists()) { open(FILE_FORMAT_VERSION_ID); } else { if (LOG.isDebugEnabled()) { LOG.debug("Creating data file: " + FileUtils.fileName(getFile())); } create((short)-1); } setSplitFactor(0.7); } @Override public Lock getLock() { return lock; } public short getFileVersion() { return FILE_FORMAT_VERSION_ID; } }