package com.alibaba.doris.dataserver.store.innodb; import java.io.File; import com.alibaba.doris.dataserver.store.Storage; import com.alibaba.doris.dataserver.store.StorageConfig; import com.alibaba.doris.dataserver.store.StorageDriver; import com.alibaba.doris.dataserver.store.StorageType; import com.alibaba.doris.dataserver.store.innodb.config.InnoDBDatabaseConfiguration; import com.alibaba.doris.dataserver.store.innodb.util.InnoDBConfigUtils; /* * @author ajun Email:jack.yuj@alibaba-inc.com */ public class InnoDBStorageDriver implements StorageDriver { public Storage createStorage() { return new InnoDBStorage(this.config); } public StorageType getStorageType() { return InnoDBStorageType.INNODB; } public void init(StorageConfig storageConfig) { this.storageConfig = storageConfig; this.config = InnoDBConfigUtils.loadConfigFile(storageConfig.getPropertiesFile()); initStorageDriver(); } private void initStorageDriver() { checkPath(config.getDataHomeDir(), "data_home_dir"); checkPath(config.getLogFileHomeDirectory(), "log_file_home_directory"); config.setSchema("doris"); } private void checkPath(String path, String pathDesc) { File dbDir = new File(path); if (!dbDir.exists()) { if (!dbDir.mkdirs()) { throw new InnoDBStorageException("Creating " + pathDesc + " failed. path=" + path); } } } /** * Note: This method is just for testing. * @return */ protected InnoDBDatabaseConfiguration getConfig(){ return this.config; } private InnoDBDatabaseConfiguration config; private StorageConfig storageConfig; }