Interface TableIntegrityErrorHandler
- All Known Implementing Classes:
HbckTableInfo.HDFSIntegrityFixer,HbckTableInfo.IntegrityFixSuggester,TableIntegrityErrorHandlerImpl
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 Summary
Modifier and TypeMethodDescriptionvoidCallback for handling a region that has the same start and end key.voidCallback for handling two regions that have the same start key.voidhandleHoleInRegionChain(byte[] holeStartKey, byte[] holeEndKey) Callback for handling a region hole between two keys.voidhandleOverlapGroup(Collection<HbckRegionInfo> overlap) Callback for handling an group of regions that overlap.voidCallback for handling two reigons that overlap in some arbitrary way.voidhandleRegionEndKeyNotEmpty(byte[] curEndKey) Callback for handling case where a Table has a last region that does not have an empty end key.voidCallback for handling case where a Table has a first region that does not have an empty start key.voidhandleSplit(HbckRegionInfo hi1, HbckRegionInfo hi2) Callback for handling two regions that have the same regionID a specific case of a splitvoidSet the TableInfo used by all HRegionInfos fabricated by other callbacks
-
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
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 HbckRegionInfohi2- 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 HbckRegionInfohi2- 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 HbckRegionInfohi2- the other overlapping HbckRegionInfo- Throws:
IOException
-
handleHoleInRegionChain
Callback for handling a region hole between two keys.- Parameters:
holeStartKey- key at the beginning of the region holeholeEndKey- 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
-