Package org.apache.hadoop.hbase.types
Class CopyOnWriteArrayMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
org.apache.hadoop.hbase.types.CopyOnWriteArrayMap<K,V>
- All Implemented Interfaces:
ConcurrentMap<K,,V> ConcurrentNavigableMap<K,,V> Map<K,,V> NavigableMap<K,,V> SortedMap<K,V>
@Private
@Stable
public class CopyOnWriteArrayMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, ConcurrentNavigableMap<K,V>
A Map that keeps a sorted array in order to provide the concurrent map interface. Keeping a
sorted array means that it's much more cache line friendly, making reads faster than the tree
version. In order to make concurrent reads and writes safe this does a copy on write. There can
only be one concurrent write at a time.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate final classprivate static final classprivate static final classprivate final classprivate final classprivate static final classprivate static final classNested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CopyOnWriteArrayMap.ArrayHolder<K,V> private final Comparator<? super K> -
Constructor Summary
ConstructorsModifierConstructorDescriptionCopyOnWriteArrayMap(Comparator<? super K> keyComparator) privateCopyOnWriteArrayMap(Comparator<? super K> keyComparator, CopyOnWriteArrayMap.ArrayHolder<K, V> holder) -
Method Summary
Modifier and TypeMethodDescriptionceilingEntry(K key) ceilingKey(K key) voidclear()Comparator<? super K>booleancontainsKey(Object key) entrySet()firstKey()floorEntry(K key) higherEntry(K key) booleanisEmpty()keySet()lastKey()lowerEntry(K key) putIfAbsent(K key, V value) booleanbooleanintsize()values()Methods inherited from class java.util.AbstractMap
clone, containsValue, equals, hashCode, putAll, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, replaceAllMethods inherited from interface java.util.Map
containsValue, equals, hashCode, putAll
-
Field Details
-
keyComparator
-
holder
-
-
Constructor Details
-
CopyOnWriteArrayMap
public CopyOnWriteArrayMap() -
CopyOnWriteArrayMap
-
CopyOnWriteArrayMap
private CopyOnWriteArrayMap(Comparator<? super K> keyComparator, CopyOnWriteArrayMap.ArrayHolder<K, V> holder)
-
-
Method Details
-
comparator
- Specified by:
comparatorin interfaceSortedMap<K,V>
-
tailMap
- Specified by:
tailMapin interfaceConcurrentNavigableMap<K,V> - Specified by:
tailMapin interfaceNavigableMap<K,V>
-
tailMap
-
firstKey
-
lastKey
-
lowerEntry
- Specified by:
lowerEntryin interfaceNavigableMap<K,V>
-
lowerKey
- Specified by:
lowerKeyin interfaceNavigableMap<K,V>
-
floorEntry
- Specified by:
floorEntryin interfaceNavigableMap<K,V>
-
floorKey
- Specified by:
floorKeyin interfaceNavigableMap<K,V>
-
ceilingEntry
- Specified by:
ceilingEntryin interfaceNavigableMap<K,V>
-
ceilingKey
- Specified by:
ceilingKeyin interfaceNavigableMap<K,V>
-
higherEntry
- Specified by:
higherEntryin interfaceNavigableMap<K,V>
-
higherKey
- Specified by:
higherKeyin interfaceNavigableMap<K,V>
-
firstEntry
- Specified by:
firstEntryin interfaceNavigableMap<K,V>
-
lastEntry
- Specified by:
lastEntryin interfaceNavigableMap<K,V>
-
size
-
isEmpty
-
containsKey
- Specified by:
containsKeyin interfaceMap<K,V> - Overrides:
containsKeyin classAbstractMap<K,V>
-
get
-
keySet
-
values
-
entrySet
-
put
-
remove
-
clear
-
putIfAbsent
- Specified by:
putIfAbsentin interfaceConcurrentMap<K,V> - Specified by:
putIfAbsentin interfaceMap<K,V>
-
remove
-
replace
-
replace
-
pollFirstEntry
- Specified by:
pollFirstEntryin interfaceNavigableMap<K,V>
-
pollLastEntry
- Specified by:
pollLastEntryin interfaceNavigableMap<K,V>
-
descendingMap
- Specified by:
descendingMapin interfaceConcurrentNavigableMap<K,V> - Specified by:
descendingMapin interfaceNavigableMap<K,V>
-
subMap
-
headMap
-
subMap
public ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) - Specified by:
subMapin interfaceConcurrentNavigableMap<K,V> - Specified by:
subMapin interfaceNavigableMap<K,V>
-
headMap
- Specified by:
headMapin interfaceConcurrentNavigableMap<K,V> - Specified by:
headMapin interfaceNavigableMap<K,V>
-
descendingKeySet
- Specified by:
descendingKeySetin interfaceConcurrentNavigableMap<K,V> - Specified by:
descendingKeySetin interfaceNavigableMap<K,V>
-