func (engine *RocksDbEngine) Init(config *proto.DBConfigs) error { if config == nil { return proto.ErrNoEngineConfig } if config.RocksDbConfigs == nil { config.RocksDbConfigs = DefaultRocksDbConf } options := ratgo.NewOptions() // options.SetCreateIfMissing(config.RocksDbConfigs.CreateIfMissing) options.SetCreateIfMissing(true) options.SetParanoidChecks(config.RocksDbConfigs.ParanoidCheck) if config.RocksDbConfigs.LRUCacheSize > 0 { options.SetCache(ratgo.NewLRUCache(config.RocksDbConfigs.LRUCacheSize)) } if config.RocksDbConfigs.BloomFilterLength > 0 { options.SetFilterPolicy(ratgo.NewBloomFilter(config.RocksDbConfigs.BloomFilterLength)) } engine.config = config engine.dbOptions = options db, err := ratgo.Open(engine.config.DataPath, engine.dbOptions) if err != nil { return err } engine.db = db return nil }