package voldemort.store.bdb;
import voldemort.server.VoldemortConfig;
import voldemort.utils.Time;
import com.sleepycat.je.LockMode;
/**
* Runtime (i.e., post Environment creation) configuration for BdbStorageEngine
*
*/
public class BdbRuntimeConfig {
public static final long DEFAULT_STATS_CACHE_TTL_MS = 5 * Time.MS_PER_SECOND;
public static final LockMode DEFAULT_LOCK_MODE = LockMode.READ_UNCOMMITTED;
public static final boolean DEFAULT_EXPOSE_SPACE_UTIL = true;
public static final boolean DEFAULT_MINIMIZE_SCAN_IMPACT = false;
public static final boolean DEFAULT_TURNOFF_CHECKPOINTER_BATCH_WRITES = false;
private long statsCacheTtlMs = DEFAULT_STATS_CACHE_TTL_MS;
private LockMode lockMode = DEFAULT_LOCK_MODE;
private boolean exposeSpaceUtil = DEFAULT_EXPOSE_SPACE_UTIL;
private boolean minimizeScanImpact = DEFAULT_MINIMIZE_SCAN_IMPACT;
private boolean checkpointerOffForBatchWrites = DEFAULT_TURNOFF_CHECKPOINTER_BATCH_WRITES;
public BdbRuntimeConfig() {
}
public BdbRuntimeConfig(VoldemortConfig config) {
LockMode lockMode = config.getBdbReadUncommitted() ? LockMode.READ_UNCOMMITTED
: LockMode.DEFAULT;
setLockMode(lockMode);
setStatsCacheTtlMs(config.getBdbStatsCacheTtlMs());
setExposeSpaceUtil(config.getBdbExposeSpaceUtilization());
setMinimizeScanImpact(config.getBdbMinimizeScanImpact());
setCheckpointerOffForBatchWrites(config.getBdbCheckpointerOffForBatchWrites());
}
public long getStatsCacheTtlMs() {
return statsCacheTtlMs;
}
public BdbRuntimeConfig setStatsCacheTtlMs(long statsCacheTtlMs) {
this.statsCacheTtlMs = statsCacheTtlMs;
return this;
}
public LockMode getLockMode() {
return lockMode;
}
public BdbRuntimeConfig setLockMode(LockMode lockMode) {
this.lockMode = lockMode;
return this;
}
public void setExposeSpaceUtil(boolean expose) {
this.exposeSpaceUtil = expose;
}
public boolean getExposeSpaceUtil() {
return this.exposeSpaceUtil;
}
public boolean getMinimizeScanImpact() {
return minimizeScanImpact;
}
public void setMinimizeScanImpact(boolean minimizeScanImpact) {
this.minimizeScanImpact = minimizeScanImpact;
}
public boolean isCheckpointerOffForBatchWrites() {
return checkpointerOffForBatchWrites;
}
public void setCheckpointerOffForBatchWrites(boolean checkpointerOffForBulkWrites) {
this.checkpointerOffForBatchWrites = checkpointerOffForBulkWrites;
}
}