[GR-58622] Compact binary encoding for ObjectCopier. #9959
Closed
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.
A binary encoding for ObjectCopier that uses string deduplication and frequency encoding together with variable-length integers. This brings down the output size for layer-snapshot-graphs-libjavabaselayer by ~75%, and common compression algorithms reduce it by another 60-80%, resulting in a total reduction by 90%-95% compared to the current string encoding. Part of that is achieved by omitting the count, names and types of object fields and names of enum constants, and instead including 16-bit fingerprints to detect when types are different between decoding and encoding.