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

Make memstore flush be able to retry after exception

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.94.6, 0.95.0
    • Fix Version/s: 0.94.6, 0.95.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      We will abort regionserver if memstore flush throws exception.

      I thinks we could do retry to make regionserver more stable because file system may be not ok in a transient time. e.g. Switching namenode in the NamenodeHA environment

      HRegion#internalFlushcache(){
      
      ...
      try {
      ...
      }catch(Throwable t){
      DroppedSnapshotException dse = new DroppedSnapshotException("region: " +
                Bytes.toStringBinary(getRegionName()));
      dse.initCause(t);
      throw dse;
      }
      ...
      
      }
      
      MemStoreFlusher#flushRegion(){
      ...
      region.flushcache();
      ...
       try {
      }catch(DroppedSnapshotException ex){
      server.abort("Replay of HLog required. Forcing server shutdown", ex);
      }
      
      ...
      }
      

        Attachments

        1. 7507-94.patch
          4 kB
          chunhui shen
        2. 7507-trunkv3.patch
          4 kB
          chunhui shen
        3. 7507-trunk v2.patch
          5 kB
          chunhui shen
        4. 7507-trunk v1.patch
          2 kB
          chunhui shen

          Issue Links

            Activity

              People

              • Assignee:
                zjushch chunhui shen
                Reporter:
                zjushch chunhui shen
              • Votes:
                0 Vote for this issue
                Watchers:
                13 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: