public static class FlashJournalRM.DefaultDependencies extends AbstractJournalRM.DefaultDependencies implements FlashJournalRM.Dependencies
Modifier and Type | Field and Description |
---|---|
static int |
DFT_BACKLOG_SIZE
Default maximum backlog (16MB).
|
static int |
DFT_BLOCK_SIZE
Default block size (256KB).
|
static double |
DFT_COLLECT_PCT
Default collection factor (collect files that are 25% or less utilized, unless in aggressive mode (high file count)).
|
static long |
DFT_FILE_SIZE
Default size of a file (2GB).
|
static long |
DFT_JOURNAL_SIZE
Default Journal Size (1TB).
|
static int |
DFT_POOL_SIZE
Default pool size (16MB).
|
static int |
DFT_PURGE_DELAY_MILLIS
Default delay until a tmp file is eligible for purging. 2 hours is the default.
|
static long |
DFT_WRITER_TIMEOUT
Default Writer Timeout (~8hrs).
|
static int |
MAX_BACKLOG_SIZE
Maximum backlog size (1GB).
|
static int |
MAX_BLOCK_SIZE
Maximum block size (1MB).
|
static long |
MAX_FILE_SIZE
Maximum size of a file (4GB).
|
static long |
MAX_JOURNAL_SIZE
Maximum Journal Size (2TB).
|
static int |
MAX_POOL_SIZE
Maximum pool size (1GB).
|
static int |
MAX_VALUE_SIZE
Maximum value size (64MB).
|
static int |
MIN_BACKLOG_SIZE
Minimum backlog size (4KB).
|
static int |
MIN_BLOCK_SIZE
Minimum block size (4KB).
|
static long |
MIN_FILE_SIZE
Minimum maximum size of a file (1MB).
|
static long |
MIN_WRITER_TIMEOUT
Minimum Writer Timeout (5mins).
|
m_cbMaxFile, m_cbMaxSize, m_cbMaxValue, m_cCollectorTimeout, m_dflLoadFactorGC, MAX_COLLECT_PCT, MAX_FILE_COUNT, MIN_COLLECT_PCT, MIN_TIMEOUT
Constructor and Description |
---|
DefaultDependencies()
Construct a DefaultDependencies object.
|
DefaultDependencies(FlashJournalRM.Dependencies deps)
Construct a DefaultDependencies object.
|
Modifier and Type | Method and Description |
---|---|
protected long |
calculateMaxFileSize(long cbJrnlSize)
Calculate the maximum size of each file based on the given the journal size.
|
int |
getBufferSize()
Return the size of the write buffers.
|
protected double |
getDefaultCollectorLoadFactor()
Get the default percentage at which a file is eligible for garbage collection.
|
protected long |
getDefaultMaxFileSize()
Get the default maximum file size for this Journal Resource Manager.
|
protected long |
getDefaultMaxSize()
Get the default maximum size (capacity) for this Journal Resource Manager.
|
protected int |
getDefaultMaxValueSize()
Get the default maximum value size for this Journal Resource Manager.
|
String |
getDirectory()
Return the directory used to store the underlying disk files for the journal.
|
int |
getHighFileCount()
Return the file count at which compulsory garbage collection (compaction) should start.
|
float |
getHighJournalFactor()
The high journal percentage is a soft limit on the journal size.
|
long |
getHighJournalSize()
The high journal size is a soft limit on the journal size.
|
int |
getMaxBacklogSize()
Return the size in bytes of the maximum backlog.
|
long |
getMaxPoolSize()
Return the maximum size of the write buffers pool.
|
protected long |
getPermittedMaxFileSize()
Return the highest memory size that can be allocated per journal file.
|
protected long |
getPermittedMaxJournalSize()
Return the highest memory size that can be allocated per journal.
|
protected int |
getPermittedMaxValueSize()
Return the highest memory size permitted for each value stored in the journal.
|
protected long |
getPermittedMinFileSize()
Return the lowest memory size that can be allocated per journal file.
|
protected long |
getPermittedMinJournalSize()
Return the lowest memory size that can be allocated per journal.
|
long |
getPurgeDelayMillis()
Return the delay since the last touch of a tmp file until it is eligible for purging.
|
long |
getWriterTimeout()
Return the number of milliseconds the Writer daemon can be unresponsive prior to considering it timed out.
|
FlashJournalRM.DefaultDependencies |
setBufferSize(int cb)
Configure the size of the write buffers.
|
FlashJournalRM.DefaultDependencies |
setDirectory(String dirTemp)
Configure the directory to use for journal files.
|
FlashJournalRM.DefaultDependencies |
setHighFileCount(int cHighFiles)
Set the high file count at which compulsory garbage collection (compaction) occurs.
|
FlashJournalRM.DefaultDependencies |
setHighJournalFactor(float flHighJournalPct)
Set the high journal percentage.
|
FlashJournalRM.DefaultDependencies |
setHighJournalSize(long cbHighJournalSize)
Set the high journal size.
|
FlashJournalRM.DefaultDependencies |
setMaxBacklogSize(int cb)
Specify the size, in bytes, of the maximum backlog.
|
FlashJournalRM.DefaultDependencies |
setMaxPoolSize(long cb)
Configure the size of the write buffers pool.
|
FlashJournalRM.DefaultDependencies |
setPurgeDelayMillis(long cPurgeDelayMillis)
Sets the delay from the last touch of a tmp file until it is eligible for purging.
|
FlashJournalRM.DefaultDependencies |
setWriterTimeout(long cWriterTimeout)
Set the number of milliseconds the Writer daemon can remain unresponsive prior to being considered timed out.
|
String |
toString()
Return the DefaultDependencies in String format.
|
FlashJournalRM.DefaultDependencies |
validate()
Validate the supplied dependencies.
|
protected void |
validateJournalSize()
Validate the journal and file size.
|
getCollectorLoadFactor, getCollectorTimeout, getDefaultCollectorTimeout, getMaxFileSize, getMaxJournalSize, getMaxValueSize, setCollectorLoadFactor, setCollectorTimeout, setMaxFileSize, setMaxJournalSize, setMaxValueSize, validateCollectorTimeout, validateLoadFactor, validateMaxValueSize
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getCollectorLoadFactor, getCollectorTimeout, getMaxFileSize, getMaxJournalSize, getMaxValueSize
public static final int MAX_VALUE_SIZE
public static final int MIN_BACKLOG_SIZE
public static final int MAX_BACKLOG_SIZE
public static final int DFT_BACKLOG_SIZE
public static final long MIN_FILE_SIZE
public static final long MAX_FILE_SIZE
public static final long DFT_FILE_SIZE
public static final int MIN_BLOCK_SIZE
public static final int MAX_BLOCK_SIZE
public static final int DFT_BLOCK_SIZE
public static final int MAX_POOL_SIZE
public static final int DFT_POOL_SIZE
public static final double DFT_COLLECT_PCT
public static final int DFT_PURGE_DELAY_MILLIS
public static final long MAX_JOURNAL_SIZE
public static final long DFT_JOURNAL_SIZE
public static final long MIN_WRITER_TIMEOUT
public static final long DFT_WRITER_TIMEOUT
public DefaultDependencies()
public DefaultDependencies(FlashJournalRM.Dependencies deps)
deps
- the dependencies to copy, or nullpublic long getMaxPoolSize()
getMaxPoolSize
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setMaxPoolSize(long cb)
DFT_POOL_SIZE
, with a maximum defined by MAX_POOL_SIZE
and a minimum enforced as the size of a single buffer.
Note: This value can only be set before the ResourceManager is started.
cb
- the size, in bytes, for the buffer poolpublic int getBufferSize()
getBufferSize
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setBufferSize(int cb)
DFT_BLOCK_SIZE
, with a minimum defined by MIN_BLOCK_SIZE
and a maximum defined by MAX_BLOCK_SIZE
.
Note: This value can only be set before the ResourceManager is started.
cb
- the size, in bytes, for the buffers to write to the underlying journal filespublic int getMaxBacklogSize()
getMaxBacklogSize
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setMaxBacklogSize(int cb)
DFT_BACKLOG_SIZE
, with a minimum defined by MIN_BACKLOG_SIZE
and a maximum defined by MAX_BACKLOG_SIZE
. The backlog is the amount of data that has been "dropped off" for the journal to write to disk, but which has not yet been written to disk; when the amount of backlog exceeds the maximum configured backlog, client threads attempting to "drop off" data are blocked until the backlog recedes below the maximum, thus helping to prevent out-of-memory conditions. Note that the maximum amount of memory used by the backlog is at least twice the configured amount, since the data dropped off is held in it Binary form and rendered to the write-behind buffers.
Note: This value can be modified while the ResourceManager is running.
cb
- the maximum allowable size of the backlogpublic String getDirectory()
getDirectory
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setDirectory(String dirTemp)
Note: This value can only be set before the ResourceManager is started.
dirTemp
- the directory to use for journal filespublic long getPurgeDelayMillis()
getPurgeDelayMillis
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setPurgeDelayMillis(long cPurgeDelayMillis)
cPurgeDelayMillis
- the delay in millisecondspublic int getHighFileCount()
This allows the GC thread to tune itself to try to avoid growing the journal beyond the high file count. However, this is not a hard-limit and the journal could still grow beyond that up to the max file count.
getHighFileCount
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setHighFileCount(int cHighFiles)
cHighFiles
- the high file countpublic long getHighJournalSize()
getHighJournalSize
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setHighJournalSize(long cbHighJournalSize)
cbHighJournalSize
- the high journal sizepublic float getHighJournalFactor()
getHighJournalFactor
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setHighJournalFactor(float flHighJournalPct)
flHighJournalPct
- the high journal percentagepublic long getWriterTimeout()
getWriterTimeout
in interface FlashJournalRM.Dependencies
public FlashJournalRM.DefaultDependencies setWriterTimeout(long cWriterTimeout)
cWriterTimeout
- number of millis the Writer daemon can remain unresponsivepublic FlashJournalRM.DefaultDependencies validate()
validate
in class AbstractJournalRM.DefaultDependencies
IllegalArgumentException
- if the dependencies are not validprotected long getDefaultMaxFileSize()
getDefaultMaxFileSize
in class AbstractJournalRM.DefaultDependencies
protected int getDefaultMaxValueSize()
getDefaultMaxValueSize
in class AbstractJournalRM.DefaultDependencies
protected long getDefaultMaxSize()
getDefaultMaxSize
in class AbstractJournalRM.DefaultDependencies
protected double getDefaultCollectorLoadFactor()
getDefaultCollectorLoadFactor
in class AbstractJournalRM.DefaultDependencies
protected long getPermittedMinJournalSize()
getPermittedMinJournalSize
in class AbstractJournalRM.DefaultDependencies
protected long getPermittedMaxJournalSize()
getPermittedMaxJournalSize
in class AbstractJournalRM.DefaultDependencies
protected long getPermittedMinFileSize()
getPermittedMinFileSize
in class AbstractJournalRM.DefaultDependencies
protected long getPermittedMaxFileSize()
getPermittedMaxFileSize
in class AbstractJournalRM.DefaultDependencies
protected int getPermittedMaxValueSize()
getPermittedMaxValueSize
in class AbstractJournalRM.DefaultDependencies
public String toString()
toString
in class AbstractJournalRM.DefaultDependencies
protected void validateJournalSize()
validateJournalSize
in class AbstractJournalRM.DefaultDependencies
protected long calculateMaxFileSize(long cbJrnlSize)
calculateMaxFileSize
in class AbstractJournalRM.DefaultDependencies
cbJrnlSize
- the size, in bytes, of the journal