Exemplo n.º 1
0
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
}