public class AsyncDataManager extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected DataFileAccessorPool |
accessorPool |
protected org.apache.activemq.kaha.impl.async.DataFileAppender |
appender |
protected boolean |
archiveDataLogs |
protected java.lang.Runnable |
cleanupTask |
static int |
CONTROL_RECORD_MAX_LENGTH |
protected ControlFile |
controlFile |
protected DataFile |
currentWriteFile |
static byte |
DATA_ITEM_TYPE |
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 int |
DEFAULT_MAX_FILE_LENGTH |
protected java.io.File |
directory |
protected java.io.File |
directoryArchive |
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.util.Map<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> |
inflightWrites |
static int |
ITEM_FOOT_SPACE |
static byte[] |
ITEM_HEAD_EOR |
static int |
ITEM_HEAD_FOOT_SPACE |
static int |
ITEM_HEAD_OFFSET_TO_SOR |
static int |
ITEM_HEAD_RESERVED_SPACE |
static byte[] |
ITEM_HEAD_SOR |
static int |
ITEM_HEAD_SPACE |
protected java.util.concurrent.atomic.AtomicReference<Location> |
lastAppendLocation |
protected Location |
mark |
protected int |
maxFileLength |
static int |
PREFERED_DIFF |
protected int |
preferedFileLength |
static byte |
REDO_ITEM_TYPE |
protected Scheduler |
scheduler |
protected boolean |
started |
protected java.util.concurrent.atomic.AtomicLong |
storeSize |
protected boolean |
useNio |
| Constructor and Description |
|---|
AsyncDataManager() |
AsyncDataManager(java.util.concurrent.atomic.AtomicLong storeSize) |
| Modifier and Type | Method and Description |
|---|---|
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) |
public static final int CONTROL_RECORD_MAX_LENGTH
public static final int ITEM_HEAD_RESERVED_SPACE
public static final int ITEM_HEAD_SPACE
public static final int ITEM_HEAD_OFFSET_TO_SOR
public static final int ITEM_FOOT_SPACE
public static final int ITEM_HEAD_FOOT_SPACE
public static final byte[] ITEM_HEAD_SOR
public static final byte[] ITEM_HEAD_EOR
public static final byte DATA_ITEM_TYPE
public static final byte REDO_ITEM_TYPE
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 int DEFAULT_MAX_FILE_LENGTH
public static final int DEFAULT_CLEANUP_INTERVAL
public static final int PREFERED_DIFF
protected final java.util.Map<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> inflightWrites
protected java.io.File directory
protected java.io.File directoryArchive
protected java.lang.String filePrefix
protected ControlFile controlFile
protected boolean started
protected boolean useNio
protected int maxFileLength
protected int preferedFileLength
protected org.apache.activemq.kaha.impl.async.DataFileAppender appender
protected DataFileAccessorPool accessorPool
protected java.util.Map<java.io.File,DataFile> fileByFileMap
protected DataFile currentWriteFile
protected final java.util.concurrent.atomic.AtomicReference<Location> lastAppendLocation
protected java.lang.Runnable cleanupTask
protected final java.util.concurrent.atomic.AtomicLong storeSize
protected boolean archiveDataLogs
public AsyncDataManager(java.util.concurrent.atomic.AtomicLong storeSize)
public AsyncDataManager()
public void start() throws java.io.IOException
java.io.IOExceptionpublic void lock() throws java.io.IOException
java.io.IOExceptionprotected Location recoveryCheck(DataFile dataFile, Location location) throws java.io.IOException
java.io.IOExceptionprotected void unmarshallState(ByteSequence sequence) throws java.io.IOException
java.io.IOExceptionpublic void removeLocation(Location location) throws java.io.IOException
java.io.IOExceptionpublic void close() throws java.io.IOException
java.io.IOExceptionpublic boolean delete() throws java.io.IOException
java.io.IOExceptionpublic void addInterestInFile(int file) throws java.io.IOException
java.io.IOExceptionpublic void removeInterestInFile(int file) throws java.io.IOException
java.io.IOExceptionpublic void consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse, java.util.Set<java.lang.Integer> inProgress) throws java.io.IOException
java.io.IOExceptionpublic void consolidateDataFilesNotIn(java.util.Set<java.lang.Integer> inUse, java.lang.Integer lastFile) throws java.io.IOException
java.io.IOExceptionpublic void consolidateDataFiles() throws java.io.IOException
java.io.IOExceptionpublic int getMaxFileLength()
public void setMaxFileLength(int maxFileLength)
maxFileLength - the maxFileLength to setpublic java.lang.String toString()
toString in class java.lang.Objectpublic Location getMark() throws java.lang.IllegalStateException
java.lang.IllegalStateExceptionpublic Location getNextLocation(Location location) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic Location getNextLocation(java.io.File file, Location lastLocation, boolean thisFileOnly) throws java.lang.IllegalStateException, java.io.IOException
java.lang.IllegalStateExceptionjava.io.IOExceptionpublic Location getNextLocation(DataFile dataFile, Location lastLocation, boolean thisFileOnly) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic ByteSequence read(Location location) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic void setMark(Location location, boolean sync) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionprotected void storeState(boolean sync) throws java.io.IOException
java.io.IOExceptionpublic Location write(ByteSequence data, boolean sync) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic Location write(ByteSequence data, java.lang.Runnable onComplete) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic Location write(ByteSequence data, byte type, boolean sync) throws java.io.IOException, java.lang.IllegalStateException
java.io.IOExceptionjava.lang.IllegalStateExceptionpublic void update(Location location, ByteSequence data, boolean sync) throws java.io.IOException
java.io.IOExceptionpublic 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<DataFileAppender.WriteKey,DataFileAppender.WriteCommand> getInflightWrites()
public Location getLastAppendLocation()
public void setLastAppendLocation(Location lastSyncedLocation)
public boolean isUseNio()
public void setUseNio(boolean useNio)
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 long getDiskSize()
public long getDiskSizeUntil(Location startPosition)
Copyright © 2005-2012. All Rights Reserved.