public abstract class INKeyRep extends INArrayRep<INKeyRep,INKeyRep.Type,byte[]>
Default
that's capable of holding
any set of keys.MaxKeySize
that's more efficient for
holding small keys (LTE 16 bytes) in length. If key prefixing is in use this
represents the unprefixed part of the key, since that's what is stored in
this array.
The choice of representation is made when an IN node is first read in from
the log. The MaxKeySize
representation is only used when it is
more storage efficient than the default representation for the set of keys
currently associated with the IN.
Note that no attempt is currently made to optimize the storage
representation as keys are added to, or removed from, the
Default
representation to minimize the chances of transitionary
"back and forth" representation changes that could prove to be expensive.
Modifier and Type | Class and Description |
---|---|
static class |
INKeyRep.Default
The default representation that's capable of storing keys of any size.
|
static class |
INKeyRep.MaxKeySize
The compact representation that can be used to represent keys LTE 16
bytes in length.
|
static class |
INKeyRep.Type |
Constructor and Description |
---|
INKeyRep() |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
accountsForKeyByteMemUsage()
Returns true if the key bytes mem usage is accounted for internally
here, or false if each key has a separate byte array and its mem usage
is accounted for by the parent.
|
abstract int |
length() |
calculateMemorySize, compact, copy, get, getType, noteRepChange, set, updateCacheStats, updateCacheStats
public abstract int length()
public abstract boolean accountsForKeyByteMemUsage()
Copyright (c) 2004-2012 Oracle. All rights reserved.