From b59d154edda8ecd39cd99fd615e23b2dad0f5faa Mon Sep 17 00:00:00 2001 From: Son Luong Ngoc Date: Fri, 6 Oct 2023 14:24:46 +0200 Subject: [PATCH] proto: supporting zstd dictionary DO NOT MERGE. This is mainly served as a conversation starter for future dictionary compression features. --- proto/remote_execution.proto | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/proto/remote_execution.proto b/proto/remote_execution.proto index edfa728a2e8d..55274ad6676f 100644 --- a/proto/remote_execution.proto +++ b/proto/remote_execution.proto @@ -2000,6 +2000,9 @@ message Compressor { // Brotli compression. BROTLI = 3; + + // Zstandard compression with external dictionary support. + ZSTD_DICT = 4; } } @@ -2036,6 +2039,19 @@ message CacheCapabilities { // [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs] // requests. repeated Compressor.Value supported_batch_update_compressors = 7; + + // BUILDBUDDY EXTENSIONS BELOW + + // A digest pointing to a [ZstdDictionaryRegistry][build.bazel.remote.execution.v2.ZstdDictionaryRegistry] + // object in CAS that contains the zstd dictionaries that should be used for + // compressing and decompressing blobs. + Digest zstd_dictionary_registry = 1000; +} + +message ZstdDictionaryRegistry { + // Each file's name should be set to either the dictID of the ZSTD dictionary (32 bits unsigned integer), + // or "default" for the default dictionary that client SHOULD use to compress uploaded data. + repeated FileNode dictionaries = 1; } // Capabilities of the remote execution system.