Class CodecPool
java.lang.Object
org.apache.hadoop.hbase.io.compress.CodecPool
A global compressor/decompressor pool used to save and reuse (possibly native)
compression/decompression codecs. Copied from the class of the same name in hadoop-common and
augmented to improve borrow/return performance.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ConcurrentMap<Class<org.apache.hadoop.io.compress.Compressor>,
NavigableSet<org.apache.hadoop.io.compress.Compressor>> private static com.github.benmanes.caffeine.cache.LoadingCache<Class<org.apache.hadoop.io.compress.Compressor>,
AtomicInteger> Map to track the number of leased compressors.private static final ConcurrentMap<Class<org.apache.hadoop.io.compress.Decompressor>,
NavigableSet<org.apache.hadoop.io.compress.Decompressor>> private static com.github.benmanes.caffeine.cache.LoadingCache<Class<org.apache.hadoop.io.compress.Decompressor>,
AtomicInteger> Map to tracks the number of leased decompressors.private static final org.slf4j.Logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static <T> T
borrow
(ConcurrentMap<Class<T>, NavigableSet<T>> pool, Class<? extends T> codecClass) private static <T> com.github.benmanes.caffeine.cache.LoadingCache<Class<T>,
AtomicInteger> static org.apache.hadoop.io.compress.Compressor
getCompressor
(org.apache.hadoop.io.compress.CompressionCodec codec) static org.apache.hadoop.io.compress.Compressor
getCompressor
(org.apache.hadoop.io.compress.CompressionCodec codec, org.apache.hadoop.conf.Configuration conf) Get aCompressor
for the givenCompressionCodec
from the pool, or get a new one if the pool is empty.static org.apache.hadoop.io.compress.Decompressor
getDecompressor
(org.apache.hadoop.io.compress.CompressionCodec codec) Get aDecompressor
for the givenCompressionCodec
from the pool, or get a new one if the pool is empty.private static <T> int
getLeaseCount
(com.github.benmanes.caffeine.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, Class<? extends T> codecClass) Copied from hadoop-common without significant modification.(package private) static int
getLeasedCompressorsCount
(org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedCompressor
s for thisCompressionCodec
.(package private) static int
getLeasedDecompressorsCount
(org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedDecompressor
s for thisCompressionCodec
.(package private) static void
Call if you want lease counting to be enabled.private static <T> boolean
payback
(ConcurrentMap<Class<T>, NavigableSet<T>> pool, T codec) static void
returnCompressor
(org.apache.hadoop.io.compress.Compressor compressor) Return theCompressor
to the pool.static void
returnDecompressor
(org.apache.hadoop.io.compress.Decompressor decompressor) Return theDecompressor
to the pool.private static <T> void
updateLeaseCount
(com.github.benmanes.caffeine.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, T codec, int delta) Copied from hadoop-common without significant modification.
-
Field Details
-
LOG
-
COMPRESSOR_POOL
private static final ConcurrentMap<Class<org.apache.hadoop.io.compress.Compressor>,NavigableSet<org.apache.hadoop.io.compress.Compressor>> COMPRESSOR_POOL -
DECOMPRESSOR_POOL
private static final ConcurrentMap<Class<org.apache.hadoop.io.compress.Decompressor>,NavigableSet<org.apache.hadoop.io.compress.Decompressor>> DECOMPRESSOR_POOL -
compressorCounts
@Nullable private static com.github.benmanes.caffeine.cache.LoadingCache<Class<org.apache.hadoop.io.compress.Compressor>,AtomicInteger> compressorCountsMap to track the number of leased compressors. Only used in unit tests, kept null otherwise. -
decompressorCounts
@Nullable private static com.github.benmanes.caffeine.cache.LoadingCache<Class<org.apache.hadoop.io.compress.Decompressor>,AtomicInteger> decompressorCountsMap to tracks the number of leased decompressors. Only used in unit tests, kept null otherwise.
-
-
Constructor Details
-
CodecPool
public CodecPool()
-
-
Method Details
-
createCache
private static <T> com.github.benmanes.caffeine.cache.LoadingCache<Class<T>,AtomicInteger> createCache() -
initLeaseCounting
Call if you want lease counting to be enabled. Only used in unit tests. -
borrow
private static <T> T borrow(ConcurrentMap<Class<T>, NavigableSet<T>> pool, Class<? extends T> codecClass) -
payback
-
getLeaseCount
private static <T> int getLeaseCount(com.github.benmanes.caffeine.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, Class<? extends T> codecClass) Copied from hadoop-common without significant modification. -
updateLeaseCount
private static <T> void updateLeaseCount(com.github.benmanes.caffeine.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, T codec, int delta) Copied from hadoop-common without significant modification. -
getCompressor
public static org.apache.hadoop.io.compress.Compressor getCompressor(org.apache.hadoop.io.compress.CompressionCodec codec, org.apache.hadoop.conf.Configuration conf) Get aCompressor
for the givenCompressionCodec
from the pool, or get a new one if the pool is empty. Copied from hadoop-common without significant modification. -
getCompressor
public static org.apache.hadoop.io.compress.Compressor getCompressor(org.apache.hadoop.io.compress.CompressionCodec codec) -
getDecompressor
public static org.apache.hadoop.io.compress.Decompressor getDecompressor(org.apache.hadoop.io.compress.CompressionCodec codec) Get aDecompressor
for the givenCompressionCodec
from the pool, or get a new one if the pool is empty. Copied from hadoop-common without significant modification. -
returnCompressor
Return theCompressor
to the pool. Copied from hadoop-common without significant modification. -
returnDecompressor
Return theDecompressor
to the pool. Copied from hadoop-common without significant modification. -
getLeasedCompressorsCount
static int getLeasedCompressorsCount(@Nullable org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedCompressor
s for thisCompressionCodec
. Copied from hadoop-common without significant modification. -
getLeasedDecompressorsCount
static int getLeasedDecompressorsCount(@Nullable org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedDecompressor
s for thisCompressionCodec
. Copied from hadoop-common without significant modification.
-