// Open a DB by fileName and options. func Open(fileName string) (*DB, error) { // Create if not exist _, err := os.Stat(fileName) if os.IsNotExist(err) { log.Debug("create dir %s", fileName) err := os.Mkdir(fileName, filemode) if err != nil { return nil, err } } // Admindb. db := new(DB) db.Admin, err = admindb.Open(path.Join(fileName, admindbFileName)) if err != nil { return nil, err } // Indexdb. db.Index, err = indexdb.Open(path.Join(fileName, indexdbFileName)) if err != nil { return nil, err } // Metricdb. db.Metric, err = metricdb.Open(path.Join(fileName, metricdbFileName)) if err != nil { return nil, err } log.Debug("storage is opened successfully") return db, nil }
// Open a DB by fileName and options. func Open(fileName string, options *Options) (*DB, error) { // Create if not exist _, err := os.Stat(fileName) if os.IsNotExist(err) { log.Debug("create dir %s", fileName) err := os.Mkdir(fileName, filemode) if err != nil { return nil, err } } // Admindb. db := new(DB) db.Admin, err = admindb.Open(path.Join(fileName, admindbFileName)) if err != nil { return nil, err } // Indexdb. db.Index, err = indexdb.Open(path.Join(fileName, indexdbFileName)) if err != nil { return nil, err } // Metricdb. db.Metric, err = metricdb.Open(path.Join(fileName, metricdbFileName)) if err != nil { return nil, err } name := fmt.Sprintf("%s-%dx%d", statedbFileName, options.NumGrid, options.GridLen) opts := &statedb.Options{NumGrid: options.NumGrid, GridLen: options.GridLen} // Statedb. db.State, err = statedb.Open(path.Join(fileName, name), opts) if err != nil { return nil, err } log.Debug("storage is opened successfully") return db, nil }