org.forstdb.CompactionStyle Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of forstjni Show documentation
Show all versions of forstjni Show documentation
ForSt fat jar with modifications specific for Apache Flink that contains .so files for linux32 and linux64 (glibc and musl-libc), jnilib files
for Mac OSX, and a .dll for Windows x64.
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
// This source code is licensed under both the GPLv2 (found in the
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).
package org.forstdb;
/**
* Enum CompactionStyle
*
* RocksDB supports different styles of compaction. Available
* compaction styles can be chosen using this enumeration.
*
*
* - LEVEL - Level based Compaction style
* - UNIVERSAL - Universal Compaction Style is a
* compaction style, targeting the use cases requiring lower write
* amplification, trading off read amplification and space
* amplification.
* - FIFO - FIFO compaction style is the simplest
* compaction strategy. It is suited for keeping event log data with
* very low overhead (query log for example). It periodically deletes
* the old data, so it's basically a TTL compaction style.
* - NONE - Disable background compaction.
* Compaction jobs are submitted
* {@link RocksDB#compactFiles(CompactionOptions, ColumnFamilyHandle, java.util.List, int, int,
* CompactionJobInfo)} ()}.
*
*
* @see
* Universal Compaction
* @see
* FIFO Compaction
*/
public enum CompactionStyle {
LEVEL((byte) 0x0),
UNIVERSAL((byte) 0x1),
FIFO((byte) 0x2),
NONE((byte) 0x3);
private final byte value;
CompactionStyle(final byte value) {
this.value = value;
}
/**
* Get the internal representation value.
*
* @return the internal representation value.
*/
//TODO(AR) should be made package-private
public byte getValue() {
return value;
}
/**
* Get the Compaction style from the internal representation value.
*
* @param value the internal representation value.
*
* @return the Compaction style
*
* @throws IllegalArgumentException if the value does not match a
* CompactionStyle
*/
static CompactionStyle fromValue(final byte value)
throws IllegalArgumentException {
for (final CompactionStyle compactionStyle : CompactionStyle.values()) {
if (compactionStyle.value == value) {
return compactionStyle;
}
}
throw new IllegalArgumentException("Unknown value for CompactionStyle: "
+ value);
}
}