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 TypeMethodDescriptionvoid
Callback for handling a region that has the same start and end key.void
Callback for handling two regions that have the same start key.void
handleHoleInRegionChain
(byte[] holeStartKey, byte[] holeEndKey) Callback for handling a region hole between two keys.void
handleOverlapGroup
(Collection<HbckRegionInfo> overlap) Callback for handling an group of regions that overlap.void
Callback for handling two reigons that overlap in some arbitrary way.void
handleRegionEndKeyNotEmpty
(byte[] curEndKey) Callback for handling case where a Table has a last region that does not have an empty end key.void
Callback for handling case where a Table has a first region that does not have an empty start key.void
handleSplit
(HbckRegionInfo hi1, HbckRegionInfo hi2) Callback for handling two regions that have the same regionID a specific case of a splitvoid
Set 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
-