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<ByteBuffDecompressor>,NavigableSet<ByteBuffDecompressor>> private static final ConcurrentMap<Class<org.apache.hadoop.io.compress.Compressor>,NavigableSet<org.apache.hadoop.io.compress.Compressor>> private static org.apache.hbase.thirdparty.com.google.common.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 org.apache.hbase.thirdparty.com.google.common.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> Tborrow(ConcurrentMap<Class<T>, NavigableSet<T>> pool, Class<? extends T> codecClass) private static <T> org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache<Class<T>,AtomicInteger> static ByteBuffDecompressorstatic org.apache.hadoop.io.compress.CompressorgetCompressor(org.apache.hadoop.io.compress.CompressionCodec codec) static org.apache.hadoop.io.compress.CompressorgetCompressor(org.apache.hadoop.io.compress.CompressionCodec codec, org.apache.hadoop.conf.Configuration conf) Get aCompressorfor the givenCompressionCodecfrom the pool, or get a new one if the pool is empty.static org.apache.hadoop.io.compress.DecompressorgetDecompressor(org.apache.hadoop.io.compress.CompressionCodec codec) Get aDecompressorfor the givenCompressionCodecfrom the pool, or get a new one if the pool is empty.private static <T> intgetLeaseCount(org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, Class<? extends T> codecClass) Copied from hadoop-common without significant modification.(package private) static intgetLeasedCompressorsCount(org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedCompressors for thisCompressionCodec.(package private) static intgetLeasedDecompressorsCount(org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedDecompressors for thisCompressionCodec.(package private) static voidCall if you want lease counting to be enabled.private static <T> booleanpayback(ConcurrentMap<Class<T>, NavigableSet<T>> pool, T codec) static voidreturnByteBuffDecompressor(ByteBuffDecompressor decompressor) static voidreturnCompressor(org.apache.hadoop.io.compress.Compressor compressor) Return theCompressorto the pool.static voidreturnDecompressor(org.apache.hadoop.io.compress.Decompressor decompressor) Return theDecompressorto the pool.private static <T> voidupdateLeaseCount(org.apache.hbase.thirdparty.com.google.common.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 -
BYTE_BUFF_DECOMPRESSOR_POOL
private static final ConcurrentMap<Class<ByteBuffDecompressor>,NavigableSet<ByteBuffDecompressor>> BYTE_BUFF_DECOMPRESSOR_POOL -
compressorCounts
@Nullable private static org.apache.hbase.thirdparty.com.google.common.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 org.apache.hbase.thirdparty.com.google.common.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> org.apache.hbase.thirdparty.com.google.common.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(org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache<Class<T>, AtomicInteger> usageCounts, Class<? extends T> codecClass) Copied from hadoop-common without significant modification. -
updateLeaseCount
private static <T> void updateLeaseCount(org.apache.hbase.thirdparty.com.google.common.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 aCompressorfor the givenCompressionCodecfrom 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 aDecompressorfor the givenCompressionCodecfrom the pool, or get a new one if the pool is empty. Copied from hadoop-common without significant modification. -
getByteBuffDecompressor
-
returnCompressor
Return theCompressorto the pool. Copied from hadoop-common without significant modification. -
returnDecompressor
Return theDecompressorto the pool. Copied from hadoop-common without significant modification. -
returnByteBuffDecompressor
-
getLeasedCompressorsCount
static int getLeasedCompressorsCount(@Nullable org.apache.hadoop.io.compress.CompressionCodec codec) Returns the number of leasedCompressors 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 leasedDecompressors for thisCompressionCodec. Copied from hadoop-common without significant modification.
-