Interface TableIntegrityErrorHandler

All Known Implementing Classes:
HbckTableInfo.HDFSIntegrityFixer, HbckTableInfo.IntegrityFixSuggester, TableIntegrityErrorHandlerImpl

@Private public interface TableIntegrityErrorHandler
This interface provides callbacks for handling particular table integrity invariant violations. This could probably be boiled down to handling holes and handling overlaps but currently preserves the older more specific error condition codes.
  • Method Details

    • getTableInfo

    • setTableInfo

      Set the TableInfo used by all HRegionInfos fabricated by other callbacks
    • handleRegionStartKeyNotEmpty

      Callback for handling case where a Table has a first region that does not have an empty start key.
      Parameters:
      hi - An HbckRegionInfo of the second region in a table. This should have a non-empty startkey, and can be used to fabricate a first region that has an empty start key.
      Throws:
      IOException
    • handleRegionEndKeyNotEmpty

      void handleRegionEndKeyNotEmpty(byte[] curEndKey) throws IOException
      Callback for handling case where a Table has a last region that does not have an empty end key.
      Parameters:
      curEndKey - The end key of the current last region. There should be a new region with start key as this and an empty end key.
      Throws:
      IOException
    • handleDegenerateRegion

      Callback for handling a region that has the same start and end key.
      Parameters:
      hi - An HbckRegionInfo for a degenerate key.
      Throws:
      IOException
    • handleDuplicateStartKeys

      Callback for handling two regions that have the same start key. This is a specific case of a region overlap.
      Parameters:
      hi1 - one of the overlapping HbckRegionInfo
      hi2 - the other overlapping HbckRegionInfo
      Throws:
      IOException
    • handleSplit

      Callback for handling two regions that have the same regionID a specific case of a split
      Parameters:
      hi1 - one of the overlapping HbckRegionInfo
      hi2 - the other overlapping HbckRegionInfo
      Throws:
      IOException
    • handleOverlapInRegionChain

      Callback for handling two reigons that overlap in some arbitrary way. This is a specific case of region overlap, and called for each possible pair. If two regions have the same start key, the handleDuplicateStartKeys method is called.
      Parameters:
      hi1 - one of the overlapping HbckRegionInfo
      hi2 - the other overlapping HbckRegionInfo
      Throws:
      IOException
    • handleHoleInRegionChain

      void handleHoleInRegionChain(byte[] holeStartKey, byte[] holeEndKey) throws IOException
      Callback for handling a region hole between two keys.
      Parameters:
      holeStartKey - key at the beginning of the region hole
      holeEndKey - key at the end of the region hole
      Throws:
      IOException
    • handleOverlapGroup

      Callback for handling an group of regions that overlap.
      Parameters:
      overlap - Collection of overlapping regions.
      Throws:
      IOException