public static ColumnFamilyOptions getRocksDBColumnFamilyOptions(final String groupId, final Class<?> cls) {
        Requires.requireNonNull(cls, "cls");
        String key = buildKey(groupId, cls);
        ColumnFamilyOptions opts = columnFamilyOptionsTable.get(key);
        if (opts == null) {
            final ColumnFamilyOptions newOpts = getDefaultRocksDBColumnFamilyOptions();
            opts = columnFamilyOptionsTable.putIfAbsent(key, newOpts);
            if (opts == null) {
                opts = newOpts;
            } else {
                newOpts.close();
            }
        }
        // NOTE: This does a shallow copy, which means comparator, merge_operator,
        // compaction_filter, compaction_filter_factory and other pointers will be
        // cloned!
        return new ColumnFamilyOptions(checkInvalid(opts));
    }
Get a new default ColumnFamilyOptions or a copy of the exist
ColumnFamilyOptions.  Users should call ColumnFamilyOptions#close()
to release resources themselves.

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