Details

    • Type: Task Task
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Invalid
    • Affects Version/s: None
    • Fix Version/s: 0.92.0
    • Component/s: master
    • Labels:
      None

      Description

      An umbrella issue for master rewrite. Master rewrite is a new feature for 0.21 hbase. I'm attaching "Master Rewrite" notes taken at the SU SF hbase meetup made by JGray.

      1. master-v4.patch
        136 kB
        stack
      2. master-v3.patch
        71 kB
        stack
      3. master-v2.patch
        45 kB
        stack
      4. master.patch
        56 kB
        stack
      5. meta-cleanup.patch
        70 kB
        Jean-Daniel Cryans
      6. HBase Hackathon Notes - Sunday.pdf
        251 kB
        stack

        Issue Links

          Activity

          Hide
          Jean-Daniel Cryans added a comment -

          Patch that removes a lot of meta and root stuff that's not needed when .META. is in ZK. It does not compile.

          Show
          Jean-Daniel Cryans added a comment - Patch that removes a lot of meta and root stuff that's not needed when .META. is in ZK. It does not compile.
          Hide
          stack added a comment -

          Started page up in wiki: http://wiki.apache.org/hadoop/Hbase/MasterRewrite. Will try and write up a bit of design for new server here.

          Show
          stack added a comment - Started page up in wiki: http://wiki.apache.org/hadoop/Hbase/MasterRewrite . Will try and write up a bit of design for new server here.
          Hide
          stack added a comment -

          A start. Clean up of main and start on data members and constructor.

          Show
          stack added a comment - A start. Clean up of main and start on data members and constructor.
          Hide
          stack added a comment -

          I've been adding to http://wiki.apache.org/hadoop/Hbase/MasterRewrite. Have proposal for moving schema and state out to zk but still a bit stuck on how to do regions. Regions need to stay in .META. once they've been deployed, I think, because .META. scales better and zk (though patrick and mohadev yesterday claimed 100k small objects should be fine in a dedicated quorum) and because you can't do getClosest against zk – not yet anyways.

          Show
          stack added a comment - I've been adding to http://wiki.apache.org/hadoop/Hbase/MasterRewrite . Have proposal for moving schema and state out to zk but still a bit stuck on how to do regions. Regions need to stay in .META. once they've been deployed, I think, because .META. scales better and zk (though patrick and mohadev yesterday claimed 100k small objects should be fine in a dedicated quorum) and because you can't do getClosest against zk – not yet anyways.
          Hide
          stack added a comment -

          More on the master cleanup theme. Not done yet.

          Show
          stack added a comment - More on the master cleanup theme. Not done yet.
          Hide
          stack added a comment -

          This patch I'll commit in morning if all tests pass. It doesn't add much. It removes some unused stuff from HMaster, moves some of its stuff out to FSUtils, cleans up some of the methods, makes all private and adds accessors rather than let package members have direct access to HMaster internals. I then went through RegionManager and removed all ServerManager references. I couldn't do vice-versa. This stuff is a real tangle.

          After committing above, I'm going to start work on moving schema and table state out to zk. That'll decimate this package undoing the need for a lot of whats in here.

          Show
          stack added a comment - This patch I'll commit in morning if all tests pass. It doesn't add much. It removes some unused stuff from HMaster, moves some of its stuff out to FSUtils, cleans up some of the methods, makes all private and adds accessors rather than let package members have direct access to HMaster internals. I then went through RegionManager and removed all ServerManager references. I couldn't do vice-versa. This stuff is a real tangle. After committing above, I'm going to start work on moving schema and table state out to zk. That'll decimate this package undoing the need for a lot of whats in here.
          Hide
          stack added a comment -

          Committed v4 above.

          Does following:

          + Downs the retries when tests are running from 10 to 4.
          + Made the RegionManager and ServerManager public (but kept their constructors package protected) so can live outside Master; made it so could get rid of a bunch of redirection where methods were duplicated in Master and all they did was go to RegionManager.
          + Removed unused data members and accessors in HMaster
          + Made all in HMaster private. Added accessors. Removed all mentions of ServerManager from RegionManager but unable to do the reciprocal just yet. There is really ugly stuff where in ServerManager, we'll sync on the RegionManager and then do a bunch of RegionManager operations. Hopefully most of these go when move table state and schema to zk.
          + Moved HMsg defines from ServerManager to HMsg where they belong
          + Cleaned up cruddy javadoc
          + Move fs methods out of HMaster to FSUtils.
          + Some cleanup of zk watchers. Moved method from HMaster out to zk master watcher class

          HMaster still too big.

          Working on moving state and schema to zk now. Will do as per the design where I write a JSON file that has an entry per table with state and schema

          Show
          stack added a comment - Committed v4 above. Does following: + Downs the retries when tests are running from 10 to 4. + Made the RegionManager and ServerManager public (but kept their constructors package protected) so can live outside Master; made it so could get rid of a bunch of redirection where methods were duplicated in Master and all they did was go to RegionManager. + Removed unused data members and accessors in HMaster + Made all in HMaster private. Added accessors. Removed all mentions of ServerManager from RegionManager but unable to do the reciprocal just yet. There is really ugly stuff where in ServerManager, we'll sync on the RegionManager and then do a bunch of RegionManager operations. Hopefully most of these go when move table state and schema to zk. + Moved HMsg defines from ServerManager to HMsg where they belong + Cleaned up cruddy javadoc + Move fs methods out of HMaster to FSUtils. + Some cleanup of zk watchers. Moved method from HMaster out to zk master watcher class HMaster still too big. Working on moving state and schema to zk now. Will do as per the design where I write a JSON file that has an entry per table with state and schema
          Hide
          stack added a comment -

          Removed safe-mode.

          Show
          stack added a comment - Removed safe-mode.
          Hide
          stack added a comment -

          Removed master lease period from conf and handling in RS and master. Its no longer needed now we have zk.

          Show
          stack added a comment - Removed master lease period from conf and handling in RS and master. Its no longer needed now we have zk.
          Hide
          stack added a comment -

          Removed hbase-1062 band-aid (hope its ok Andrew). Was getting in way of tests that used to wait around till safe-mode was cleared... but safe-mode has been removed. Test would put up blocker and wait on compactions before proceeding. But compactions wouldn't compact enough until the compaction thread had turned on compactions fully.. which would take a while. By the time they were fully operational, test had timed out. hbase-1062 was a band-aid. IIRC, conversation w/ apurtell had it that we should remove it now anyways since we no longer compact on open – only if references (which is not usual on open).

          Show
          stack added a comment - Removed hbase-1062 band-aid (hope its ok Andrew). Was getting in way of tests that used to wait around till safe-mode was cleared... but safe-mode has been removed. Test would put up blocker and wait on compactions before proceeding. But compactions wouldn't compact enough until the compaction thread had turned on compactions fully.. which would take a while. By the time they were fully operational, test had timed out. hbase-1062 was a band-aid. IIRC, conversation w/ apurtell had it that we should remove it now anyways since we no longer compact on open – only if references (which is not usual on open).
          Hide
          Andrew Purtell added a comment -

          +1 HBASE-1062 band aid removal.

          Show
          Andrew Purtell added a comment - +1 HBASE-1062 band aid removal.
          Hide
          stack added a comment -

          More work on design: http://wiki.apache.org/hadoop/Hbase/MasterRewrite. At Patrick Hunt's prompting, will have a znode per table up in zk to hold schema and state (rather than one znode to hold all). Also, carried forward Patrick's suggestion for how to keep region state. It involves a flip on previous notion where online regions were in .META. somehow and zk just managed unassigned to open. Instead, .META. lists all regions. zk holds moving regions from unassigned – i.e. mentioned in .META. but not in zk – through to online (online is a state in zk).

          Show
          stack added a comment - More work on design: http://wiki.apache.org/hadoop/Hbase/MasterRewrite . At Patrick Hunt's prompting, will have a znode per table up in zk to hold schema and state (rather than one znode to hold all). Also, carried forward Patrick's suggestion for how to keep region state. It involves a flip on previous notion where online regions were in .META. somehow and zk just managed unassigned to open. Instead, .META. lists all regions. zk holds moving regions from unassigned – i.e. mentioned in .META. but not in zk – through to online (online is a state in zk).
          Hide
          stack added a comment -

          Moved from 0.21 to 0.22 just after merge of old 0.20 branch into TRUNK.

          Show
          stack added a comment - Moved from 0.21 to 0.22 just after merge of old 0.20 branch into TRUNK.
          Hide
          stack added a comment -

          Closing as no longer valid.

          hbase-2692 did 3/4s of what this umbrella was about. I'll let the remaining 1/4 be handling over in the remaining unresolved subissues: HBASE-1730 and HBASE-451.

          Show
          stack added a comment - Closing as no longer valid. hbase-2692 did 3/4s of what this umbrella was about. I'll let the remaining 1/4 be handling over in the remaining unresolved subissues: HBASE-1730 and HBASE-451 .
          Hide
          Jonathan Gray added a comment -

          yipee

          Show
          Jonathan Gray added a comment - yipee

            People

            • Assignee:
              stack
              Reporter:
              stack
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development