Interface ReplicaChangelog

All Known Implementing Classes:
ReplicaChangelogImpl

public interface ReplicaChangelog
It represents the changelog of the replica.

Temporary interface to be able to test the leader based replication in the simulator, which implements fakes objects.

  • Field Details

    • EMPTY_CHANGELOG

      static final ReplicaChangelog EMPTY_CHANGELOG
      An empty changelog.
  • Method Details

    • appendUserRequest

      boolean appendUserRequest(ReplicatedDomain domain, PreOperationOperation operation)
      Appends a user request to the changelog.
      Parameters:
      domain - the replicated domain
      operation - the operation to append
      Returns:
      the Csn of the appended operation
    • csnNow

      Csn csnNow()
      Returns a Csn representing the current time, not attached to an update. It has a similar function to the ChangeTime heartbeat we used to have in MultiMaster Replication
      Returns:
      a Csn representing the current time
    • getChangelogState

      Map<Domain, ReplicaState> getChangelogState()
      Returns the changelog state.
      Returns:
      the changelog state
    • getOldestChangeOfStream

      Csn getOldestChangeOfStream(Domain domain, StreamId streamId)
      Returns the oldest change of the provided stream for the given domain.
      Parameters:
      domain - the domain to get the oldest change from
      streamId - the stream to get the oldest change from
      Returns:
      the oldest change of the provided stream
    • purgeUpTo

      void purgeUpTo(Csn purgePointThreshold)
      Purges the changelog up to the provided point.
      Parameters:
      purgePointThreshold - the minimum Csn to keep in the changelog
    • shutdown

      void shutdown()
      Shuts down the changelog.
    • start

      void start()
      Starts the changelog.
    • stop

      void stop()
      Stops the changelog.
    • fetchChangelogChanges

      void fetchChangelogChanges(Dn domain, ReplicaState fromStartingPoint, SearchResultHandler handler) throws LdapException
      Fetches changelog changes for the specified domain starting from the given replica state.
      Parameters:
      domain - the base DN of the domain
      fromStartingPoint - the starting point of the changes to fetch
      handler - the handler to process the fetched results
      Throws:
      LdapException