public static DBOptions getDefaultRocksDBOptions() {
        // Turn based on https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide
        final DBOptions opts = new DBOptions();

        // If this value is set to true, then the database will be created if it is
        // missing during {@code RocksDB.open()}.
        opts.setCreateIfMissing(true);

        // If true, missing column families will be automatically created.
        opts.setCreateMissingColumnFamilies(true);

        // Number of open files that can be used by the DB. You may need to increase
        // this if your database has a large working set. Value -1 means files opened
        // are always kept open.
        opts.setMaxOpenFiles(-1);

        // To limit the num of LOG. Once LOG exceed this num, RocksDB will delete old LOG
        // automatically.
        opts.setKeepLogFileNum(100);

        // To limit the size of WALs. Once WALs exceed this size, RocksDB will start
        // forcing the flush of column families to allow deletion of some oldest WALs.
        // We make it 1G as default.
        opts.setMaxTotalWalSize(1 << 30);

        return opts;
    }
Get a new default DBOptions or a copy of the exist DBOptions.
Users should call DBOptions#close() to release resources themselves.

@param  groupId raft group id
@param cls the key of DBOptions
@return new default DBOptions or a copy of the exist DBOptions
jraft-core/src/main/java/com/alipay/sofa/jraft/util/StorageOptionsFactory.java