| | |
| | | /** |
| | | * The monitor data consolidated over the topology. |
| | | */ |
| | | private volatile MonitorData monitorData = new MonitorData(); |
| | | private volatile ReplicationDomainMonitorData monitorData = |
| | | new ReplicationDomainMonitorData(); |
| | | |
| | | /** |
| | | * This lock guards against multiple concurrent monitor data recalculation. |
| | |
| | | * <p> |
| | | * Guarded by pendingMonitorDataLock. |
| | | */ |
| | | private MonitorData pendingMonitorData; |
| | | private ReplicationDomainMonitorData pendingMonitorData; |
| | | |
| | | /** |
| | | * A set containing the IDs of servers from which we are currently expecting |
| | |
| | | * @return The latest monitor data available for this replication server |
| | | * domain, which is never {@code null}. |
| | | */ |
| | | public MonitorData getMonitorData() |
| | | public ReplicationDomainMonitorData getMonitorData() |
| | | { |
| | | return monitorData; |
| | | } |
| | |
| | | * @throws InterruptedException |
| | | * If this thread is interrupted while waiting for a response. |
| | | */ |
| | | public MonitorData computeDomainMonitorData() throws InterruptedException |
| | | public ReplicationDomainMonitorData computeDomainMonitorData() |
| | | throws InterruptedException |
| | | { |
| | | // Only allow monitor recalculation at a time. |
| | | synchronized (pendingMonitorLock) |
| | |
| | | { |
| | | // Clear the pending monitor data. |
| | | pendingMonitorDataServerIDs.clear(); |
| | | pendingMonitorData = new MonitorData(); |
| | | pendingMonitorData = new ReplicationDomainMonitorData(); |
| | | |
| | | initializePendingMonitorData(); |
| | | |