public class SingleChronicleQueueBuilder extends net.openhft.chronicle.wire.SelfDescribingMarshallable implements Cloneable
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_ROLL_CYCLE_PROPERTY |
Modifier | Constructor and Description |
---|---|
protected |
SingleChronicleQueueBuilder() |
Modifier and Type | Method and Description |
---|---|
static void |
addAliases() |
SingleChronicleQueueBuilder |
aesEncryption(@Nullable byte[] keyBytes) |
WriteLock |
appendLock() |
static SingleChronicleQueueBuilder |
binary(@NotNull File basePathFile) |
static SingleChronicleQueueBuilder |
binary(@NotNull Path path) |
static SingleChronicleQueueBuilder |
binary(@NotNull String basePath) |
long |
blockSize() |
SingleChronicleQueueBuilder |
blockSize(int blockSize) |
SingleChronicleQueueBuilder |
blockSize(long blockSize) |
@Nullable net.openhft.chronicle.core.util.ThrowingBiFunction<Long,Integer,net.openhft.chronicle.bytes.BytesStore,Exception> |
bufferBytesStoreCreator()
Creator for BytesStore for underlying ring buffer.
|
SingleChronicleQueueBuilder |
bufferBytesStoreCreator(net.openhft.chronicle.core.util.ThrowingBiFunction<Long,Integer,net.openhft.chronicle.bytes.BytesStore,Exception> bufferBytesStoreCreator) |
long |
bufferCapacity() |
@NotNull SingleChronicleQueueBuilder |
bufferCapacity(long bufferCapacity) |
boolean |
buffered()
Deprecated.
|
@NotNull SingleChronicleQueueBuilder |
buffered(boolean isBuffered)
Deprecated.
|
@NotNull SingleChronicleQueue |
build() |
static SingleChronicleQueueBuilder |
builder() |
static @NotNull SingleChronicleQueueBuilder |
builder(@NotNull File file,
@NotNull net.openhft.chronicle.wire.WireType wireType) |
static @NotNull SingleChronicleQueueBuilder |
builder(@NotNull Path path,
@NotNull net.openhft.chronicle.wire.WireType wireType) |
boolean |
checkInterrupts() |
SingleChronicleQueueBuilder |
checkInterrupts(boolean checkInterrupts) |
SingleChronicleQueueBuilder |
clone() |
SingleChronicleQueueBuilder |
codingSuppliers(@Nullable Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> encodingSupplier,
@Nullable Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> decodingSupplier) |
Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> |
decodingSupplier() |
static SingleChronicleQueueBuilder |
defaultZeroBinary(@NotNull File basePathFile) |
static SingleChronicleQueueBuilder |
deltaBinary(@NotNull File basePathFile) |
static SingleChronicleQueueBuilder |
deltaBinary(@NotNull File name,
byte deltaIntervalShift) |
int |
deltaCheckpointInterval() |
boolean |
doubleBuffer() |
SingleChronicleQueueBuilder |
doubleBuffer(boolean doubleBuffer)
Enables double-buffered writes on contention.
|
net.openhft.chronicle.core.threads.HandlerPriority |
drainerPriority()
Priority for ring buffer's drainer handler
|
SingleChronicleQueueBuilder |
drainerPriority(net.openhft.chronicle.core.threads.HandlerPriority drainerPriority) |
int |
drainerTimeoutMS() |
SingleChronicleQueueBuilder |
drainerTimeoutMS(int timeout) |
SingleChronicleQueueBuilder |
enablePreloader(long pretouchIntervalMillis)
Enable out-of-process pretoucher (AKA preloader) (Queue Enterprise feature)
|
boolean |
enableRingBufferMonitoring() |
SingleChronicleQueueBuilder |
enableRingBufferMonitoring(boolean enableRingBufferMonitoring) |
Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> |
encodingSupplier() |
long |
epoch() |
@NotNull SingleChronicleQueueBuilder |
epoch(long epoch)
sets epoch offset in milliseconds
|
@NotNull net.openhft.chronicle.core.threads.EventLoop |
eventLoop() |
@NotNull SingleChronicleQueueBuilder |
eventLoop(net.openhft.chronicle.core.threads.EventLoop eventLoop) |
static SingleChronicleQueueBuilder |
fieldlessBinary(@NotNull File name) |
boolean |
hasPretouchIntervalMillis() |
int |
indexCount() |
SingleChronicleQueueBuilder |
indexCount(int indexCount) |
int |
indexSpacing() |
SingleChronicleQueueBuilder |
indexSpacing(int indexSpacing) |
protected void |
initializeMetadata() |
SecretKeySpec |
key() |
int |
maxTailers()
maxTailers
|
SingleChronicleQueueBuilder |
maxTailers(int maxTailers)
RingBuffer tailers need to be preallocated.
|
SingleChronicleQueueBuilder |
messageHeader(net.openhft.chronicle.core.util.Updater<net.openhft.chronicle.bytes.Bytes> messageInitializer,
Consumer<net.openhft.chronicle.bytes.Bytes> messageHeaderReader) |
Consumer<net.openhft.chronicle.bytes.Bytes> |
messageHeaderReader() |
net.openhft.chronicle.core.util.Updater<net.openhft.chronicle.bytes.Bytes> |
messageInitializer() |
Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> |
onRingBufferStats() |
SingleChronicleQueueBuilder |
onRingBufferStats(@NotNull Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> onRingBufferStats)
consumer will be called every second, also as there is data to report
|
@NotNull File |
path() |
SingleChronicleQueueBuilder |
path(File path) |
SingleChronicleQueueBuilder |
path(Path path) |
SingleChronicleQueueBuilder |
path(String path) |
Supplier<net.openhft.chronicle.threads.TimingPauser> |
pauserSupplier() |
SingleChronicleQueueBuilder |
pauserSupplier(Supplier<net.openhft.chronicle.threads.TimingPauser> pauser) |
protected void |
preBuild() |
long |
pretouchIntervalMillis()
Interval in ms to invoke out of process pretoucher.
|
QueueOffsetSpec |
queueOffsetSpec() |
BufferMode |
readBufferMode() |
SingleChronicleQueueBuilder |
readBufferMode(BufferMode readBufferMode)
When readBufferMode is set to
Asynchronous , reads from the ring buffer. |
boolean |
readOnly() |
SingleChronicleQueueBuilder |
readOnly(boolean readOnly) |
boolean |
ringBufferForceCreateReader() |
SingleChronicleQueueBuilder |
ringBufferForceCreateReader(boolean ringBufferForceCreateReader) |
SingleChronicleQueueBuilder |
ringBufferPauser(net.openhft.chronicle.threads.Pauser ringBufferPauser)
Deprecated.
|
Supplier<net.openhft.chronicle.threads.Pauser> |
ringBufferPauserSupplier()
Pauser supplier for the pauser to be used by ring buffer when waiting
|
SingleChronicleQueueBuilder |
ringBufferPauserSupplier(Supplier<net.openhft.chronicle.threads.Pauser> ringBufferPauserSupplier) |
boolean |
ringBufferReaderCanDrain() |
SingleChronicleQueueBuilder |
ringBufferReaderCanDrain(boolean ringBufferReaderCanDrain) |
boolean |
ringBufferReopenReader() |
SingleChronicleQueueBuilder |
ringBufferReopenReader(boolean ringBufferReopenReader) |
@NotNull RollCycle |
rollCycle() |
@NotNull SingleChronicleQueueBuilder |
rollCycle(@NotNull RollCycle rollCycle) |
SingleChronicleQueueBuilder |
rollTime(LocalTime rollTime) |
SingleChronicleQueueBuilder |
rollTime(@NotNull LocalTime rollTime,
ZoneId zoneId) |
ZoneId |
rollTimeZone() |
SingleChronicleQueueBuilder |
rollTimeZone(ZoneId rollTimeZone) |
SingleChronicleQueueBuilder |
setAllNullFields(@Nullable SingleChronicleQueueBuilder parentBuilder)
updates all the fields in
this that are null, from the parentBuilder |
static SingleChronicleQueueBuilder |
single() |
static SingleChronicleQueueBuilder |
single(@NotNull File basePath) |
static SingleChronicleQueueBuilder |
single(@NotNull String basePath) |
int |
sourceId() |
SingleChronicleQueueBuilder |
sourceId(int sourceId) |
WireStoreFactory |
storeFactory() |
StoreFileListener |
storeFileListener() |
SingleChronicleQueueBuilder |
storeFileListener(StoreFileListener storeFileListener) |
boolean |
strongAppenders() |
SingleChronicleQueueBuilder |
strongAppenders(boolean strongAppenders) |
SingleChronicleQueueBuilder |
testBlockSize()
THIS IS FOR TESTING ONLY.
|
long |
timeoutMS() |
SingleChronicleQueueBuilder |
timeoutMS(long timeoutMS) |
net.openhft.chronicle.core.time.TimeProvider |
timeProvider() |
SingleChronicleQueueBuilder |
timeProvider(net.openhft.chronicle.core.time.TimeProvider timeProvider) |
@NotNull net.openhft.chronicle.wire.WireType |
wireType() |
@NotNull SingleChronicleQueueBuilder |
wireType(@NotNull net.openhft.chronicle.wire.WireType wireType) |
@NotNull BufferMode |
writeBufferMode() |
SingleChronicleQueueBuilder |
writeBufferMode(BufferMode writeBufferMode)
When writeBufferMode is set to
Asynchronous , uses a ring buffer to buffer appends, excerpts are written to the
Chronicle Queue using a background thread. |
usesSelfDescribingMessage
equals, hashCode, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
$equals, $fieldInfoMap, $fieldInfos, $hashCode, $toString, className, copyFrom, copyTo, deepCopy, fromFile, fromFile, fromFileAsMap, fromFileAsMap, fromHexString, fromString, fromString, fromString, getField, getLongField, mergeToMap, readMarshallable, reset, setField, setLongField, streamFromFile, streamFromFile, writeMarshallable
public static final String DEFAULT_ROLL_CYCLE_PROPERTY
public static void addAliases()
public static SingleChronicleQueueBuilder builder()
@NotNull public static @NotNull SingleChronicleQueueBuilder builder(@NotNull @NotNull Path path, @NotNull @NotNull net.openhft.chronicle.wire.WireType wireType)
@NotNull public static @NotNull SingleChronicleQueueBuilder builder(@NotNull @NotNull File file, @NotNull @NotNull net.openhft.chronicle.wire.WireType wireType)
public static SingleChronicleQueueBuilder single()
public static SingleChronicleQueueBuilder single(@NotNull @NotNull String basePath)
public static SingleChronicleQueueBuilder single(@NotNull @NotNull File basePath)
public static SingleChronicleQueueBuilder binary(@NotNull @NotNull Path path)
public static SingleChronicleQueueBuilder binary(@NotNull @NotNull String basePath)
public static SingleChronicleQueueBuilder binary(@NotNull @NotNull File basePathFile)
public static SingleChronicleQueueBuilder fieldlessBinary(@NotNull @NotNull File name)
public static SingleChronicleQueueBuilder defaultZeroBinary(@NotNull @NotNull File basePathFile)
public static SingleChronicleQueueBuilder deltaBinary(@NotNull @NotNull File basePathFile)
public static SingleChronicleQueueBuilder deltaBinary(@NotNull @NotNull File name, byte deltaIntervalShift)
name
- the file namedeltaIntervalShift
- default value of 6, the shift for deltaInterval, the should be a
number between 0-63 ( inclusive ), default the delta messaging is
check pointed every 64 messages, so the default deltaIntervalShift == 6
, as 1 << 6 == 64
public WireStoreFactory storeFactory()
@NotNull public @NotNull SingleChronicleQueue build()
public SingleChronicleQueueBuilder aesEncryption(@Nullable @Nullable byte[] keyBytes)
public net.openhft.chronicle.core.util.Updater<net.openhft.chronicle.bytes.Bytes> messageInitializer()
public Consumer<net.openhft.chronicle.bytes.Bytes> messageHeaderReader()
public SingleChronicleQueueBuilder messageHeader(net.openhft.chronicle.core.util.Updater<net.openhft.chronicle.bytes.Bytes> messageInitializer, Consumer<net.openhft.chronicle.bytes.Bytes> messageHeaderReader)
public SingleChronicleQueueBuilder rollTime(LocalTime rollTime)
public ZoneId rollTimeZone()
public SingleChronicleQueueBuilder rollTimeZone(ZoneId rollTimeZone)
public SingleChronicleQueueBuilder rollTime(@NotNull @NotNull LocalTime rollTime, ZoneId zoneId)
protected void initializeMetadata()
public int deltaCheckpointInterval()
public QueueOffsetSpec queueOffsetSpec()
public SingleChronicleQueueBuilder maxTailers(int maxTailers)
maxTailers
- number of tailers that will be required from this queue, not including the draining tailerpublic int maxTailers()
public SingleChronicleQueueBuilder bufferBytesStoreCreator(net.openhft.chronicle.core.util.ThrowingBiFunction<Long,Integer,net.openhft.chronicle.bytes.BytesStore,Exception> bufferBytesStoreCreator)
@Nullable public @Nullable net.openhft.chronicle.core.util.ThrowingBiFunction<Long,Integer,net.openhft.chronicle.bytes.BytesStore,Exception> bufferBytesStoreCreator()
public SingleChronicleQueueBuilder enablePreloader(long pretouchIntervalMillis)
pretouchIntervalMillis
- public long pretouchIntervalMillis()
public boolean hasPretouchIntervalMillis()
public SingleChronicleQueueBuilder path(String path)
public SingleChronicleQueueBuilder path(File path)
public SingleChronicleQueueBuilder path(Path path)
public SingleChronicleQueueBuilder onRingBufferStats(@NotNull @NotNull Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> onRingBufferStats)
onRingBufferStats
- a consumer of the BytesRingBufferStatspublic Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> onRingBufferStats()
@NotNull public @NotNull File path()
public SingleChronicleQueueBuilder blockSize(long blockSize)
public SingleChronicleQueueBuilder blockSize(int blockSize)
public long blockSize()
public SingleChronicleQueueBuilder testBlockSize()
Using this will be slower when you have many messages, and break when you have large messages.
@NotNull public @NotNull SingleChronicleQueueBuilder wireType(@NotNull @NotNull net.openhft.chronicle.wire.WireType wireType)
@NotNull public @NotNull net.openhft.chronicle.wire.WireType wireType()
@NotNull public @NotNull SingleChronicleQueueBuilder rollCycle(@NotNull @NotNull RollCycle rollCycle)
@NotNull public @NotNull RollCycle rollCycle()
public long bufferCapacity()
@NotNull public @NotNull SingleChronicleQueueBuilder bufferCapacity(long bufferCapacity)
bufferCapacity
- sets the ring buffer capacity in bytes@NotNull public @NotNull SingleChronicleQueueBuilder epoch(long epoch)
epoch
- sets an epoch offset as the number of number of milliseconds since January 1,
1970, 00:00:00 GMTthis
public long epoch()
@NotNull @Deprecated public @NotNull SingleChronicleQueueBuilder buffered(boolean isBuffered)
true
. uses a ring buffer to buffer appends, excerpts are written to the
Chronicle Queue using a background thread. See also writeBufferMode()
isBuffered
- true
if the append is buffered@Deprecated public boolean buffered()
@NotNull public @NotNull BufferMode writeBufferMode()
public SingleChronicleQueueBuilder writeBufferMode(BufferMode writeBufferMode)
Asynchronous
, uses a ring buffer to buffer appends, excerpts are written to the
Chronicle Queue using a background thread.
See also bufferCapacity()
See also bufferBytesStoreCreator()
See also software.chronicle.enterprise.ring.EnterpriseRingBufferwriteBufferMode
- bufferMode for writingpublic BufferMode readBufferMode()
public SingleChronicleQueueBuilder readBufferMode(BufferMode readBufferMode)
Asynchronous
, reads from the ring buffer. This requires
that writeBufferMode()
is also set to Asynchronous
.
See also bufferCapacity()
See also bufferBytesStoreCreator()
See also software.chronicle.enterprise.ring.EnterpriseRingBufferreadBufferMode
- BufferMode for read@NotNull public @NotNull net.openhft.chronicle.core.threads.EventLoop eventLoop()
eventLoop
that was set@NotNull public @NotNull SingleChronicleQueueBuilder eventLoop(net.openhft.chronicle.core.threads.EventLoop eventLoop)
public boolean enableRingBufferMonitoring()
public SingleChronicleQueueBuilder enableRingBufferMonitoring(boolean enableRingBufferMonitoring)
public boolean ringBufferReaderCanDrain()
public SingleChronicleQueueBuilder ringBufferReaderCanDrain(boolean ringBufferReaderCanDrain)
public boolean ringBufferForceCreateReader()
public SingleChronicleQueueBuilder ringBufferForceCreateReader(boolean ringBufferForceCreateReader)
public boolean ringBufferReopenReader()
public SingleChronicleQueueBuilder ringBufferReopenReader(boolean ringBufferReopenReader)
public net.openhft.chronicle.core.threads.HandlerPriority drainerPriority()
public SingleChronicleQueueBuilder drainerPriority(net.openhft.chronicle.core.threads.HandlerPriority drainerPriority)
public int drainerTimeoutMS()
public SingleChronicleQueueBuilder drainerTimeoutMS(int timeout)
public Supplier<net.openhft.chronicle.threads.Pauser> ringBufferPauserSupplier()
@Deprecated public SingleChronicleQueueBuilder ringBufferPauser(net.openhft.chronicle.threads.Pauser ringBufferPauser)
public SingleChronicleQueueBuilder ringBufferPauserSupplier(Supplier<net.openhft.chronicle.threads.Pauser> ringBufferPauserSupplier)
public SingleChronicleQueueBuilder indexCount(int indexCount)
public int indexCount()
public SingleChronicleQueueBuilder indexSpacing(int indexSpacing)
public int indexSpacing()
public net.openhft.chronicle.core.time.TimeProvider timeProvider()
public SingleChronicleQueueBuilder timeProvider(net.openhft.chronicle.core.time.TimeProvider timeProvider)
public Supplier<net.openhft.chronicle.threads.TimingPauser> pauserSupplier()
public SingleChronicleQueueBuilder pauserSupplier(Supplier<net.openhft.chronicle.threads.TimingPauser> pauser)
public SingleChronicleQueueBuilder timeoutMS(long timeoutMS)
public long timeoutMS()
public SingleChronicleQueueBuilder storeFileListener(StoreFileListener storeFileListener)
public StoreFileListener storeFileListener()
public SingleChronicleQueueBuilder sourceId(int sourceId)
public int sourceId()
public boolean readOnly()
public SingleChronicleQueueBuilder readOnly(boolean readOnly)
public boolean doubleBuffer()
public SingleChronicleQueueBuilder doubleBuffer(boolean doubleBuffer)
Enables double-buffered writes on contention.
Normally, all writes to the queue will be serialized based on the write lock acquisition. Each time MarshallableOut.writingDocument()
is called, appender tries to acquire the write lock on the queue, and if it fails to do so it blocks until write
lock is unlocked, and in turn locks the queue for itself.
When double-buffering is enabled, if appender sees that the write lock is acquired upon MarshallableOut.writingDocument()
call,
it returns immediately with a context pointing to the secondary buffer, and essentially defers lock acquisition
until the context.close() is called (normally with try-with-resources pattern it is at the end of the try block),
allowing user to go ahead writing data, and then essentially doing memcpy on the serialized data (thus reducing cost of serialization).
This is only useful if (majority of) the objects being written to the queue are big enough AND their marshalling is not straight-forward (e.g. BytesMarshallable's marshalling is very efficient and quick and hence double-buffering will only slow things down), and if there's a heavy contention on writes (e.g. 2 or more threads writing a lot of data to the queue at a very high rate).
public Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> encodingSupplier()
public Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> decodingSupplier()
public SingleChronicleQueueBuilder codingSuppliers(@Nullable @Nullable Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> encodingSupplier, @Nullable @Nullable Supplier<BiConsumer<net.openhft.chronicle.bytes.BytesStore,net.openhft.chronicle.bytes.Bytes>> decodingSupplier)
public SecretKeySpec key()
protected void preBuild()
public SingleChronicleQueueBuilder strongAppenders(boolean strongAppenders)
strongAppenders
- by default, we create the appenders as a weak reference, these can get garbage collected. To avoid them becoming unnecessarily garbage collected, set this to true
public boolean strongAppenders()
true
if we are using strong appender, by default, we create the appenders in a thread-local, weak reference, these can get
garbage collected. * Setting them to strong will ensure they are created using a strong reference.public boolean checkInterrupts()
public SingleChronicleQueueBuilder checkInterrupts(boolean checkInterrupts)
public SingleChronicleQueueBuilder clone()
public SingleChronicleQueueBuilder setAllNullFields(@Nullable @Nullable SingleChronicleQueueBuilder parentBuilder)
this
that are null, from the parentBuilderparentBuilder
- the parentBuilder Chronicle Queue Builderpublic WriteLock appendLock()
Copyright © 2020. All rights reserved.