Class CachedEntryQueue

java.lang.Object
org.apache.hadoop.hbase.io.hfile.bucket.CachedEntryQueue

@Private public class CachedEntryQueue extends Object
A memory-bound queue that will grow until an element brings total size larger than maxSize. From then on, only entries that are sorted larger than the smallest current entry will be inserted/replaced.

Use this when you want to find the largest elements (according to their ordering, not their heap size) that consume as close to the specified maxSize as possible. Default behavior is to grow just above rather than just below specified max.

  • Field Details

  • Constructor Details

    • CachedEntryQueue

      public CachedEntryQueue(long maxSize, long blockSize)
      Parameters:
      maxSize - the target size of elements in the queue
      blockSize - expected average size of blocks
  • Method Details

    • add

      public void add(Map.Entry<BlockCacheKey,BucketEntry> entry)
      Attempt to add the specified entry to this queue.

      If the queue is smaller than the max size, or if the specified element is ordered after the smallest element in the queue, the element will be added to the queue. Otherwise, there is no side effect of this call.

      Parameters:
      entry - a bucket entry with key to try to add to the queue
    • poll

      Returns The next element in this queue, or null if the queue is empty.
    • pollLast

      Returns The last element in this queue, or null if the queue is empty.