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

Make memstore flush be able to retry after exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.94.6, 0.95.0
    • 0.94.6, 0.95.0
    • None
    • None
    • 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-trunk v1.patch
          2 kB
          Chunhui Shen
        3. 7507-trunk v2.patch
          5 kB
          Chunhui Shen
        4. 7507-trunkv3.patch
          4 kB
          Chunhui Shen

        Issue Links

          Activity

            People

              zjushch Chunhui Shen
              zjushch Chunhui Shen
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: