public class Journal extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Journal.WriteCommand |
static class |
Journal.WriteKey |
Modifier and Type | Field and Description |
---|---|
protected DataFileAccessorPool |
accessorPool |
protected FileAppender |
appender |
protected boolean |
archiveDataLogs |
static byte[] |
BATCH_CONTROL_RECORD_HEADER |
static byte[] |
BATCH_CONTROL_RECORD_MAGIC |
static int |
BATCH_CONTROL_RECORD_SIZE |
static byte |
BATCH_CONTROL_RECORD_TYPE |
static java.lang.String |
CALLER_BUFFER_APPENDER |
static boolean |
callerBufferAppender |
protected boolean |
checkForCorruptionOnStartup |
protected boolean |
checksum |
protected java.lang.Runnable |
cleanupTask |
protected LinkedNodeList<DataFile> |
dataFiles |
static java.lang.String |
DEFAULT_ARCHIVE_DIRECTORY |
static int |
DEFAULT_CLEANUP_INTERVAL |
static java.lang.String |
DEFAULT_DIRECTORY |
static java.lang.String |
DEFAULT_FILE_PREFIX |
static java.lang.String |
DEFAULT_FILE_SUFFIX |
static int |
DEFAULT_MAX_FILE_LENGTH |
static int |
DEFAULT_MAX_WRITE_BATCH_SIZE |
protected java.io.File |
directory |
protected java.io.File |
directoryArchive |
protected boolean |
enableAsyncDiskSync |
protected java.util.Map<java.io.File,DataFile> |
fileByFileMap |
protected java.util.Map<java.lang.Integer,DataFile> |
fileMap |
protected java.lang.String |
filePrefix |
protected java.lang.String |
fileSuffix |
protected java.util.Map<Journal.WriteKey,Journal.WriteCommand> |
inflightWrites |
protected java.util.concurrent.atomic.AtomicReference<Location> |
lastAppendLocation |
protected int |
maxFileLength |
static int |
PREFERED_DIFF |
protected int |
preferedFileLength |
static int |
RECORD_HEAD_SPACE |
protected boolean |
started |
protected java.util.concurrent.atomic.AtomicLong |
totalLength |
static byte |
USER_RECORD_TYPE |
protected int |
writeBatchSize |
Constructor and Description |
---|
Journal() |
Modifier and Type | Method and Description |
---|---|
void |
appendedExternally(Location loc,
int length) |
int |
checkBatchRecord(org.apache.kahadb.journal.DataFileAccessor reader,
int offset) |
protected void |
cleanup() |
void |
close() |
boolean |
delete() |
java.lang.Integer |
getCurrentDataFileId() |
java.io.File |
getDirectory() |
java.io.File |
getDirectoryArchive() |
long |
getDiskSize() |
java.io.File |
getFile(int nextNum) |
java.util.Map<java.lang.Integer,DataFile> |
getFileMap() |
java.lang.String |
getFilePrefix() |
java.util.Set<java.io.File> |
getFiles()
Get a set of files - only valid after start()
|
java.lang.String |
getFileSuffix() |
java.util.Map<Journal.WriteKey,Journal.WriteCommand> |
getInflightWrites() |
Location |
getLastAppendLocation() |
int |
getMaxFileLength() |
Location |
getNextLocation(DataFile dataFile,
Location lastLocation,
boolean thisFileOnly) |
Location |
getNextLocation(java.io.File file,
Location lastLocation,
boolean thisFileOnly) |
Location |
getNextLocation(Location location) |
ReplicationTarget |
getReplicationTarget() |
int |
getWriteBatchSize() |
boolean |
isArchiveDataLogs() |
boolean |
isCheckForCorruptionOnStartup() |
boolean |
isChecksum() |
boolean |
isEnableAsyncDiskSync() |
long |
length() |
ByteSequence |
read(Location location) |
protected Location |
recoveryCheck(DataFile dataFile) |
void |
removeDataFiles(java.util.Set<java.lang.Integer> files) |
void |
setArchiveDataLogs(boolean archiveDataLogs) |
void |
setCheckForCorruptionOnStartup(boolean checkForCorruptionOnStartup) |
void |
setChecksum(boolean checksumWrites) |
void |
setDirectory(java.io.File directory) |
void |
setDirectoryArchive(java.io.File directoryArchive) |
void |
setEnableAsyncDiskSync(boolean val) |
void |
setFilePrefix(java.lang.String filePrefix) |
void |
setFileSuffix(java.lang.String fileSuffix) |
void |
setLastAppendLocation(Location lastSyncedLocation) |
void |
setMaxFileLength(int maxFileLength) |
void |
setReplicationTarget(ReplicationTarget replicationTarget) |
void |
setSizeAccumulator(java.util.concurrent.atomic.AtomicLong storeSizeAccumulator) |
void |
setWriteBatchSize(int writeBatchSize) |
void |
start() |
java.lang.String |
toString() |
void |
update(Location location,
ByteSequence data,
boolean sync) |
Location |
write(ByteSequence data,
boolean sync) |
Location |
write(ByteSequence data,
java.lang.Runnable onComplete) |
public static final java.lang.String CALLER_BUFFER_APPENDER
public static final boolean callerBufferAppender
public static final int RECORD_HEAD_SPACE
public static final byte USER_RECORD_TYPE
public static final byte BATCH_CONTROL_RECORD_TYPE
public static final byte[] BATCH_CONTROL_RECORD_MAGIC
public static final int BATCH_CONTROL_RECORD_SIZE
public static final byte[] BATCH_CONTROL_RECORD_HEADER
public static final java.lang.String DEFAULT_DIRECTORY
public static final java.lang.String DEFAULT_ARCHIVE_DIRECTORY
public static final java.lang.String DEFAULT_FILE_PREFIX
public static final java.lang.String DEFAULT_FILE_SUFFIX
public static final int DEFAULT_MAX_FILE_LENGTH
public static final int DEFAULT_CLEANUP_INTERVAL
public static final int PREFERED_DIFF
public static final int DEFAULT_MAX_WRITE_BATCH_SIZE
protected final java.util.Map<Journal.WriteKey,Journal.WriteCommand> inflightWrites
protected java.io.File directory
protected java.io.File directoryArchive
protected java.lang.String filePrefix
protected java.lang.String fileSuffix
protected boolean started
protected int maxFileLength
protected int preferedFileLength
protected int writeBatchSize
protected FileAppender appender
protected DataFileAccessorPool accessorPool
protected java.util.Map<java.io.File,DataFile> fileByFileMap
protected LinkedNodeList<DataFile> dataFiles
protected final java.util.concurrent.atomic.AtomicReference<Location> lastAppendLocation
protected java.lang.Runnable cleanupTask
protected java.util.concurrent.atomic.AtomicLong totalLength
protected boolean archiveDataLogs
protected boolean checksum
protected boolean checkForCorruptionOnStartup
protected boolean enableAsyncDiskSync
public Journal()
public void start() throws java.io.IOException
java.io.IOException
protected Location recoveryCheck(DataFile dataFile) throws java.io.IOException
java.io.IOException
public int checkBatchRecord(org.apache.kahadb.journal.DataFileAccessor reader, int offset) throws java.io.IOException
java.io.IOException
public long length()
public java.io.File getFile(int nextNum)
public void close() throws java.io.IOException
java.io.IOException
protected void cleanup()
public boolean delete() throws java.io.IOException
java.io.IOException
public void removeDataFiles(java.util.Set<java.lang.Integer> files) throws java.io.IOException
java.io.IOException
public int getMaxFileLength()
public void setMaxFileLength(int maxFileLength)
maxFileLength
- the maxFileLength to setpublic java.lang.String toString()
toString
in class java.lang.Object
public void appendedExternally(Location loc, int length) throws java.io.IOException
java.io.IOException
public Location getNextLocation(Location location) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOException
java.lang.IllegalStateException
public Location getNextLocation(java.io.File file, Location lastLocation, boolean thisFileOnly) throws java.lang.IllegalStateException, java.io.IOException
java.lang.IllegalStateException
java.io.IOException
public Location getNextLocation(DataFile dataFile, Location lastLocation, boolean thisFileOnly) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOException
java.lang.IllegalStateException
public ByteSequence read(Location location) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOException
java.lang.IllegalStateException
public Location write(ByteSequence data, boolean sync) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOException
java.lang.IllegalStateException
public Location write(ByteSequence data, java.lang.Runnable onComplete) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOException
java.lang.IllegalStateException
public void update(Location location, ByteSequence data, boolean sync) throws java.io.IOException
java.io.IOException
public java.io.File getDirectory()
public void setDirectory(java.io.File directory)
public java.lang.String getFilePrefix()
public void setFilePrefix(java.lang.String filePrefix)
public java.util.Map<Journal.WriteKey,Journal.WriteCommand> getInflightWrites()
public Location getLastAppendLocation()
public void setLastAppendLocation(Location lastSyncedLocation)
public java.io.File getDirectoryArchive()
public void setDirectoryArchive(java.io.File directoryArchive)
public boolean isArchiveDataLogs()
public void setArchiveDataLogs(boolean archiveDataLogs)
public java.lang.Integer getCurrentDataFileId()
public java.util.Set<java.io.File> getFiles()
public java.util.Map<java.lang.Integer,DataFile> getFileMap()
public long getDiskSize()
public void setReplicationTarget(ReplicationTarget replicationTarget)
public ReplicationTarget getReplicationTarget()
public java.lang.String getFileSuffix()
public void setFileSuffix(java.lang.String fileSuffix)
public boolean isChecksum()
public void setChecksum(boolean checksumWrites)
public boolean isCheckForCorruptionOnStartup()
public void setCheckForCorruptionOnStartup(boolean checkForCorruptionOnStartup)
public void setWriteBatchSize(int writeBatchSize)
public int getWriteBatchSize()
public void setSizeAccumulator(java.util.concurrent.atomic.AtomicLong storeSizeAccumulator)
public void setEnableAsyncDiskSync(boolean val)
public boolean isEnableAsyncDiskSync()
Copyright © 2005-2017. All Rights Reserved.