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

Multi data center replication

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • Replication

    Description

      HBase should consider supporting a federated deployment where someone might have terascale (or beyond) clusters in more than one geography and would want the system to handle replication between the clusters/regions. It would be sweet if HBase had something on the roadmap to sync between replicas out of the box.

      Consider if rows, columns, or even cells could be scoped: local, or global.

      Then, consider a background task on each cluster that replicates new globally scoped edits to peer clusters. The HBase/Bigtable data model has convenient features (timestamps, multiversioning) such that simple exchange of globally scoped cells would be conflict free and would "just work". Implementation effort here would be in producing an efficient mechanism for collecting up edits from all the HRS and transmitting the edits over the network to peers where they would then be split out to the HRS there. Holding on to the edit trace and tracking it until the remote commits succeed would also be necessary. So, HLog is probably the right place to set up the tee. This would be filtered log shipping, basically.

      This proposal does not consider transactional tables. For transactional tables, enforcement of global mutation commit ordering would come into the picture if the user wants the transaction to span the federation. This should be an optional feature even with transactional tables themselves being optional because of how slow it would be.

      Attachments

        Issue Links

        1.
        Collect HLogs and delete them after a period of time Sub-task Closed Jean-Daniel Cryans Actions
        2.
        Simple Master/Slave replication Sub-task Closed Jean-Daniel Cryans Actions
        3.
        Column family scoping and cluster identification Sub-task Closed Jean-Daniel Cryans Actions
        4.
        Handle 10min+ network partitions between clusters Sub-task Closed Jean-Daniel Cryans Actions
        5.
        Handle RS that fails while processing the failure of another one Sub-task Closed Himanshu Vashishtha Actions
        6.
        Enable Master-Master replication Sub-task Closed Jean-Daniel Cryans Actions
        7.
        Live modification of replication streams Sub-task Closed Unassigned Actions
        8.
        Start replication from a point in time Sub-task Closed Jean-Daniel Cryans Actions
        9.
        JRuby shell for replication Sub-task Closed Jean-Daniel Cryans Actions
        10.
        Support more than one slave cluster Sub-task Closed Lars Hofhansl Actions
        11.
        Support cyclic replication Sub-task Closed Lars Hofhansl Actions
        12.
        Pluggable replication framework Sub-task Closed Unassigned Actions
        13.
        Log replicator thread and HLog support Sub-task Closed Unassigned Actions
        14.
        Add scoping information to KVs Sub-task Closed Unassigned Actions
        15.
        Zookeeper wrapper support for elections Sub-task Closed Unassigned Actions
        16.
        Log entries we cannot apply in ReplicationSink Sub-task Closed Unassigned Actions
        17.
        Replication metrics Sub-task Closed Jean-Daniel Cryans Actions
        18.
        Record log region splits and region moves in the HLog Sub-task Closed Unassigned Actions
        19.
        Document new replication features in 0.92 Sub-task Closed Lars Hofhansl Actions
        20.
        Replication does not handle deletes correctly. Sub-task Closed Lars Hofhansl Actions
        21.
        Control replication peer per column family. Sub-task Closed Unassigned Actions

        Activity

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

          People

            Unassigned Unassigned Assign to me
            apurtell Andrew Kyle Purtell
            Votes:
            13 Vote for this issue
            Watchers:
            42 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment