T
- type of the contained elements.public class HeapPriorityQueue<T extends org.apache.flink.streaming.runtime.watermarkstatus.HeapPriorityQueue.HeapPriorityQueueElement> extends Object
HeapPriorityQueue
. It is introduced as the replacement of
HeapPriorityQueue
to be used in StatusWatermarkValve
, to avoid affecting the performance of memory state backend.
The reason why the performance of memory state backend will be affected if we reuse the HeapPriorityQueue
: In some scenarios, the HeapPriorityQueueElement
will only have one
implementation(used by memory state backend), which allows the jvm to inline its
methods(getInternalIndex, setInternalIndex). If we reuse it in StatusWatermarkValve
, it
will cause it to have multiple implementations. Once there are multiple implementations, its
methods will be difficult to be inlined by jvm, which will result in poor performance of memory
state backend.
Constructor and Description |
---|
HeapPriorityQueue(org.apache.flink.streaming.runtime.watermarkstatus.HeapPriorityQueue.PriorityComparator<T> elementPriorityComparator,
int minimumCapacity)
Creates an empty
HeapPriorityQueue with the requested initial capacity. |
Modifier and Type | Method and Description |
---|---|
boolean |
add(T toAdd) |
void |
adjustModifiedElement(T element) |
void |
clear()
Clears the queue.
|
boolean |
isEmpty() |
T |
peek() |
T |
poll() |
boolean |
remove(T toRemove) |
int |
size() |
public HeapPriorityQueue(@Nonnull org.apache.flink.streaming.runtime.watermarkstatus.HeapPriorityQueue.PriorityComparator<T> elementPriorityComparator, @Nonnegative int minimumCapacity)
HeapPriorityQueue
with the requested initial capacity.elementPriorityComparator
- comparator for the priority of contained elements.minimumCapacity
- the minimum and initial capacity of this priority queue.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.