in hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidCompactor.java [116:148]
public InternalScanner preCompact(ObserverContext<RegionCoprocessorEnvironment> env,
Store store,
InternalScanner scanner,
ScanType scanType,
CompactionRequest request) throws IOException {
boolean omidCompactable;
try {
if (enableCompactorForAllFamilies) {
omidCompactable = true;
} else {
TableDescriptor desc = env.getEnvironment().getRegion().getTableDescriptor();
ColumnFamilyDescriptor famDesc = desc.getColumnFamily(Bytes.toBytes(store.getColumnFamilyName()));
omidCompactable =Boolean.valueOf(Bytes.toString(famDesc.getValue(Bytes.toBytes(OMID_COMPACTABLE_CF_FLAG))));
}
// only column families tagged as compactable are compacted
// with omid compactor
if (!omidCompactable) {
return scanner;
} else {
boolean isMajorCompaction = request.isMajor();
return new CompactorScanner(env,
scanner,
commitTableClient,
isMajorCompaction,
retainNonTransactionallyDeletedCells);
}
} catch (IOException e) {
throw e;
} catch (Exception e) {
throw new DoNotRetryIOException(e);
}
}