org.apache.activemq.kaha.impl.async
Class AsyncDataManager
java.lang.Object
org.apache.activemq.kaha.impl.async.AsyncDataManager
- Direct Known Subclasses:
- ReadOnlyAsyncDataManager
public class AsyncDataManager
- extends java.lang.Object
Manages DataFiles
Method Summary |
void |
addInterestInFile(int file)
|
void |
close()
|
void |
consolidateDataFiles()
|
void |
consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse,
java.lang.Integer lastFile)
|
void |
consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse,
java.util.Set<java.lang.Integer> inProgress)
|
boolean |
delete()
|
java.lang.Integer |
getCurrentDataFileId()
|
java.io.File |
getDirectory()
|
java.io.File |
getDirectoryArchive()
|
long |
getDiskSize()
|
long |
getDiskSizeUntil(Location startPosition)
|
java.lang.String |
getFilePrefix()
|
java.util.Set<java.io.File> |
getFiles()
Get a set of files - only valid after start() |
java.util.Map<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> |
getInflightWrites()
|
Location |
getLastAppendLocation()
|
Location |
getMark()
|
int |
getMaxFileLength()
|
Location |
getNextLocation(DataFile dataFile,
Location lastLocation,
boolean thisFileOnly)
|
Location |
getNextLocation(java.io.File file,
Location lastLocation,
boolean thisFileOnly)
|
Location |
getNextLocation(Location location)
|
boolean |
isArchiveDataLogs()
|
boolean |
isUseNio()
|
void |
lock()
|
ByteSequence |
read(Location location)
|
protected Location |
recoveryCheck(DataFile dataFile,
Location location)
|
void |
removeInterestInFile(int file)
|
void |
removeLocation(Location location)
|
void |
setArchiveDataLogs(boolean archiveDataLogs)
|
void |
setDirectory(java.io.File directory)
|
void |
setDirectoryArchive(java.io.File directoryArchive)
|
void |
setFilePrefix(java.lang.String filePrefix)
|
void |
setLastAppendLocation(Location lastSyncedLocation)
|
void |
setMark(Location location,
boolean sync)
|
void |
setMaxFileLength(int maxFileLength)
|
void |
setUseNio(boolean useNio)
|
void |
start()
|
protected void |
storeState(boolean sync)
|
java.lang.String |
toString()
|
protected void |
unmarshallState(ByteSequence sequence)
|
void |
update(Location location,
ByteSequence data,
boolean sync)
|
Location |
write(ByteSequence data,
boolean sync)
|
Location |
write(ByteSequence data,
byte type,
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 |
CONTROL_RECORD_MAX_LENGTH
public static final int CONTROL_RECORD_MAX_LENGTH
- See Also:
- Constant Field Values
ITEM_HEAD_RESERVED_SPACE
public static final int ITEM_HEAD_RESERVED_SPACE
- See Also:
- Constant Field Values
ITEM_HEAD_SPACE
public static final int ITEM_HEAD_SPACE
- See Also:
- Constant Field Values
ITEM_HEAD_OFFSET_TO_SOR
public static final int ITEM_HEAD_OFFSET_TO_SOR
- See Also:
- Constant Field Values
ITEM_FOOT_SPACE
public static final int ITEM_FOOT_SPACE
- See Also:
- Constant Field Values
ITEM_HEAD_FOOT_SPACE
public static final int ITEM_HEAD_FOOT_SPACE
- See Also:
- Constant Field Values
ITEM_HEAD_SOR
public static final byte[] ITEM_HEAD_SOR
ITEM_HEAD_EOR
public static final byte[] ITEM_HEAD_EOR
DATA_ITEM_TYPE
public static final byte DATA_ITEM_TYPE
- See Also:
- Constant Field Values
REDO_ITEM_TYPE
public static final byte REDO_ITEM_TYPE
- See Also:
- Constant Field Values
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_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
scheduler
protected Scheduler scheduler
inflightWrites
protected final java.util.Map<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> inflightWrites
directory
protected java.io.File directory
directoryArchive
protected java.io.File directoryArchive
filePrefix
protected java.lang.String filePrefix
controlFile
protected ControlFile controlFile
started
protected boolean started
useNio
protected boolean useNio
maxFileLength
protected int maxFileLength
preferedFileLength
protected int preferedFileLength
appender
protected org.apache.activemq.kaha.impl.async.DataFileAppender 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
currentWriteFile
protected DataFile currentWriteFile
mark
protected Location mark
lastAppendLocation
protected final java.util.concurrent.atomic.AtomicReference<Location> lastAppendLocation
cleanupTask
protected java.lang.Runnable cleanupTask
storeSize
protected final java.util.concurrent.atomic.AtomicLong storeSize
archiveDataLogs
protected boolean archiveDataLogs
AsyncDataManager
public AsyncDataManager(java.util.concurrent.atomic.AtomicLong storeSize)
AsyncDataManager
public AsyncDataManager()
start
public void start()
throws java.io.IOException
- Throws:
java.io.IOException
lock
public void lock()
throws java.io.IOException
- Throws:
java.io.IOException
recoveryCheck
protected Location recoveryCheck(DataFile dataFile,
Location location)
throws java.io.IOException
- Throws:
java.io.IOException
unmarshallState
protected void unmarshallState(ByteSequence sequence)
throws java.io.IOException
- Throws:
java.io.IOException
removeLocation
public void removeLocation(Location location)
throws java.io.IOException
- Throws:
java.io.IOException
close
public void close()
throws java.io.IOException
- Throws:
java.io.IOException
delete
public boolean delete()
throws java.io.IOException
- Throws:
java.io.IOException
addInterestInFile
public void addInterestInFile(int file)
throws java.io.IOException
- Throws:
java.io.IOException
removeInterestInFile
public void removeInterestInFile(int file)
throws java.io.IOException
- Throws:
java.io.IOException
consolidateDataFilesNotIn
public void consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse,
java.util.Set<java.lang.Integer> inProgress)
throws java.io.IOException
- Throws:
java.io.IOException
consolidateDataFilesNotIn
public void consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse,
java.lang.Integer lastFile)
throws java.io.IOException
- Throws:
java.io.IOException
consolidateDataFiles
public void consolidateDataFiles()
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
getMark
public Location getMark()
throws java.lang.IllegalStateException
- Throws:
java.lang.IllegalStateException
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
setMark
public void setMark(Location location,
boolean sync)
throws java.io.IOException,
java.lang.IllegalStateException
- Throws:
java.io.IOException
java.lang.IllegalStateException
storeState
protected void storeState(boolean sync)
throws java.io.IOException
- Throws:
java.io.IOException
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
write
public Location write(ByteSequence data,
byte type,
boolean sync)
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<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> getInflightWrites()
getLastAppendLocation
public Location getLastAppendLocation()
setLastAppendLocation
public void setLastAppendLocation(Location lastSyncedLocation)
isUseNio
public boolean isUseNio()
setUseNio
public void setUseNio(boolean useNio)
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
getDiskSize
public long getDiskSize()
getDiskSizeUntil
public long getDiskSizeUntil(Location startPosition)
Copyright © 2005-2012. All Rights Reserved.