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