private static void listFiles(Options options, CFMetaData metadata, OutputHandler handler) throws IOException { Directories directories = new Directories(metadata, ColumnFamilyStore.getInitialDirectories()); for (File dir : directories.getCFDirectories()) { for (File file : LifecycleTransaction.getFiles(dir.toPath(), getFilter(options), Directories.OnTxnErr.THROW)) handler.output(file.getCanonicalPath()); } }
private static void listFiles(Options options, CFMetaData metadata, OutputHandler handler) throws IOException { Directories directories = new Directories(metadata, ColumnFamilyStore.getInitialDirectories()); for (File dir : directories.getCFDirectories()) { for (File file : LifecycleTransaction.getFiles(dir.toPath(), getFilter(options), Directories.OnTxnErr.THROW)) handler.output(file.getCanonicalPath()); } }
private static void listFiles(Options options, CFMetaData metadata, OutputHandler handler) throws IOException { Directories directories = new Directories(metadata, ColumnFamilyStore.getInitialDirectories()); for (File dir : directories.getCFDirectories()) { for (File file : LifecycleTransaction.getFiles(dir.toPath(), getFilter(options), Directories.OnTxnErr.THROW)) handler.output(file.getCanonicalPath()); } }
public StreamResultFuture stream(Set<InetAddress> toIgnore, StreamEventHandler... listeners) { client.init(keyspace); outputHandler.output("Established connection to initial hosts"); StreamPlan plan = new StreamPlan("Bulk Load", 0, connectionsPerHost, false, false, false).connectionFactory(client.getConnectionFactory()); Map<InetAddress, Collection<Range<Token>>> endpointToRanges = client.getEndpointToRangesMap(); openSSTables(endpointToRanges); if (sstables.isEmpty()) { // return empty result return plan.execute(); } outputHandler.output(String.format("Streaming relevant part of %s to %s", names(sstables), endpointToRanges.keySet())); for (Map.Entry<InetAddress, Collection<Range<Token>>> entry : endpointToRanges.entrySet()) { InetAddress remote = entry.getKey(); if (toIgnore.contains(remote)) continue; List<StreamSession.SSTableStreamingSections> endpointDetails = new LinkedList<>(); // references are acquired when constructing the SSTableStreamingSections above for (StreamSession.SSTableStreamingSections details : streamingDetails.get(remote)) { endpointDetails.add(details); } plan.transferFiles(remote, endpointDetails); } plan.listeners(this, listeners); return plan.execute(); }
public StreamResultFuture stream(Set<InetAddress> toIgnore, StreamEventHandler... listeners) { client.init(keyspace); outputHandler.output("Established connection to initial hosts"); StreamPlan plan = new StreamPlan("Bulk Load", 0, connectionsPerHost, false, false, false).connectionFactory(client.getConnectionFactory()); Map<InetAddress, Collection<Range<Token>>> endpointToRanges = client.getEndpointToRangesMap(); openSSTables(endpointToRanges); if (sstables.isEmpty()) { // return empty result return plan.execute(); } outputHandler.output(String.format("Streaming relevant part of %s to %s", names(sstables), endpointToRanges.keySet())); for (Map.Entry<InetAddress, Collection<Range<Token>>> entry : endpointToRanges.entrySet()) { InetAddress remote = entry.getKey(); if (toIgnore.contains(remote)) continue; List<StreamSession.SSTableStreamingSections> endpointDetails = new LinkedList<>(); // references are acquired when constructing the SSTableStreamingSections above for (StreamSession.SSTableStreamingSections details : streamingDetails.get(remote)) { endpointDetails.add(details); } plan.transferFiles(remote, endpointDetails); } plan.listeners(this, listeners); return plan.execute(); }
public StreamResultFuture stream(Set<InetAddress> toIgnore, StreamEventHandler... listeners) { client.init(keyspace); outputHandler.output("Established connection to initial hosts"); StreamPlan plan = new StreamPlan("Bulk Load", 0, connectionsPerHost).connectionFactory(client.getConnectionFactory()); Map<InetAddress, Collection<Range<Token>>> endpointToRanges = client.getEndpointToRangesMap(); openSSTables(endpointToRanges); if (sstables.isEmpty()) { // return empty result return plan.execute(); } outputHandler.output(String.format("Streaming relevant part of %sto %s", names(sstables), endpointToRanges.keySet())); for (Map.Entry<InetAddress, Collection<Range<Token>>> entry : endpointToRanges.entrySet()) { InetAddress remote = entry.getKey(); if (toIgnore.contains(remote)) continue; List<StreamSession.SSTableStreamingSections> endpointDetails = new LinkedList<>(); // references are acquired when constructing the SSTableStreamingSections above for (StreamSession.SSTableStreamingSections details : streamingDetails.get(remote)) { endpointDetails.add(details); } plan.transferFiles(remote, endpointDetails); } plan.listeners(this, listeners); return plan.execute(); }
private void markAndThrow(boolean mutateRepaired) throws IOException { if (mutateRepaired) // if we are able to mutate repaired flag, an incremental repair should be enough { try { sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE); sstable.reloadSSTableMetadata(); cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable)); } catch(IOException ioe) { outputHandler.output("Error mutating repairedAt for SSTable " + sstable.getFilename() + ", as part of markAndThrow"); } } throw new CorruptSSTableException(new Exception(String.format("Invalid SSTable %s, please force %srepair", sstable.getFilename(), mutateRepaired ? "" : "a full ")), sstable.getFilename()); }
public StreamResultFuture stream(Set<InetAddress> toIgnore, StreamEventHandler... listeners) { client.init(keyspace); outputHandler.output("Established connection to initial hosts"); StreamPlan plan = new StreamPlan("Bulk Load", 0, connectionsPerHost, false, false, false).connectionFactory(client.getConnectionFactory()); Map<InetAddress, Collection<Range<Token>>> endpointToRanges = client.getEndpointToRangesMap(); openSSTables(endpointToRanges); if (sstables.isEmpty()) { // return empty result return plan.execute(); } outputHandler.output(String.format("Streaming relevant part of %s to %s", names(sstables), endpointToRanges.keySet())); for (Map.Entry<InetAddress, Collection<Range<Token>>> entry : endpointToRanges.entrySet()) { InetAddress remote = entry.getKey(); if (toIgnore.contains(remote)) continue; List<StreamSession.SSTableStreamingSections> endpointDetails = new LinkedList<>(); // references are acquired when constructing the SSTableStreamingSections above for (StreamSession.SSTableStreamingSections details : streamingDetails.get(remote)) { endpointDetails.add(details); } plan.transferFiles(remote, endpointDetails); } plan.listeners(this, listeners); return plan.execute(); }
private void markAndThrow(boolean mutateRepaired) throws IOException { if (mutateRepaired) // if we are able to mutate repaired flag, an incremental repair should be enough { try { sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE); sstable.reloadSSTableMetadata(); cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable)); } catch(IOException ioe) { outputHandler.output("Error mutating repairedAt for SSTable " + sstable.getFilename() + ", as part of markAndThrow"); } } throw new CorruptSSTableException(new Exception(String.format("Invalid SSTable %s, please force %srepair", sstable.getFilename(), mutateRepaired ? "" : "a full ")), sstable.getFilename()); }
private void markAndThrow(boolean mutateRepaired) throws IOException { if (mutateRepaired) // if we are able to mutate repaired flag, an incremental repair should be enough { try { sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE); sstable.reloadSSTableMetadata(); cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable)); } catch(IOException ioe) { outputHandler.output("Error mutating repairedAt for SSTable " + sstable.getFilename() + ", as part of markAndThrow"); } } throw new CorruptSSTableException(new Exception(String.format("Invalid SSTable %s, please force %srepair", sstable.getFilename(), mutateRepaired ? "" : "a full ")), sstable.getFilename()); }
public void upgrade() { outputHandler.output("Upgrading " + sstable); Set<SSTableReader> toUpgrade = Sets.newHashSet(sstable); SSTableRewriter writer = new SSTableRewriter(cfs, toUpgrade, CompactionTask.getMaxDataAge(toUpgrade), true); try (AbstractCompactionStrategy.ScannerList scanners = strategy.getScanners(toUpgrade)) { Iterator<AbstractCompactedRow> iter = new CompactionIterable(compactionType, scanners.scanners, controller).iterator(); writer.switchWriter(createCompactionWriter(sstable.getSSTableMetadata().repairedAt)); while (iter.hasNext()) { AbstractCompactedRow row = iter.next(); writer.append(row); } writer.finish(); outputHandler.output("Upgrade of " + sstable + " complete."); } catch (Throwable t) { writer.abort(); throw Throwables.propagate(t); } finally { controller.close(); } }
public void upgrade(boolean keepOriginals) { outputHandler.output("Upgrading " + sstable); int nowInSec = FBUtilities.nowInSeconds(); try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, keepOriginals, CompactionTask.getMaxDataAge(transaction.originals())); AbstractCompactionStrategy.ScannerList scanners = strategyManager.getScanners(transaction.originals()); CompactionIterator iter = new CompactionIterator(transaction.opType(), scanners.scanners, controller, nowInSec, UUIDGen.getTimeUUID())) { writer.switchWriter(createCompactionWriter(sstable.getSSTableMetadata().repairedAt)); while (iter.hasNext()) writer.append(iter.next()); writer.finish(); outputHandler.output("Upgrade of " + sstable + " complete."); } catch (Exception e) { Throwables.propagate(e); } finally { controller.close(); } }
public void upgrade(boolean keepOriginals) { outputHandler.output("Upgrading " + sstable); int nowInSec = FBUtilities.nowInSeconds(); try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, keepOriginals, CompactionTask.getMaxDataAge(transaction.originals())); AbstractCompactionStrategy.ScannerList scanners = strategyManager.getScanners(transaction.originals()); CompactionIterator iter = new CompactionIterator(transaction.opType(), scanners.scanners, controller, nowInSec, UUIDGen.getTimeUUID())) { writer.switchWriter(createCompactionWriter(sstable.getSSTableMetadata().repairedAt)); while (iter.hasNext()) writer.append(iter.next()); writer.finish(); outputHandler.output("Upgrade of " + sstable + " complete."); } catch (Exception e) { Throwables.propagate(e); } finally { controller.close(); } }
outputHandler.output("Starting scrub with reinsert overflowed TTL option");
outputHandler.output("Starting scrub with reinsert overflowed TTL option");
outputHandler.output("Starting scrub with reinsert overflowed TTL option");
public void upgrade(boolean keepOriginals) { outputHandler.output("Upgrading " + sstable); int nowInSec = FBUtilities.nowInSeconds(); try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, keepOriginals, CompactionTask.getMaxDataAge(transaction.originals())); AbstractCompactionStrategy.ScannerList scanners = strategyManager.getScanners(transaction.originals()); CompactionIterator iter = new CompactionIterator(transaction.opType(), scanners.scanners, controller, nowInSec, UUIDGen.getTimeUUID())) { writer.switchWriter(createCompactionWriter(sstable.getSSTableMetadata().repairedAt)); while (iter.hasNext()) writer.append(iter.next()); writer.finish(); outputHandler.output("Upgrade of " + sstable + " complete."); } catch (Exception e) { Throwables.propagate(e); } finally { controller.close(); } }