Repository navigation
Conversation
Stream versioned node, namespace and true-session metadata without values or credential-bearing ACL IDs. Validate the selected source, enforce optional output budgets and publish a checksummed manifest atomically last. Reuse the D1 native snapshot loader and expose iterative preorder traversal without changing the summary CLI. Keep capture and owner uncertainty explicit; do not replay transaction logs or infer recovery completeness. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 28, 2026
arkmish
marked this pull request as ready for review
October 7, 2026 16:14
Carry current branch-3.6 through the existing summary dependency without importing unrelated feature stacks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add
OfflineAuditExporter, a machine-readable snapshot metadata exporter for automated size, fanout, namespace, and session analysis. It uses ZooKeeper's native decoder, avoids live ensemble queries, and does not export znode payloads or credential-bearing ACL identities.The command produces four versioned files:
nodes.ndjsonnamespaces.ndjsonsessions.ndjsonmanifest.jsonTraversal is deterministic depth-first preorder, keeping each subtree contiguous without retaining all output records. The native DataTree is still loaded into memory.
The exporter validates snapshot format/seals and source identity, rejects existing destinations and source/output aliases, and supports an explicit output-byte budget. It publishes the completion manifest atomically only after output files close successfully and the source is rechecked.
Unknown capture times and ambiguous owner encodings remain unknown. TTL/container owners are not blindly counted as sessions. A completed export is not proof of current state, session liveness, backup completeness, or transaction consistency.
Tests
Validated
OfflineAuditExporterTest,SnapshotComparerTest,SnapshotRecursiveSummaryTest,SnapStreamTest, andEphemeralTypeTeston JDK 11 with Java 8 API targeting:Regressions cover actual native serialization, compressed/corrupt inputs, protocol response-byte boundaries, owner/configuration uncertainty, deep traversal, source mutation, filesystem aliases, output limits, and failure-safe publication.
Actual Java 8 VM and Windows execution were not available.
Changes that Break Backward Compatibility (Optional)
No client protocol, persistence format, recovery, ACL, or quota-enforcement changes. Existing snapshot-tool CLI behavior is preserved.
The new command requires a new output directory and rejects malformed or unsupported input. It is strictly snapshot-only: no transaction-log replay or capture-time inference is performed.
Documentation (Optional)
Updated
zookeeper-docs/src/main/resources/markdown/zookeeperTools.mdwith the CLI, exact output schemas, decoder configuration, resource requirements, and evidence limitations.🤖 Generated with GitHub Copilot CLI