public class ByteBufferRedoLogFileStorage<T extends IReplicationOrderedPacket> extends Object implements IRedoLogFileStorage<T>, IStorageSegmentsMediator
Modifier and Type | Class and Description |
---|---|
class |
ByteBufferRedoLogFileStorage.ByteArrayResource
A resource for byte array, ensure capacity must be called each time this resource is taken
|
Constructor and Description |
---|
ByteBufferRedoLogFileStorage(IByteBufferStorageFactory byteBufferStorageProvider) |
ByteBufferRedoLogFileStorage(IByteBufferStorageFactory byteBufferStorageProvider,
ByteBufferRedoLogFileConfig<T> config,
BacklogWeightPolicy backlogWeightPolicy) |
Modifier and Type | Method and Description |
---|---|
void |
allocatedNewResource(StorageSegment.SegmentCursor resource) |
void |
appendBatch(List<T> replicationPackets)
Adds a batch of packets that will be stored at the end of the list
|
void |
close()
Close the storage and clears its resources, the storage can no longer be used.
|
void |
deleteOldestPackets(long packetsCount)
Delete a batch from the start of the list
|
long |
getCacheWeight() |
long |
getDiscardedPacketsCount() |
long |
getExternalPacketsCount() |
long |
getMemoryPacketsCount() |
long |
getSpaceUsed() |
long |
getWeight() |
boolean |
isEmpty() |
CompactionResult |
performCompaction(long from,
long to) |
StorageReadOnlyIterator<T> |
readOnlyIterator() |
StorageReadOnlyIterator<T> |
readOnlyIterator(long fromIndex) |
WeightedBatch<T> |
removeFirstBatch(int batchCapacity,
long lastCompactionRangeEndKey)
Removes a batch from the start of the list
|
long |
size()
This method should not assume a reader lock is obtained when accessing it
|
void |
validateIntegrity()
Performs an integrity check that verifies the storage state and data is not compromised
|
public ByteBufferRedoLogFileStorage(IByteBufferStorageFactory byteBufferStorageProvider)
public ByteBufferRedoLogFileStorage(IByteBufferStorageFactory byteBufferStorageProvider, ByteBufferRedoLogFileConfig<T> config, BacklogWeightPolicy backlogWeightPolicy)
public void appendBatch(List<T> replicationPackets) throws StorageException, StorageFullException
IRedoLogFileStorage
appendBatch
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
replicationPackets
- packets to storeStorageException
StorageFullException
public void deleteOldestPackets(long packetsCount) throws StorageException
IRedoLogFileStorage
deleteOldestPackets
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
packetsCount
- to deleteStorageException
public WeightedBatch<T> removeFirstBatch(int batchCapacity, long lastCompactionRangeEndKey) throws StorageException
IRedoLogFileStorage
removeFirstBatch
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
batchCapacity
- WeightToRemove to removelastCompactionRangeEndKey
- packets with keys larger then this cannot be discardedStorageException
public StorageReadOnlyIterator<T> readOnlyIterator() throws StorageException
readOnlyIterator
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
StorageException
public StorageReadOnlyIterator<T> readOnlyIterator(long fromIndex) throws StorageException
readOnlyIterator
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
fromIndex
- index to start iterating fromStorageException
public long size() throws StorageException
IRedoLogFileStorage
size
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
StorageException
public boolean isEmpty() throws StorageException
isEmpty
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
StorageException
public long getSpaceUsed()
getSpaceUsed
in interface IRedoLogFileStorageStatistics
public long getExternalPacketsCount()
getExternalPacketsCount
in interface IRedoLogFileStorageStatistics
public long getMemoryPacketsCount()
getMemoryPacketsCount
in interface IRedoLogFileStorageStatistics
public void close()
IRedoLogFileStorage
close
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
public long getWeight()
getWeight
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
public long getDiscardedPacketsCount()
getDiscardedPacketsCount
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
public CompactionResult performCompaction(long from, long to)
performCompaction
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
public long getCacheWeight()
getCacheWeight
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
public void allocatedNewResource(StorageSegment.SegmentCursor resource)
allocatedNewResource
in interface IStorageSegmentsMediator
public void validateIntegrity() throws ByteBufferStorageCompromisedException
validateIntegrity
in interface IRedoLogFileStorage<T extends IReplicationOrderedPacket>
ByteBufferStorageCompromisedException
Copyright © GigaSpaces.