public enum SparseRollCycles extends Enum<SparseRollCycles> implements RollCycle
Enum Constant and Description |
---|
HUGE_DAILY_XSPARSE
0xffffffffffff entries per day with super-sparse indexing (every (2^20)th entry)
|
LARGE_HOURLY_SPARSE
0x3ffffffff entries per hour with sparse indexing (every 1024th entry)
|
LARGE_HOURLY_XSPARSE
0x3ffffffffff entries per hour with super-sparse indexing (every (2^20)th entry)
|
SMALL_DAILY
0x20000000 entries per day, indexing every 8th entry
|
MAX_INDEX_COUNT
Modifier and Type | Method and Description |
---|---|
int |
defaultIndexCount() |
int |
defaultIndexSpacing()
Returns the space between excerpts that are explicitly indexed.
|
String |
format()
Returns the format that is to be applied when file names are calculated for a new roll cycle.
|
int |
lengthInMillis()
Returns the length in milliseconds (i.e.
|
long |
maxMessagesPerCycle() |
int |
toCycle(long index)
Returns the cycle for the given
index . |
long |
toIndex(int cycle,
long sequenceNumber)
Returns the index for the provided
cycle and sequenceNumber . |
long |
toSequenceNumber(long index)
Returns the sequence number for the provided
index . |
static SparseRollCycles |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static SparseRollCycles[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
current, defaultEpoch
public static final SparseRollCycles SMALL_DAILY
public static final SparseRollCycles LARGE_HOURLY_SPARSE
public static final SparseRollCycles LARGE_HOURLY_XSPARSE
public static final SparseRollCycles HUGE_DAILY_XSPARSE
public static SparseRollCycles[] values()
for (SparseRollCycles c : SparseRollCycles.values()) System.out.println(c);
public static SparseRollCycles valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic long maxMessagesPerCycle()
maxMessagesPerCycle
in interface RollCycle
public String format()
RollCycle
For example, the following formats can be returned:
cycle1 < cycle2
,
the same relation must be kept for their string representations.public int lengthInMillis()
RollCycle
For example, the following lengths can be returned:
lengthInMillis
in interface RollCycle
public int defaultIndexCount()
defaultIndexCount
in interface RollCycle
public int defaultIndexSpacing()
RollCycle
A higher number means higher sequential write performance but slower random access read. The sequential read performance is not affected by this property.
For example, the following default index spacing can be returned:
defaultIndexSpacing
in interface RollCycle
public long toIndex(int cycle, long sequenceNumber)
RollCycle
cycle
and sequenceNumber
.
An index is made up of cycle
shifted left + sequenceNumber
. sequenceNumber
starts at 0 for each new cycle
.
DAILY cycle has cycleShift=32 and sequenceMask=0xFFFFFFFF so the top 32 bits are for cycle and bottom
32 bits are for sequence. This means you can only store 2^32 entries per day.
HUGE_DAILY has shift=48 and mask=0xFFFFFFFFFFFF thus allowing 2^48 entries per day.
public long toSequenceNumber(long index)
RollCycle
index
.
An index comprises both a cycle and a sequence number but the way the index is composed of said properties may vary. This method
decomposes the provided index
and extracts the sequence number.
toSequenceNumber
in interface RollCycle
index
- to use to extract the sequence numberindex
public int toCycle(long index)
RollCycle
index
.
An index comprises both a cycle and a sequence number but the way the index is composed of said properties may vary. This method
decomposes the provided index
and extracts the cycle.
Copyright © 2024. All rights reserved.