public class PartitionStatistics extends Object implements ExternalizableLite
DistributionManager
and can be used by a PartitionAssignmentStrategy
to drive decisions about partition distribution.Modifier and Type | Field and Description |
---|---|
protected long |
m_cbStorageDirect
The portion of the partition size that is obtained directly from
partitioned maps (in bytes). |
protected AtomicLong |
m_cbStorageIndirect
The portion of the partition size that cannot be obtained directly and has to be adjusted upon each cache entry update (in bytes).
|
protected long |
m_cExecutionTime
The total amount of time (in ms) that tasks/requests were executing.
|
protected long |
m_cRequests
The number of requests on this partition during the sampling period.
|
protected long |
m_cSampleMillis
The sample duration (in ms).
|
protected long |
m_cWaitTime
The total amount of time (in ms) that tasks/requests spent waiting.
|
protected long |
m_ldtLastTransfer
The time at this this partition was last transferred.
|
protected long |
m_ldtSampleStart
The sample start time.
|
protected int |
m_nPartition
The partition ID.
|
Constructor and Description |
---|
PartitionStatistics()
Default constructor.
|
PartitionStatistics(int nPartition, long ldtArrived)
Constructor for the specified partition.
|
Modifier and Type | Method and Description |
---|---|
void |
adjustIndirectStorageSize(long cbDelta)
Adjust the non-PartitionAwareBackingMap storage size of the partition by the specified amount.
|
PartitionStatistics |
copyFrom(PartitionStatistics stats)
Copy the statistics from the specified PartitionStatistics reference.
|
String |
getDescription()
Return a human-readable description of this statistics object.
|
protected long |
getDirectStorageSize()
Return the partition size from partitioned maps.
|
protected long |
getIndirectStorageSize()
Return the partition size from non-PartitionAwareBackingMaps.
|
long |
getLastTransferTime()
Return the time (on the primary owner) at which the partition was last transferred or restored.
|
int |
getPartition()
Return the id of the partition for which these statistics apply.
|
long |
getRequestCount()
Return the number of requests/second issued for the partition.
|
long |
getSampleDuration()
Return the duration (ms) over which data was collected for this sample.
|
long |
getSampleStartTime()
Return the time (on the sampling member) at which this data collection for this sample started.
|
long |
getStorageSize()
Return the total size (in bytes) of the storage associated with the partition.
|
long |
getTaskExecutionTime()
Return the total amount of time (in ms) that tasks/requests for this partition spent executing.
|
long |
getTaskWaitTime()
Return the total amount of time (in ms) that tasks/requests for this partition spent waiting before execution.
|
void |
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.
|
void |
recordRequest(long cWaitMillis, long cExecMillis)
Update the partition statistics to record the specified request.
|
void |
reset()
Reset the partition statistics state.
|
PartitionStatistics |
setDirectStorageSize(long cb)
Set the PartitionAwareBackingMaps storage size of the partition.
|
String |
toString() |
void |
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.
|
protected int m_nPartition
protected long m_ldtLastTransfer
protected long m_ldtSampleStart
protected long m_cSampleMillis
protected long m_cbStorageDirect
partitioned
maps (in bytes). This value is only updated on the service thread and doesn't have to be atomic.protected AtomicLong m_cbStorageIndirect
protected long m_cRequests
protected long m_cExecutionTime
protected long m_cWaitTime
public PartitionStatistics()
public PartitionStatistics(int nPartition, long ldtArrived)
nPartition
- the partition idldtArrived
- the time at which this partition was transferred inpublic PartitionStatistics copyFrom(PartitionStatistics stats)
stats
- the statistics to copy frompublic void recordRequest(long cWaitMillis, long cExecMillis)
cWaitMillis
- the time (in ms) that the task/request spent waitingcExecMillis
- the time (in ms) that the task/request spent executingpublic void adjustIndirectStorageSize(long cbDelta)
cbDelta
- the amount to adjust the size (could be negative)public PartitionStatistics setDirectStorageSize(long cb)
Note that this method is called only on the service thread at the end of sampling period.
cb
- total storage size of the PartitionAwareBackingMaps in the partitionpublic void reset()
public int getPartition()
public long getLastTransferTime()
public long getTaskExecutionTime()
public long getTaskWaitTime()
public long getRequestCount()
protected long getDirectStorageSize()
protected long getIndirectStorageSize()
public long getStorageSize()
public long getSampleStartTime()
public long getSampleDuration()
public void readExternal(DataInput in) throws IOException
readExternal
in interface ExternalizableLite
in
- the DataInput stream to read data from in order to restore the state of this objectIOException
- if an I/O exception occursNotActiveException
- if the object is not in its initial state, and therefore cannot be deserialized intopublic void writeExternal(DataOutput out) throws IOException
writeExternal
in interface ExternalizableLite
out
- the DataOutput stream to write the state of this object toIOException
- if an I/O exception occurspublic String getDescription()