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

Jean-Noel Rouvignac
09.43.2013 5c5b4b334c4ecb54c46cf909f3aabefb68171fe6
OPENDJ-1116 Introduce abstraction for the changelog DB

Changes after review from Matthew Swift.

ChangeNumberIndexDB.java:
In addRecord(), added a precision to the javadoc.

ReplicationDomainDB.java
In getDomainLatestTrimDate(), added a precision to the javadoc.
Added replicaHeartbeat() and replicaOffline().

JEChangelogDB.java:
Added empty implementation for replicaHeartbeat() and replicaOffline().
3 files modified
53 ■■■■■ changed files
opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java 3 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java 33 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 17 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java
@@ -87,6 +87,9 @@
   * <p>
   * This method is blocking if the size of the list of message is larger than
   * its maximum.
   * <p>
   * FIXME will be removed when ECLServerHandler will not be responsible anymore
   * for lazily building the ChangeNumberIndexDB.
   *
   * @param record
   *          The {@link CNIndexRecord} to add to this DB.
opends/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java
@@ -73,6 +73,9 @@
  /**
   * Retrieves the latest trim date for the specified replication domain.
   * <p>
   * FIXME will be removed when ECLServerHandler will not be responsible anymore
   * for lazily building the ChangeNumberIndexDB.
   *
   * @param baseDN
   *          the replication domain baseDN
@@ -215,4 +218,34 @@
  boolean publishUpdateMsg(DN baseDN, UpdateMsg updateMsg)
      throws ChangelogException;
  /**
   * Let the DB know this replica is alive.
   * <p>
   * This method allows the medium consistency point to move forward in case
   * this replica did not publish new changes.
   *
   * @param baseDN
   *          the replication domain baseDN
   * @param csn
   *          The CSN heartbeat sent by this replica (contains the serverId and
   *          timestamp of the heartbeat)
   */
  void replicaHeartbeat(DN baseDN, CSN csn);
  /**
   * Let the DB know this replica is going down.
   * <p>
   * This method allows to let the medium consistency point move forward while
   * this replica is offline.
   * <p>
   * Note: This method must not be called to let the DB know the replica is not
   * sending heartbeats anymore, i.e. it must not be used in case of suspected
   * network partition.
   *
   * @param baseDN
   *          the replication domain baseDN
   * @param serverId
   *          The replica's serverId going offline
   */
  void replicaOffline(DN baseDN, int serverId);
}
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -48,7 +48,7 @@
import static org.opends.server.util.StaticUtils.*;
/**
 * JE implementation of the ChangelogDB.
 * JE implementation of the ChangelogDB interface.
 */
public class JEChangelogDB implements ChangelogDB, ReplicationDomainDB
{
@@ -724,4 +724,19 @@
    return wasCreated;
  }
  /** {@inheritDoc} */
  @Override
  public void replicaHeartbeat(DN baseDN, CSN csn)
  {
    // TODO implement this when the changelogDB will be responsible for
    // maintaining the medium consistency point
  }
  /** {@inheritDoc} */
  @Override
  public void replicaOffline(DN baseDN, int serverId)
  {
    // TODO implement this when the changelogDB will be responsible for
    // maintaining the medium consistency point
  }
}