/** * Create a custom {@link InternalScanner} for a compaction that tracks the versions of rows that * are removed so we can clean then up from the the index table(s). * <p> * This is not yet implemented - its not clear if we should even mess around with the Index table * for these rows as those points still existed. TODO: v2 of indexing */ @Override public InternalScanner preCompactScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Store store, List<? extends KeyValueScanner> scanners, ScanType scanType, long earliestPutTs, InternalScanner s) throws IOException { return super.preCompactScannerOpen(c, store, scanners, scanType, earliestPutTs, s); }
super.start(e); LOG.error("Must be too early a version of HBase. Disabled coprocessor ", ex);
@Override public void preWALRestore(ObserverContext<RegionCoprocessorEnvironment> env, HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws IOException { if (this.disabled) { super.preWALRestore(env, info, logKey, logEdit); return; } // TODO check the regions in transition. If the server on which the region lives is this one, // then we should rety that write later in postOpen. // we might be able to get even smarter here and pre-split the edits that are server-local // into their own recovered.edits file. This then lets us do a straightforward recovery of each // region (and more efficiently as we aren't writing quite as hectically from this one place). /* * Basically, we let the index regions recover for a little while long before retrying in the * hopes they come up before the primary table finishes. */ Collection<Pair<Mutation, byte[]>> indexUpdates = extractIndexUpdate(logEdit); recoveryWriter.writeAndKillYourselfOnFailure(indexUpdates); }
@Override public InternalScanner preCompact(ObserverContext<RegionCoprocessorEnvironment> e, final Store store, final InternalScanner scanner, CompactionRequest request) throws IOException { return preCompact(e, store, scanner); }
@Override public void preCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, final List<StoreFile> candidates, final CompactionRequest request) throws IOException { preCompactSelection(c, store, candidates); }
@Override public void postCompact(ObserverContext<RegionCoprocessorEnvironment> e, final Store store, final StoreFile resultFile, CompactionRequest request) throws IOException { postCompact(e, store, resultFile); }
@Override public void postCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, final ImmutableList<StoreFile> selected, CompactionRequest request) { postCompactSelection(c, store, selected); }
@Override public RegionScanner preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> e, Scan scan, RegionScanner s) throws IOException { ConsumerConfig consumerConfig = DequeueScanAttributes.getConsumerConfig(scan); Transaction tx = DequeueScanAttributes.getTx(scan); byte[] queueRowPrefix = DequeueScanAttributes.getQueueRowPrefix(scan); if (consumerConfig == null || tx == null || queueRowPrefix == null) { return super.preScannerOpen(e, scan, s); } Filter dequeueFilter = new DequeueFilter(queueRowPrefix, consumerConfig, tx); Filter existing = scan.getFilter(); if (existing != null) { Filter combined = new FilterList(FilterList.Operator.MUST_PASS_ALL, existing, dequeueFilter); scan.setFilter(combined); } else { scan.setFilter(dequeueFilter); } return super.preScannerOpen(e, scan, s); } }
public OmidGCProcessor() { super(new BaseRegionObserver()); }
@Override public InternalScanner preCompact(ObserverContext<RegionCoprocessorEnvironment> e, final Store store, final InternalScanner scanner, final ScanType scanType, CompactionRequest request) throws IOException { return preCompact(e, store, scanner, scanType); }
@Override public void preCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, final List<StoreFile> candidates, final CompactionRequest request) throws IOException { preCompactSelection(c, store, candidates); }
@Override public void postCompact(ObserverContext<RegionCoprocessorEnvironment> e, final Store store, final StoreFile resultFile, CompactionRequest request) throws IOException { postCompact(e, store, resultFile); }
@Override public void postCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, final ImmutableList<StoreFile> selected, CompactionRequest request) { postCompactSelection(c, store, selected); }
@Override public RegionScanner preScannerOpen( final ObserverContext<RegionCoprocessorEnvironment> e, final Scan scan, final RegionScanner s) throws IOException { if (opStore != null) { final TableName tableName = e.getEnvironment().getRegionInfo().getTable(); if (!tableName.isSystemTable()) { final String namespace = tableName.getNamespaceAsString(); final String qualifier = tableName.getQualifierAsString(); final Collection<HBaseServerOp> serverOps = opStore.getOperations(namespace, qualifier, ServerOpScope.SCAN); for (final HBaseServerOp op : serverOps) { op.preScannerOpen(scan); } } } return super.preScannerOpen(e, scan, s); }
public OmidTransactionalProcessor() { super(new BaseRegionObserver()); }
@Override public InternalScanner preCompactScannerOpen( final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, List<? extends KeyValueScanner> scanners, final ScanType scanType, final long earliestPutTs, final InternalScanner s, CompactionRequest request) throws IOException { return preCompactScannerOpen(c, store, scanners, scanType, earliestPutTs, s); }
@Override public void start(CoprocessorEnvironment e) throws IOException { super.start(e); ColumnUtil.init(e.getConfiguration()); expiredDataCleanEnable = e.getConfiguration().getBoolean( ThemisMasterObserver.THEMIS_EXPIRED_DATA_CLEAN_ENABLE_KEY, true); deleteThemisDeletedDataWhenCompact = e.getConfiguration().getBoolean( THEMIS_DELETE_THEMIS_DELETED_DATA_WHEN_COMPACT, false); if (expiredDataCleanEnable) { LOG.info("themis expired data clean enable, deleteThemisDeletedDataWhenCompact=" + deleteThemisDeletedDataWhenCompact); } }
@Override public InternalScanner preCompact( final ObserverContext<RegionCoprocessorEnvironment> e, final Store store, final InternalScanner scanner, final ScanType scanType, final CompactionRequest request) throws IOException { if (opStore == null) { return super.preCompact(e, store, scanner, scanType, request); } return super.preCompact( e, store, wrapScannerWithOps( e.getEnvironment().getRegionInfo().getTable(), scanner, null, ServerOpScope.MAJOR_COMPACTION, INTERNAL_SCANNER_FACTORY), scanType, request); }
@Override public void preWALRestore(ObserverContext<RegionCoprocessorEnvironment> env, HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws IOException { preWALRestore(env, info, (WALKey)logKey, logEdit); }
@Override public InternalScanner preCompactScannerOpen( final ObserverContext<RegionCoprocessorEnvironment> c, final Store store, List<? extends KeyValueScanner> scanners, final ScanType scanType, final long earliestPutTs, final InternalScanner s, CompactionRequest request) throws IOException { return preCompactScannerOpen(c, store, scanners, scanType, earliestPutTs, s); }