package com.ctriposs.tsdb;
import java.io.File;
import com.ctriposs.tsdb.level.CompactLevel;
import com.ctriposs.tsdb.level.StoreLevel;
import com.ctriposs.tsdb.table.InternalKeyComparator;
import com.ctriposs.tsdb.table.MemTable;
import com.ctriposs.tsdb.util.FileUtil;
import com.google.common.base.Preconditions;
public class DBConfig {
public static final int BLOCK_MAX_COUNT = 200;
private int maxMemTable = StoreLevel.MAX_SIZE;
private int storeThread = StoreLevel.THREAD_COUNT;
private long maxMemTableSize = MemTable.MAX_MEM_SIZE;
private long maxPeriod = CompactLevel.MAX_PERIOD;
private long fileCapacity = StoreLevel.FILE_SIZE;
private InternalKeyComparator internalKeyComparator = new InternalKeyComparator();
private String dir = null;
public DBConfig(String dir){
Preconditions.checkNotNull(dir, "storage data directory is null!");
if (!dir.endsWith(File.separator)) {
dir += File.separator;
}
// validate directory
if (!FileUtil.isFilenameValid(dir)) {
throw new IllegalArgumentException("Invalid storage data directory : " + dir);
}
this.dir = dir;
}
public int getMaxMemTable() {
return maxMemTable;
}
public void setMaxMemTable(int maxMemTable) {
this.maxMemTable = maxMemTable;
}
public int getStoreThread() {
return storeThread;
}
public void setStoreThread(int storeThread) {
this.storeThread = storeThread;
}
public long getMaxMemTableSize() {
return maxMemTableSize;
}
public void setMaxMemTableSize(long maxMemTableSize) {
this.maxMemTableSize = maxMemTableSize;
}
public long getMaxPeriod() {
return maxPeriod;
}
public void setMaxPeriod(long maxPeriod) {
this.maxPeriod = maxPeriod;
}
public String getDBDir() {
return dir;
}
public long getFileCapacity() {
return fileCapacity;
}
public void setFileCapacity(long fileCapacity) {
this.fileCapacity = fileCapacity;
}
public InternalKeyComparator getInternalKeyComparator() {
return internalKeyComparator;
}
public void setInternalKeyComparator(InternalKeyComparator internalKeyComparator) {
this.internalKeyComparator = internalKeyComparator;
}
}