Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-7564

[replication] Create interfaces for manipulation of replication state

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.96.0
    • Replication
    • None

    Description

      Currently ReplicationZookeeper maintains all the zookeeper state for replication. This makes the class relatively large and slightly confusing. There are three major pieces of zookeeper state maintained for replication:

      1. The state of replication (i.e. whether replication is ENABLED or DISABLED on the cluster). This is held in the state znode.

      2. The set of slave (or peer) clusters that replication needs to ship edits to. This is held in the peer znode.

      3. The replication queues that keep track of which hlog files still need to be replicated. There is one queue for each replication source/peer cluster pair.

      Splitting each of these three pieces into their own interfaces will separate the implementation from the operations needed to manipulate replication state. This will allow easier unit testing of the replication logic and more flexibility for future implementations of how replication state is stored.

      The plan is to implement these changes as a series of patches (at least one for each of the three interfaces). The state interface will be first, since it is the most easily separable from the other two pieces.

      Attachments

        1. ReplicationRefactor-v2.pdf
          214 kB
          Chris Trezzo
        2. ReplicationRefactor.pdf
          217 kB
          Chris Trezzo

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ctrezzo Chris Trezzo
            ctrezzo Chris Trezzo
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment