public abstract static class AbstractJournalRM.DefaultDependencies extends Object implements AbstractJournalRM.Dependencies
Modifier and Type | Field and Description |
---|---|
protected long |
m_cbMaxFile
Maximum size for any of the journal files (maximum-file-size).
|
protected long |
m_cbMaxSize
The maximum total amount of memory that the journal will allocate (maximum-size).
|
protected int |
m_cbMaxValue
Configurable maximum value size (maximum-value-size).
|
protected long |
m_cCollectorTimeout
The number of milliseconds the Collector daemon can remain unresponsive prior to being considered timed out.
|
protected double |
m_dflLoadFactorGC
The percentage (as a double in the range 0.01 to 0.99) at which a file is eligible for garbage collection (minimum-load-factor).
|
static double |
MAX_COLLECT_PCT
Maximum collection factor (0.99, i.e. files that are still almost full).
|
static int |
MAX_FILE_COUNT
Maximum file count for a Journal (511).
|
static double |
MIN_COLLECT_PCT
Minimum collection factor (0.01, i.e. files that are only 1% utilized).
|
static long |
MIN_TIMEOUT
Minimum allowed guardable timeout.
|
Constructor and Description |
---|
DefaultDependencies()
Construct a DefaultDependencies object.
|
DefaultDependencies(AbstractJournalRM.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.
|
double |
getCollectorLoadFactor()
Return the load factor threshold at which files become eligible for garbage collection (compaction).
|
long |
getCollectorTimeout()
Return the number of milliseconds the Collector can be unresponsive prior to considering the Collector timed out.
|
protected abstract double |
getDefaultCollectorLoadFactor()
Get the default percentage at which a file is eligible for garbage collection.
|
protected long |
getDefaultCollectorTimeout()
The default number of milliseconds the Collector daemon can remain unresponsive prior to being considered timed out.
|
protected abstract long |
getDefaultMaxFileSize()
Get the default maximum file size for this Journal Resource Manager.
|
protected abstract long |
getDefaultMaxSize()
Get the default maximum size (capacity) for this Journal Resource Manager.
|
protected abstract int |
getDefaultMaxValueSize()
Get the default maximum value size for this Journal Resource Manager.
|
long |
getMaxFileSize()
Return the maximum allowable size, in bytes, of each individual file used to hold Journal data.
|
long |
getMaxJournalSize()
Return the total amount of memory, in bytes, that can be allocated for Journal storage.
|
int |
getMaxValueSize()
Return the maximum allowable size, in bytes, of a Binary value.
|
protected abstract long |
getPermittedMaxFileSize()
Return the highest memory size that can be allocated per journal file.
|
protected abstract long |
getPermittedMaxJournalSize()
Return the highest memory size that can be allocated per journal.
|
protected abstract int |
getPermittedMaxValueSize()
Return the highest memory size permitted for each value stored in the journal.
|
protected abstract long |
getPermittedMinFileSize()
Return the lowest memory size that can be allocated per journal file.
|
protected abstract long |
getPermittedMinJournalSize()
Return the lowest memory size that can be allocated per journal.
|
AbstractJournalRM.DefaultDependencies |
setCollectorLoadFactor(double dflFactor)
Set the use-percentage of file below which it becomes eligible for garbage collection.
|
AbstractJournalRM.DefaultDependencies |
setCollectorTimeout(long cCollectorTimeout)
Set the number of milliseconds the Collector daemon can remain unresponsive prior to being considered timed out.
|
AbstractJournalRM.DefaultDependencies |
setMaxFileSize(long maxFileSize)
Set the maximum size of the underlying journal files.
|
AbstractJournalRM.DefaultDependencies |
setMaxJournalSize(long cbMax)
Set the total amount of bytes that can be allocated for Journal storage.
|
AbstractJournalRM.DefaultDependencies |
setMaxValueSize(int valueSize)
Set the maximum size, in bytes, of Binary values to store.
|
String |
toString()
Return the DefautlDependencies in String format.
|
AbstractJournalRM.Dependencies |
validate()
Validate the supplied dependencies.
|
protected void |
validateCollectorTimeout()
Validate the collector-timeout.
|
protected void |
validateJournalSize()
Validate the journal and file size.
|
protected void |
validateLoadFactor()
Validate the minimum-load-factor.
|
protected void |
validateMaxValueSize()
Validate the maximum-value-size.
|
public static final double MIN_COLLECT_PCT
public static final double MAX_COLLECT_PCT
public static final int MAX_FILE_COUNT
public static final long MIN_TIMEOUT
protected int m_cbMaxValue
protected long m_cbMaxFile
protected long m_cbMaxSize
protected double m_dflLoadFactorGC
protected long m_cCollectorTimeout
public DefaultDependencies()
public DefaultDependencies(AbstractJournalRM.Dependencies deps)
deps
- the dependencies to copy, or nullprotected abstract long getDefaultMaxFileSize()
protected abstract int getDefaultMaxValueSize()
protected abstract long getDefaultMaxSize()
protected abstract double getDefaultCollectorLoadFactor()
protected abstract long getPermittedMaxJournalSize()
protected abstract long getPermittedMinJournalSize()
protected abstract long getPermittedMaxFileSize()
protected abstract long getPermittedMinFileSize()
protected abstract int getPermittedMaxValueSize()
public int getMaxValueSize()
getMaxValueSize
in interface AbstractJournalRM.Dependencies
public AbstractJournalRM.DefaultDependencies setMaxValueSize(int valueSize)
valueSize
- the maximum allowable size for a Binary value, or zero to specify no configured maximum for the value sizepublic long getMaxFileSize()
getMaxFileSize
in interface AbstractJournalRM.Dependencies
public AbstractJournalRM.DefaultDependencies setMaxFileSize(long maxFileSize)
maxFileSize
- the maximum size, in bytes, for journal filespublic long getMaxJournalSize()
getMaxJournalSize
in interface AbstractJournalRM.Dependencies
public AbstractJournalRM.DefaultDependencies setMaxJournalSize(long cbMax)
cbMax
- the maximum number of bytes that can be allocated for journal storagepublic double getCollectorLoadFactor()
When the portion of released data exceeds (1 - threshold), the file becomes eligible for compaction (garbage collection).
getCollectorLoadFactor
in interface AbstractJournalRM.Dependencies
public AbstractJournalRM.DefaultDependencies setCollectorLoadFactor(double dflFactor)
MIN_COLLECT_PCT
and a maximum defined by MAX_COLLECT_PCT
. Setting the value higher means that disk space will be collected more aggressively, but the cost of collection will be significantly higher, while setting the value lower will use more disk space.dflFactor
- the garbage collector factor in the range 0.01 to 0.99public long getCollectorTimeout()
getCollectorTimeout
in interface AbstractJournalRM.Dependencies
public AbstractJournalRM.DefaultDependencies setCollectorTimeout(long cCollectorTimeout)
cCollectorTimeout
- number of millis the Collector daemon can remain unresponsivepublic AbstractJournalRM.Dependencies validate()
IllegalArgumentException
- if the dependencies are not validprotected long getDefaultCollectorTimeout()
public String toString()
protected void validateJournalSize()
protected void validateMaxValueSize()
protected void validateLoadFactor()
protected void validateCollectorTimeout()
protected long calculateMaxFileSize(long cbJrnlSize)
cbJrnlSize
- the size, in bytes, of the journal