mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
07.51.2015 9bcea8ad6b750851144f497e7cfab44f3c79a1c6
Code cleanup
1 files modified
161 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationDomainMonitorData.java 161 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationDomainMonitorData.java
@@ -22,7 +22,7 @@
 *
 *
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2012-2014 ForgeRock AS
 *      Portions Copyright 2012-2015 ForgeRock AS
 */
package org.opends.server.replication.server;
@@ -58,32 +58,17 @@
   *   date of the first missing change.
   */
  /** For each LDAP server, its server state. */
  private ConcurrentMap<Integer, ServerState> ldapStates =
    new ConcurrentHashMap<Integer, ServerState>();
  private ConcurrentMap<Integer, ServerState> ldapStates = new ConcurrentHashMap<>();
  /** A Map containing the ServerStates of each RS. */
  private ConcurrentMap<Integer, ServerState> rsStates =
    new ConcurrentHashMap<Integer, ServerState>();
  private ConcurrentMap<Integer, ServerState> rsStates = new ConcurrentHashMap<>();
  /** For each LDAP server, the last(max) CSN it published. */
  private ConcurrentMap<Integer, CSN> maxCSNs =
    new ConcurrentHashMap<Integer, CSN>();
  private ConcurrentMap<Integer, CSN> maxCSNs = new ConcurrentHashMap<>();
  /**
   * For each LDAP server, an approximation of the date of the first missing
   * change.
   */
  private ConcurrentMap<Integer, Long> firstMissingDates =
    new ConcurrentHashMap<Integer, Long>();
  private ConcurrentMap<Integer, Long> missingChanges =
    new ConcurrentHashMap<Integer, Long>();
  private ConcurrentMap<Integer, Long> missingChangesRS =
    new ConcurrentHashMap<Integer, Long>();
  /** For each LDAP server, an approximation of the date of the first missing change. */
  private ConcurrentMap<Integer, Long> firstMissingDates = new ConcurrentHashMap<>();
  private ConcurrentMap<Integer, Long> missingChanges = new ConcurrentHashMap<>();
  private ConcurrentMap<Integer, Long> missingChangesRS = new ConcurrentHashMap<>();
  /**
   * Get an approximation of the latency delay of the replication.
@@ -93,8 +78,9 @@
  public long getApproxDelay(int serverId)
  {
    Long afmd = firstMissingDates.get(serverId);
    if (afmd != null && afmd > 0)
    if (afmd != null && afmd > 0) {
      return (TimeThread.getTime() - afmd) / 1000;
    }
    return 0;
  }
@@ -105,10 +91,7 @@
   */
  public long getApproxFirstMissingDate(int serverId)
  {
    Long res = firstMissingDates.get(serverId);
    if (res != null)
      return res;
    return 0;
    return getValueOrZero(firstMissingDates.get(serverId));
  }
  /**
@@ -118,10 +101,7 @@
   */
  public long getMissingChanges(int serverId)
  {
    Long res = missingChanges.get(serverId);
    if (res != null)
      return res;
    return 0;
    return getValueOrZero(missingChanges.get(serverId));
  }
  /**
@@ -133,10 +113,12 @@
   */
  public long getMissingChangesRS(int serverId)
  {
    Long res = missingChangesRS.get(serverId);
    if (res != null)
      return res;
    return 0;
    return getValueOrZero(missingChangesRS.get(serverId));
  }
  private long getValueOrZero(Long res)
  {
    return res != null ? res : 0;
  }
  /**
@@ -144,7 +126,7 @@
   */
  public void completeComputing()
  {
    String mds = "";
    StringBuilder mds = new StringBuilder();
    // Computes the missing changes counters for LDAP servers
    // For each LSi ,
@@ -155,7 +137,37 @@
    {
      final Integer lsiServerId = entry.getKey();
      final ServerState lsiState = entry.getValue();
      long lsiMissingChanges = computeMissingChanges(mds, lsiServerId, lsiState);
      if (logger.isTraceEnabled()) {
        mds.append("=" + lsiMissingChanges);
      }
      this.missingChanges.put(lsiServerId, lsiMissingChanges);
    }
    // Computes the missing changes counters for RS :
    // Sum the difference of sequence numbers for each element in the States.
    for (Entry<Integer, ServerState> entry : rsStates.entrySet())
    {
      final Integer lsiServerId = entry.getKey();
      final ServerState lsiState = entry.getValue();
      long lsiMissingChanges = computeMissingChanges(mds, Integer.MIN_VALUE, lsiState);
      if (logger.isTraceEnabled()) {
        mds.append("=" + lsiMissingChanges);
      }
      this.missingChangesRS.put(lsiServerId, lsiMissingChanges);
      if (logger.isTraceEnabled())
      {
        logger.trace("Complete monitor data : Missing changes (" + lsiServerId + ")=" + mds);
      }
    }
  }
  private long computeMissingChanges(StringBuilder mds, final Integer lsiServerId, final ServerState lsiState)
  {
      long lsiMissingChanges = 0;
      if (lsiState != null) {
        for (Entry<Integer, CSN> entry2 : maxCSNs.entrySet())
@@ -167,10 +179,10 @@
          int missingChangesLsiLsj = CSN.diffSeqNum(lsjMaxCSN, lsiLastCSN);
          if (logger.isTraceEnabled()) {
            mds += "+ diff(" + lsjMaxCSN + "-"
                + lsiLastCSN + ")=" + missingChangesLsiLsj;
          mds.append("+ diff(" + lsjMaxCSN + "-" + lsiLastCSN + ")=" + missingChangesLsiLsj);
          }
          /*
        THIS BIT OF CODE IS IRRELEVANT TO RSs.
          Regarding a DS that is generating changes. If it is a local DS1,
          we get its server state, store it, then retrieve server states of
          remote DSs. When a remote server state is coming, it may contain
@@ -186,58 +198,14 @@
          {
            missingChangesLsiLsj = 0;
            if (logger.isTraceEnabled()) {
              mds +=
                  " (diff replaced by 0 as for server id " + lsiServerId + ")";
            mds.append(" (diff replaced by 0 as for server id " + lsiServerId + ")");
            }
          }
          lsiMissingChanges += missingChangesLsiLsj;
        }
      }
      if (logger.isTraceEnabled()) {
        mds += "=" + lsiMissingChanges;
      }
      this.missingChanges.put(lsiServerId, lsiMissingChanges);
    }
    // Computes the missing changes counters for RS :
    // Sum the difference of sequence numbers for each element in the States.
    for (Entry<Integer, ServerState> entry : rsStates.entrySet())
    {
      final Integer lsiServerId = entry.getKey();
      final ServerState lsiState = entry.getValue();
      long lsiMissingChanges = 0;
      if (lsiState != null)
      {
        for (Entry<Integer, CSN> entry2 : maxCSNs.entrySet())
        {
          final Integer lsjServerId = entry2.getKey();
          final CSN lsjMaxCSN = entry2.getValue();
          CSN lsiLastCSN = lsiState.getCSN(lsjServerId);
          int missingChangesLsiLsj = CSN.diffSeqNum(lsjMaxCSN, lsiLastCSN);
          if (logger.isTraceEnabled()) {
            mds += "+ diff(" + lsjMaxCSN + "-"
                + lsiLastCSN + ")=" + missingChangesLsiLsj;
          }
          lsiMissingChanges += missingChangesLsiLsj;
        }
      }
      if (logger.isTraceEnabled())
      {
        mds += "=" + lsiMissingChanges;
      }
      this.missingChangesRS.put(lsiServerId, lsiMissingChanges);
      if (logger.isTraceEnabled())
      {
        logger.trace(
          "Complete monitor data : Missing changes ("+ lsiServerId +")=" + mds);
      }
    }
    return lsiMissingChanges;
  }
  /**
@@ -248,14 +216,14 @@
  @Override
  public String toString()
  {
    String mds = "Monitor data=\n";
    StringBuilder mds = new StringBuilder("Monitor data=\n");
    // maxCSNs
    for (Entry<Integer, CSN> entry : maxCSNs.entrySet())
    {
      final Integer serverId = entry.getKey();
      final CSN csn = entry.getValue();
      mds += "\nmaxCSNs(" + serverId + ")= " + csn.toStringUI();
      mds.append("\nmaxCSNs(" + serverId + ")= " + csn.toStringUI());
    }
    // LDAP data
@@ -263,10 +231,10 @@
    {
      final Integer serverId = entry.getKey();
      final ServerState ss = entry.getValue();
      mds += "\nLSData(" + serverId + ")=\t"
      mds.append("\nLSData(" + serverId + ")=\t"
          + "state=[" + ss + "] afmd=" + getApproxFirstMissingDate(serverId)
          + " missingDelay=" + getApproxDelay(serverId)
          + " missingCount=" + missingChanges.get(serverId);
          + " missingCount=" + missingChanges.get(serverId));
    }
    // RS data
@@ -274,12 +242,12 @@
    {
      final Integer serverId = entry.getKey();
      final ServerState ss = entry.getValue();
      mds += "\nRSData(" + serverId + ")=\t" + "state=[" + ss
          + "] missingCount=" + missingChangesRS.get(serverId);
      mds.append("\nRSData(" + serverId + ")=\t" + "state=[" + ss
          + "] missingCount=" + missingChangesRS.get(serverId));
    }
    mds += "\n--";
    return mds;
    mds.append("\n--");
    return mds.toString();
  }
  /**
@@ -301,7 +269,11 @@
   */
  public void setMaxCSN(CSN newCSN)
  {
    if (newCSN == null) return;
    if (newCSN == null)
    {
      return;
    }
    int serverId = newCSN.getServerId();
    CSN currentMaxCSN = maxCSNs.get(serverId);
    if (currentMaxCSN == null)
@@ -310,6 +282,7 @@
    }
    else if (newCSN.isNewerThan(currentMaxCSN))
    {
      // TODO JNR should we check for unsuccessful replace?
      maxCSNs.replace(serverId, newCSN);
    }
  }