in cassandra/src/main/java/org/apache/ignite/activestore/impl/CommandServiceImpl.java [268:294]
private void backupWithFiltering(URI destination, IgnitePredicate<Metadata> filteringCondition,
String snapshotLabel) throws IOException {
try {
Iterable<Metadata> metadatas;
try (Exporter.WriterProvider provider = exporter.write(destination)) {
try (Exporter.Writer writer = provider.open(METADATA_RESOURCE_NAME)) {
metadatas = metadataManager.backup(writer);
}
}
Collection<Metadata> filteredMetadatas = new ArrayList<>();
for (Metadata metadata : metadatas) {
if (filteringCondition.apply(metadata)) {
filteredMetadatas.add(metadata);
}
}
create(snapshotLabel); // create new head
Map<String, List<Metadata>> byCache = keyValueManager.getSnapshotsByCache(filteredMetadatas);
if (byCache.isEmpty()) {
return;
}
ignite.compute().execute(new BackupTaskSplitAdapter(destination), byCache);
}
catch (Exception e) {
exporter.cleanup(destination);
throw e;
}
}