private void backupWithFiltering()

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;
        }
    }