1#[derive(prost_helpers::AnyPB)]
5#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6pub struct VnodeUserKeyRange {
7 #[prost(bytes = "vec", tag = "1")]
8 pub min_key: ::prost::alloc::vec::Vec<u8>,
9 #[prost(bytes = "vec", tag = "2")]
10 pub max_key: ::prost::alloc::vec::Vec<u8>,
11}
12#[derive(prost_helpers::AnyPB)]
15#[derive(Clone, PartialEq, ::prost::Message)]
16pub struct VnodeStatistics {
17 #[prost(map = "uint32, message", tag = "1")]
18 pub vnode_user_key_ranges: ::std::collections::HashMap<u32, VnodeUserKeyRange>,
19}
20#[derive(prost_helpers::AnyPB)]
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct SstableInfo {
23 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockSstableObjectId")]
24 pub object_id: crate::id::HummockSstableObjectId,
25 #[prost(uint64, tag = "2", wrapper = "crate::id::HummockSstableId")]
26 pub sst_id: crate::id::HummockSstableId,
27 #[prost(message, optional, tag = "3")]
28 pub key_range: ::core::option::Option<KeyRange>,
29 #[prost(uint64, tag = "4")]
31 pub file_size: u64,
32 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::TableId")]
33 pub table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
34 #[prost(uint64, tag = "6")]
35 pub meta_offset: u64,
36 #[prost(uint64, tag = "7")]
37 pub stale_key_count: u64,
38 #[prost(uint64, tag = "8")]
39 pub total_key_count: u64,
40 #[prost(uint64, tag = "9")]
41 pub min_epoch: u64,
42 #[prost(uint64, tag = "10")]
43 pub max_epoch: u64,
44 #[prost(uint64, tag = "11")]
45 pub uncompressed_file_size: u64,
46 #[prost(uint64, tag = "12")]
47 pub range_tombstone_count: u64,
48 #[deprecated]
51 #[prost(enumeration = "BloomFilterType", tag = "13")]
52 pub bloom_filter_kind: i32,
53 #[prost(uint64, tag = "14")]
56 pub sst_size: u64,
57 #[prost(message, optional, tag = "15")]
60 pub vnode_statistics: ::core::option::Option<VnodeStatistics>,
61 #[prost(enumeration = "SstableFilterType", optional, tag = "16")]
64 pub filter_type: ::core::option::Option<i32>,
65 #[prost(enumeration = "SstableFilterLayout", optional, tag = "17")]
68 pub filter_layout: ::core::option::Option<i32>,
69}
70#[derive(prost_helpers::AnyPB)]
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct OverlappingLevel {
73 #[prost(message, repeated, tag = "1")]
74 pub sub_levels: ::prost::alloc::vec::Vec<Level>,
75 #[prost(uint64, tag = "2")]
76 pub total_file_size: u64,
77 #[prost(uint64, tag = "3")]
78 pub uncompressed_file_size: u64,
79}
80#[derive(prost_helpers::AnyPB)]
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct Level {
83 #[prost(uint32, tag = "1")]
84 pub level_idx: u32,
85 #[prost(enumeration = "LevelType", tag = "2")]
86 pub level_type: i32,
87 #[prost(message, repeated, tag = "3")]
88 pub table_infos: ::prost::alloc::vec::Vec<SstableInfo>,
89 #[prost(uint64, tag = "4")]
90 pub total_file_size: u64,
91 #[prost(uint64, tag = "5")]
92 pub sub_level_id: u64,
93 #[prost(uint64, tag = "6")]
94 pub uncompressed_file_size: u64,
95 #[prost(uint32, tag = "7")]
96 pub vnode_partition_count: u32,
97}
98#[derive(prost_helpers::AnyPB)]
99#[derive(Clone, PartialEq, ::prost::Message)]
100pub struct InputLevel {
101 #[prost(uint32, tag = "1")]
102 pub level_idx: u32,
103 #[prost(enumeration = "LevelType", tag = "2")]
104 pub level_type: i32,
105 #[prost(message, repeated, tag = "3")]
106 pub table_infos: ::prost::alloc::vec::Vec<SstableInfo>,
107}
108#[derive(prost_helpers::AnyPB)]
109#[derive(Clone, PartialEq, ::prost::Message)]
110pub struct NewL0SubLevel {
111 #[prost(message, repeated, tag = "1")]
112 pub inserted_table_infos: ::prost::alloc::vec::Vec<SstableInfo>,
113}
114#[derive(prost_helpers::AnyPB)]
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct IntraLevelDelta {
117 #[prost(uint32, tag = "1")]
118 pub level_idx: u32,
119 #[prost(uint64, tag = "2")]
120 pub l0_sub_level_id: u64,
121 #[prost(uint64, repeated, tag = "3", wrapper = "crate::id::HummockSstableId")]
122 pub removed_table_ids: ::prost::alloc::vec::Vec<crate::id::HummockSstableId>,
123 #[prost(message, repeated, tag = "4")]
124 pub inserted_table_infos: ::prost::alloc::vec::Vec<SstableInfo>,
125 #[prost(uint32, tag = "5")]
126 pub vnode_partition_count: u32,
127 #[prost(uint64, tag = "6")]
128 pub compaction_group_version_id: u64,
129}
130#[derive(prost_helpers::AnyPB)]
131#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
132pub struct GroupConstruct {
133 #[prost(message, optional, tag = "1")]
134 pub group_config: ::core::option::Option<CompactionConfig>,
135 #[prost(uint64, tag = "2", wrapper = "crate::id::CompactionGroupId")]
137 pub parent_group_id: crate::id::CompactionGroupId,
138 #[deprecated]
139 #[prost(uint32, repeated, packed = "false", tag = "3")]
140 pub table_ids: ::prost::alloc::vec::Vec<u32>,
141 #[prost(uint64, tag = "4", wrapper = "crate::id::CompactionGroupId")]
142 pub group_id: crate::id::CompactionGroupId,
143 #[prost(uint64, tag = "5", wrapper = "crate::id::HummockSstableId")]
144 pub new_sst_start_id: crate::id::HummockSstableId,
145 #[prost(enumeration = "CompatibilityVersion", tag = "6")]
146 pub version: i32,
147 #[prost(bytes = "vec", optional, tag = "7")]
153 pub split_key: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
154}
155#[derive(prost_helpers::AnyPB)]
156#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
157pub struct GroupDestroy {}
158#[derive(prost_helpers::AnyPB)]
159#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
160pub struct GroupMerge {
161 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
162 pub left_group_id: crate::id::CompactionGroupId,
163 #[prost(uint64, tag = "2", wrapper = "crate::id::CompactionGroupId")]
164 pub right_group_id: crate::id::CompactionGroupId,
165}
166#[derive(prost_helpers::AnyPB)]
168#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
169pub struct TruncateTables {
170 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::TableId")]
171 pub table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
172}
173#[derive(prost_helpers::AnyPB)]
174#[derive(Clone, PartialEq, ::prost::Message)]
175pub struct GroupDelta {
176 #[prost(oneof = "group_delta::DeltaType", tags = "1, 2, 3, 6, 7, 8")]
177 pub delta_type: ::core::option::Option<group_delta::DeltaType>,
178}
179pub mod group_delta {
181 #[derive(prost_helpers::AnyPB)]
182 #[derive(Clone, PartialEq, ::prost::Oneof)]
183 pub enum DeltaType {
184 #[prost(message, tag = "1")]
185 IntraLevel(super::IntraLevelDelta),
186 #[prost(message, tag = "2")]
187 GroupConstruct(super::GroupConstruct),
188 #[prost(message, tag = "3")]
189 GroupDestroy(super::GroupDestroy),
190 #[prost(message, tag = "6")]
191 GroupMerge(super::GroupMerge),
192 #[prost(message, tag = "7")]
193 NewL0SubLevel(super::NewL0SubLevel),
194 #[prost(message, tag = "8")]
195 TruncateTables(super::TruncateTables),
196 }
197}
198#[derive(prost_helpers::AnyPB)]
199#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
200pub struct VnodeWatermark {
201 #[prost(bytes = "vec", tag = "1")]
203 pub watermark: ::prost::alloc::vec::Vec<u8>,
204 #[prost(message, optional, tag = "2")]
206 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
207}
208#[derive(prost_helpers::AnyPB)]
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct TableWatermarks {
216 #[prost(message, repeated, tag = "1")]
219 pub epoch_watermarks: ::prost::alloc::vec::Vec<table_watermarks::EpochNewWatermarks>,
220 #[prost(bool, tag = "2")]
222 pub is_ascending: bool,
223 #[deprecated]
226 #[prost(bool, tag = "3")]
227 pub is_non_pk_prefix: bool,
228 #[prost(enumeration = "WatermarkSerdeType", tag = "4")]
229 pub raw_watermark_serde_type: i32,
230}
231pub mod table_watermarks {
233 #[derive(prost_helpers::AnyPB)]
234 #[derive(Clone, PartialEq, ::prost::Message)]
235 pub struct EpochNewWatermarks {
236 #[prost(message, repeated, tag = "1")]
237 pub watermarks: ::prost::alloc::vec::Vec<super::VnodeWatermark>,
238 #[prost(uint64, tag = "2")]
239 pub epoch: u64,
240 }
241}
242#[derive(prost_helpers::AnyPB)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct EpochNewChangeLog {
245 #[prost(message, repeated, tag = "1")]
246 pub old_value: ::prost::alloc::vec::Vec<SstableInfo>,
247 #[prost(message, repeated, tag = "2")]
248 pub new_value: ::prost::alloc::vec::Vec<SstableInfo>,
249 #[prost(uint64, repeated, tag = "3")]
251 pub epochs: ::prost::alloc::vec::Vec<u64>,
252}
253#[derive(prost_helpers::AnyPB)]
254#[derive(Clone, PartialEq, ::prost::Message)]
255pub struct TableChangeLog {
256 #[prost(message, repeated, tag = "1")]
258 pub change_logs: ::prost::alloc::vec::Vec<EpochNewChangeLog>,
259}
260#[derive(prost_helpers::AnyPB)]
261#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
262pub struct StateTableInfo {
263 #[prost(uint64, tag = "1")]
264 pub committed_epoch: u64,
265 #[prost(uint64, tag = "3", wrapper = "crate::id::CompactionGroupId")]
266 pub compaction_group_id: crate::id::CompactionGroupId,
267}
268#[derive(prost_helpers::AnyPB)]
269#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
270pub struct StateTableInfoDelta {
271 #[prost(uint64, tag = "1")]
272 pub committed_epoch: u64,
273 #[prost(uint64, tag = "3", wrapper = "crate::id::CompactionGroupId")]
274 pub compaction_group_id: crate::id::CompactionGroupId,
275}
276#[derive(prost_helpers::AnyPB)]
277#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
278pub struct VectorIndexObject {
279 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockRawObjectId")]
280 pub id: crate::id::HummockRawObjectId,
281 #[prost(enumeration = "VectorIndexObjectType", tag = "2")]
282 pub object_type: i32,
283}
284#[derive(prost_helpers::AnyPB)]
285#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
286pub struct VectorFileInfo {
287 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVectorFileId")]
288 pub object_id: crate::id::HummockVectorFileId,
289 #[prost(uint64, tag = "2")]
290 pub file_size: u64,
291 #[prost(uint64, tag = "3")]
292 pub start_vector_id: u64,
293 #[prost(uint32, tag = "4")]
294 pub vector_count: u32,
295 #[prost(uint64, tag = "5")]
296 pub meta_offset: u64,
297}
298#[derive(prost_helpers::AnyPB)]
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct FlatIndex {
301 #[prost(message, optional, tag = "1")]
302 pub config: ::core::option::Option<super::catalog::FlatIndexConfig>,
303 #[prost(message, repeated, tag = "2")]
304 pub vector_files: ::prost::alloc::vec::Vec<VectorFileInfo>,
305 #[prost(uint64, tag = "3")]
306 pub next_vector_id: u64,
307}
308#[derive(prost_helpers::AnyPB)]
309#[derive(Clone, PartialEq, ::prost::Message)]
310pub struct FlatIndexAdd {
311 #[prost(message, repeated, tag = "1")]
312 pub added_vector_files: ::prost::alloc::vec::Vec<VectorFileInfo>,
313 #[prost(uint64, tag = "2")]
314 pub next_vector_id: u64,
315}
316#[derive(prost_helpers::AnyPB)]
317#[derive(Clone, PartialEq, ::prost::Message)]
318pub struct HnswGraph {
319 #[prost(message, repeated, tag = "1")]
320 pub nodes: ::prost::alloc::vec::Vec<hnsw_graph::HnswNode>,
321 #[prost(uint64, tag = "2")]
322 pub entrypoint_id: u64,
323}
324pub mod hnsw_graph {
326 #[derive(prost_helpers::AnyPB)]
327 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
328 pub struct HnswNeighbor {
329 #[prost(uint64, tag = "1")]
330 pub vector_id: u64,
331 #[prost(double, tag = "2")]
332 pub distance: f64,
333 }
334 #[derive(prost_helpers::AnyPB)]
335 #[derive(Clone, PartialEq, ::prost::Message)]
336 pub struct HnswLevel {
337 #[prost(message, repeated, tag = "1")]
338 pub neighbors: ::prost::alloc::vec::Vec<HnswNeighbor>,
339 }
340 #[derive(prost_helpers::AnyPB)]
341 #[derive(Clone, PartialEq, ::prost::Message)]
342 pub struct HnswNode {
343 #[prost(message, repeated, tag = "1")]
344 pub levels: ::prost::alloc::vec::Vec<HnswLevel>,
345 }
346}
347#[derive(prost_helpers::AnyPB)]
348#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
349pub struct HnswGraphFileInfo {
350 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockHnswGraphFileId")]
351 pub object_id: crate::id::HummockHnswGraphFileId,
352 #[prost(uint64, tag = "2")]
353 pub file_size: u64,
354}
355#[derive(prost_helpers::AnyPB)]
356#[derive(Clone, PartialEq, ::prost::Message)]
357pub struct HnswFlatIndex {
358 #[prost(message, optional, tag = "1")]
359 pub config: ::core::option::Option<super::catalog::HnswFlatIndexConfig>,
360 #[prost(message, repeated, tag = "2")]
361 pub vector_files: ::prost::alloc::vec::Vec<VectorFileInfo>,
362 #[prost(uint64, tag = "3")]
363 pub next_vector_id: u64,
364 #[prost(message, optional, tag = "4")]
365 pub graph_file: ::core::option::Option<HnswGraphFileInfo>,
366}
367#[derive(prost_helpers::AnyPB)]
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct HnswFlatIndexAdd {
370 #[prost(message, repeated, tag = "1")]
371 pub added_vector_files: ::prost::alloc::vec::Vec<VectorFileInfo>,
372 #[prost(uint64, tag = "2")]
373 pub next_vector_id: u64,
374 #[prost(message, optional, tag = "3")]
375 pub graph_file: ::core::option::Option<HnswGraphFileInfo>,
376}
377#[derive(prost_helpers::AnyPB)]
378#[derive(Clone, PartialEq, ::prost::Message)]
379pub struct VectorIndex {
380 #[prost(uint32, tag = "1")]
381 pub dimension: u32,
382 #[prost(enumeration = "super::common::DistanceType", tag = "2")]
383 pub distance_type: i32,
384 #[prost(oneof = "vector_index::Variant", tags = "65, 66")]
385 pub variant: ::core::option::Option<vector_index::Variant>,
386}
387pub mod vector_index {
389 #[derive(prost_helpers::AnyPB)]
390 #[derive(Clone, PartialEq, ::prost::Oneof)]
391 pub enum Variant {
392 #[prost(message, tag = "65")]
394 Flat(super::FlatIndex),
395 #[prost(message, tag = "66")]
396 HnswFlat(super::HnswFlatIndex),
397 }
398}
399#[derive(prost_helpers::AnyPB)]
400#[derive(Clone, PartialEq, ::prost::Message)]
401pub struct VectorIndexDelta {
402 #[prost(oneof = "vector_index_delta::Delta", tags = "1, 2")]
403 pub delta: ::core::option::Option<vector_index_delta::Delta>,
404}
405pub mod vector_index_delta {
407 #[derive(prost_helpers::AnyPB)]
408 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
409 pub struct VectorIndexInit {
410 #[prost(message, optional, tag = "1")]
411 pub info: ::core::option::Option<super::super::catalog::VectorIndexInfo>,
412 }
413 #[derive(prost_helpers::AnyPB)]
414 #[derive(Clone, PartialEq, ::prost::Message)]
415 pub struct VectorIndexAdd {
416 #[prost(oneof = "vector_index_add::Add", tags = "65, 66")]
417 pub add: ::core::option::Option<vector_index_add::Add>,
418 }
419 pub mod vector_index_add {
421 #[derive(prost_helpers::AnyPB)]
422 #[derive(Clone, PartialEq, ::prost::Oneof)]
423 pub enum Add {
424 #[prost(message, tag = "65")]
426 Flat(super::super::FlatIndexAdd),
427 #[prost(message, tag = "66")]
428 HnswFlat(super::super::HnswFlatIndexAdd),
429 }
430 }
431 #[derive(prost_helpers::AnyPB)]
432 #[derive(Clone, PartialEq, ::prost::Message)]
433 pub struct VectorIndexAdds {
434 #[prost(message, repeated, tag = "1")]
435 pub adds: ::prost::alloc::vec::Vec<VectorIndexAdd>,
436 }
437 #[derive(prost_helpers::AnyPB)]
438 #[derive(Clone, PartialEq, ::prost::Oneof)]
439 pub enum Delta {
440 #[prost(message, tag = "1")]
441 Init(VectorIndexInit),
442 #[prost(message, tag = "2")]
443 Adds(VectorIndexAdds),
444 }
445}
446#[derive(prost_helpers::AnyPB)]
447#[derive(Clone, PartialEq, ::prost::Message)]
448pub struct HummockVersion {
449 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVersionId")]
450 pub id: crate::id::HummockVersionId,
451 #[prost(
453 map = "uint64, message",
454 tag = "2",
455 wrapper = "crate::id::CompactionGroupId"
456 )]
457 pub levels: ::std::collections::HashMap<
458 crate::id::CompactionGroupId,
459 hummock_version::Levels,
460 >,
461 #[deprecated]
462 #[prost(uint64, tag = "3")]
463 pub max_committed_epoch: u64,
464 #[prost(map = "uint32, message", tag = "5", wrapper = "crate::id::TableId")]
465 pub table_watermarks: ::std::collections::HashMap<
466 crate::id::TableId,
467 TableWatermarks,
468 >,
469 #[prost(map = "uint32, message", tag = "6", wrapper = "crate::id::TableId")]
470 pub table_change_logs: ::std::collections::HashMap<
471 crate::id::TableId,
472 TableChangeLog,
473 >,
474 #[prost(map = "uint32, message", tag = "7", wrapper = "crate::id::TableId")]
475 pub state_table_info: ::std::collections::HashMap<
476 crate::id::TableId,
477 StateTableInfo,
478 >,
479 #[prost(map = "uint32, message", tag = "8", wrapper = "crate::id::TableId")]
480 pub vector_indexes: ::std::collections::HashMap<crate::id::TableId, VectorIndex>,
481}
482pub mod hummock_version {
484 #[derive(prost_helpers::AnyPB)]
485 #[derive(Clone, PartialEq, ::prost::Message)]
486 pub struct Levels {
487 #[prost(message, repeated, tag = "1")]
488 pub levels: ::prost::alloc::vec::Vec<super::Level>,
489 #[prost(message, optional, tag = "2")]
490 pub l0: ::core::option::Option<super::OverlappingLevel>,
491 #[prost(uint64, tag = "3", wrapper = "crate::id::CompactionGroupId")]
492 pub group_id: crate::id::CompactionGroupId,
493 #[prost(uint64, tag = "4", wrapper = "crate::id::CompactionGroupId")]
494 pub parent_group_id: crate::id::CompactionGroupId,
495 #[deprecated]
496 #[prost(uint32, repeated, packed = "false", tag = "5")]
497 pub member_table_ids: ::prost::alloc::vec::Vec<u32>,
498 #[prost(uint64, tag = "6")]
499 pub compaction_group_version_id: u64,
500 }
501}
502#[derive(prost_helpers::AnyPB)]
503#[derive(Clone, PartialEq, ::prost::Message)]
504pub struct HummockVersionDelta {
505 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVersionId")]
506 pub id: crate::id::HummockVersionId,
507 #[prost(uint64, tag = "2", wrapper = "crate::id::HummockVersionId")]
508 pub prev_id: crate::id::HummockVersionId,
509 #[prost(
511 map = "uint64, message",
512 tag = "3",
513 wrapper = "crate::id::CompactionGroupId"
514 )]
515 pub group_deltas: ::std::collections::HashMap<
516 crate::id::CompactionGroupId,
517 hummock_version_delta::GroupDeltas,
518 >,
519 #[deprecated]
520 #[prost(uint64, tag = "4")]
521 pub max_committed_epoch: u64,
522 #[prost(bool, tag = "6")]
523 pub trivial_move: bool,
524 #[prost(map = "uint32, message", tag = "8", wrapper = "crate::id::TableId")]
525 pub new_table_watermarks: ::std::collections::HashMap<
526 crate::id::TableId,
527 TableWatermarks,
528 >,
529 #[prost(uint32, repeated, tag = "9", wrapper = "crate::id::TableId")]
530 pub removed_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
531 #[prost(map = "uint32, message", tag = "10", wrapper = "crate::id::TableId")]
532 pub change_log_delta: ::std::collections::HashMap<
533 crate::id::TableId,
534 hummock_version_delta::ChangeLogDelta,
535 >,
536 #[prost(map = "uint32, message", tag = "11", wrapper = "crate::id::TableId")]
537 pub state_table_info_delta: ::std::collections::HashMap<
538 crate::id::TableId,
539 StateTableInfoDelta,
540 >,
541 #[prost(map = "uint32, message", tag = "12", wrapper = "crate::id::TableId")]
542 pub vector_index_delta: ::std::collections::HashMap<
543 crate::id::TableId,
544 VectorIndexDelta,
545 >,
546}
547pub mod hummock_version_delta {
549 #[derive(prost_helpers::AnyPB)]
550 #[derive(Clone, PartialEq, ::prost::Message)]
551 pub struct GroupDeltas {
552 #[prost(message, repeated, tag = "1")]
553 pub group_deltas: ::prost::alloc::vec::Vec<super::GroupDelta>,
554 }
555 #[derive(prost_helpers::AnyPB)]
556 #[derive(Clone, PartialEq, ::prost::Message)]
557 pub struct ChangeLogDelta {
558 #[prost(message, optional, tag = "1")]
559 pub new_log: ::core::option::Option<super::EpochNewChangeLog>,
560 #[prost(uint64, tag = "2")]
562 pub truncate_epoch: u64,
563 }
564}
565#[derive(prost_helpers::AnyPB)]
566#[derive(Clone, PartialEq, ::prost::Message)]
567pub struct HummockVersionDeltas {
568 #[prost(message, repeated, tag = "1")]
569 pub version_deltas: ::prost::alloc::vec::Vec<HummockVersionDelta>,
570}
571#[derive(prost_helpers::AnyPB)]
572#[derive(Clone, PartialEq, ::prost::Message)]
573pub struct HummockVersionCheckpoint {
574 #[prost(message, optional, tag = "1")]
575 pub version: ::core::option::Option<HummockVersion>,
576 #[prost(map = "uint64, message", tag = "2", wrapper = "crate::id::HummockVersionId")]
577 pub stale_objects: ::std::collections::HashMap<
578 crate::id::HummockVersionId,
579 hummock_version_checkpoint::StaleObjects,
580 >,
581}
582pub mod hummock_version_checkpoint {
584 #[derive(prost_helpers::AnyPB)]
585 #[derive(Clone, PartialEq, ::prost::Message)]
586 pub struct StaleObjects {
587 #[prost(
588 uint64,
589 repeated,
590 tag = "1",
591 wrapper = "crate::id::HummockSstableObjectId"
592 )]
593 pub id: ::prost::alloc::vec::Vec<crate::id::HummockSstableObjectId>,
594 #[prost(uint64, tag = "2")]
595 pub total_file_size: u64,
596 #[prost(message, repeated, tag = "3")]
597 pub vector_files: ::prost::alloc::vec::Vec<super::VectorIndexObject>,
598 }
599}
600#[derive(prost_helpers::AnyPB)]
623#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
624pub struct HummockVersionCheckpointEnvelope {
625 #[prost(enumeration = "CheckpointCompressionAlgorithm", tag = "1")]
626 pub compression_algorithm: i32,
627 #[prost(bytes = "vec", tag = "2")]
629 pub payload: ::prost::alloc::vec::Vec<u8>,
630 #[prost(uint64, optional, tag = "3")]
633 pub checksum: ::core::option::Option<u64>,
634}
635#[derive(prost_helpers::AnyPB)]
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct HummockVersionArchive {
638 #[prost(message, optional, tag = "1")]
639 pub version: ::core::option::Option<HummockVersion>,
640 #[prost(message, repeated, tag = "2")]
642 pub version_deltas: ::prost::alloc::vec::Vec<HummockVersionDelta>,
643}
644#[derive(prost_helpers::AnyPB)]
645#[derive(Clone, PartialEq, ::prost::Message)]
646pub struct VersionUpdatePayload {
647 #[prost(oneof = "version_update_payload::Payload", tags = "1, 2")]
648 pub payload: ::core::option::Option<version_update_payload::Payload>,
649}
650pub mod version_update_payload {
652 #[derive(prost_helpers::AnyPB)]
653 #[derive(Clone, PartialEq, ::prost::Oneof)]
654 pub enum Payload {
655 #[prost(message, tag = "1")]
656 VersionDeltas(super::HummockVersionDeltas),
657 #[prost(message, tag = "2")]
658 PinnedVersion(super::HummockVersion),
659 }
660}
661#[derive(prost_helpers::AnyPB)]
662#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
663pub struct UnpinVersionBeforeRequest {
664 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
665 pub context_id: crate::id::WorkerId,
666 #[prost(uint64, tag = "2", wrapper = "crate::id::HummockVersionId")]
667 pub unpin_version_before: crate::id::HummockVersionId,
668}
669#[derive(prost_helpers::AnyPB)]
670#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
671pub struct UnpinVersionBeforeResponse {
672 #[prost(message, optional, tag = "1")]
673 pub status: ::core::option::Option<super::common::Status>,
674}
675#[derive(prost_helpers::AnyPB)]
676#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
677pub struct GetCurrentVersionRequest {}
678#[derive(prost_helpers::AnyPB)]
679#[derive(Clone, PartialEq, ::prost::Message)]
680pub struct GetCurrentVersionResponse {
681 #[prost(message, optional, tag = "1")]
682 pub status: ::core::option::Option<super::common::Status>,
683 #[prost(message, optional, tag = "2")]
684 pub current_version: ::core::option::Option<HummockVersion>,
685}
686#[derive(prost_helpers::AnyPB)]
687#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
688pub struct GetTableChangeLogsRequest {
689 #[prost(bool, tag = "1")]
691 pub epoch_only: bool,
692 #[prost(bool, tag = "2")]
693 pub exclude_empty: bool,
694 #[prost(uint64, optional, tag = "3")]
696 pub start_epoch_inclusive: ::core::option::Option<u64>,
697 #[prost(uint64, optional, tag = "4")]
698 pub end_epoch_inclusive: ::core::option::Option<u64>,
699 #[prost(message, optional, tag = "5")]
701 pub table_ids: ::core::option::Option<get_table_change_logs_request::TableFilter>,
702 #[prost(uint32, optional, tag = "6")]
704 pub limit: ::core::option::Option<u32>,
705}
706pub mod get_table_change_logs_request {
708 #[derive(prost_helpers::AnyPB)]
709 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
710 pub struct TableFilter {
711 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::TableId")]
712 pub table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
713 }
714}
715#[derive(prost_helpers::AnyPB)]
716#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct GetTableChangeLogsResponse {
718 #[prost(map = "uint32, message", tag = "1")]
719 pub table_change_logs: ::std::collections::HashMap<u32, TableChangeLog>,
720}
721#[derive(prost_helpers::AnyPB)]
722#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
723pub struct UnpinVersionRequest {
724 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
725 pub context_id: crate::id::WorkerId,
726}
727#[derive(prost_helpers::AnyPB)]
728#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
729pub struct UnpinVersionResponse {
730 #[prost(message, optional, tag = "1")]
731 pub status: ::core::option::Option<super::common::Status>,
732}
733#[derive(prost_helpers::AnyPB)]
734#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
735pub struct GetAssignedCompactTaskNumRequest {}
736#[derive(prost_helpers::AnyPB)]
737#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
738pub struct GetAssignedCompactTaskNumResponse {
739 #[prost(uint32, tag = "1")]
740 pub num_tasks: u32,
741}
742#[derive(prost_helpers::AnyPB)]
745#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
746pub struct KeyRange {
747 #[prost(bytes = "vec", tag = "1")]
748 pub left: ::prost::alloc::vec::Vec<u8>,
749 #[prost(bytes = "vec", tag = "2")]
750 pub right: ::prost::alloc::vec::Vec<u8>,
751 #[prost(bool, tag = "3")]
752 pub right_exclusive: bool,
753}
754#[derive(prost_helpers::AnyPB)]
755#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
756pub struct TableOption {
757 #[prost(uint32, optional, tag = "2")]
758 pub retention_seconds: ::core::option::Option<u32>,
759}
760#[derive(prost_helpers::AnyPB)]
761#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
762pub struct TableSchema {
763 #[prost(int32, repeated, tag = "1")]
764 pub column_ids: ::prost::alloc::vec::Vec<i32>,
765}
766#[derive(prost_helpers::AnyPB)]
767#[derive(Clone, PartialEq, ::prost::Message)]
768pub struct CompactTask {
769 #[prost(message, repeated, tag = "1")]
771 pub input_ssts: ::prost::alloc::vec::Vec<InputLevel>,
772 #[prost(message, repeated, tag = "2")]
775 pub splits: ::prost::alloc::vec::Vec<KeyRange>,
776 #[prost(message, repeated, tag = "4")]
778 pub sorted_output_ssts: ::prost::alloc::vec::Vec<SstableInfo>,
779 #[prost(uint64, tag = "5")]
781 pub task_id: u64,
782 #[prost(uint32, tag = "6")]
784 pub target_level: u32,
785 #[prost(bool, tag = "7")]
786 pub gc_delete_keys: bool,
787 #[prost(uint32, tag = "8")]
789 pub base_level: u32,
790 #[prost(enumeration = "compact_task::TaskStatus", tag = "9")]
791 pub task_status: i32,
792 #[prost(uint64, tag = "12", wrapper = "crate::id::CompactionGroupId")]
794 pub compaction_group_id: crate::id::CompactionGroupId,
795 #[prost(uint32, repeated, tag = "13", wrapper = "crate::id::TableId")]
797 pub existing_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
798 #[prost(uint32, tag = "14")]
799 pub compression_algorithm: u32,
800 #[prost(uint64, tag = "15")]
801 pub target_file_size: u64,
802 #[prost(uint32, tag = "16")]
803 pub compaction_filter_mask: u32,
804 #[prost(btree_map = "uint32, message", tag = "17", wrapper = "crate::id::TableId")]
805 pub table_options: ::prost::alloc::collections::BTreeMap<
806 crate::id::TableId,
807 TableOption,
808 >,
809 #[prost(uint64, tag = "18")]
810 pub current_epoch_time: u64,
811 #[prost(uint64, tag = "19")]
812 pub target_sub_level_id: u64,
813 #[prost(enumeration = "compact_task::TaskType", tag = "20")]
815 pub task_type: i32,
816 #[deprecated]
818 #[prost(bool, tag = "21")]
819 pub split_by_state_table: bool,
820 #[prost(uint32, tag = "22")]
823 pub split_weight_by_vnode: u32,
824 #[prost(btree_map = "uint32, uint32", tag = "23", wrapper = "crate::id::TableId")]
825 pub table_vnode_partition: ::prost::alloc::collections::BTreeMap<
826 crate::id::TableId,
827 u32,
828 >,
829 #[prost(btree_map = "uint32, message", tag = "24", wrapper = "crate::id::TableId")]
832 pub table_watermarks: ::prost::alloc::collections::BTreeMap<
833 crate::id::TableId,
834 TableWatermarks,
835 >,
836 #[prost(btree_map = "uint32, message", tag = "25", wrapper = "crate::id::TableId")]
838 pub table_schemas: ::prost::alloc::collections::BTreeMap<
839 crate::id::TableId,
840 TableSchema,
841 >,
842 #[prost(uint32, tag = "26")]
844 pub max_sub_compaction: u32,
845 #[prost(uint64, tag = "27")]
847 pub compaction_group_version_id: u64,
848 #[prost(uint64, optional, tag = "28")]
858 pub max_kv_count_for_xor16: ::core::option::Option<u64>,
859 #[prost(uint64, optional, tag = "29")]
861 pub max_vnode_key_range_bytes: ::core::option::Option<u64>,
862 #[prost(enumeration = "SstableFilterType", tag = "30")]
865 pub sstable_filter_type: i32,
866 #[prost(enumeration = "SstableFilterLayout", tag = "31")]
869 pub sstable_filter_layout: i32,
870}
871pub mod compact_task {
873 #[derive(prost_helpers::AnyPB)]
874 #[derive(
875 Clone,
876 Copy,
877 Debug,
878 PartialEq,
879 Eq,
880 Hash,
881 PartialOrd,
882 Ord,
883 ::prost::Enumeration
884 )]
885 #[repr(i32)]
886 pub enum TaskStatus {
887 Unspecified = 0,
888 Pending = 1,
889 Success = 2,
890 HeartbeatCanceled = 3,
891 NoAvailMemoryResourceCanceled = 4,
892 AssignFailCanceled = 5,
893 SendFailCanceled = 6,
894 ManualCanceled = 7,
895 InvalidGroupCanceled = 8,
896 InputOutdatedCanceled = 9,
897 ExecuteFailed = 10,
898 JoinHandleFailed = 11,
899 TrackSstObjectIdFailed = 12,
900 NoAvailCpuResourceCanceled = 13,
901 HeartbeatProgressCanceled = 14,
902 RetentionTimeRejected = 17,
903 ServerlessSendFailCanceled = 15,
905 ServerlessTableNotFoundCanceled = 16,
906 }
907 impl TaskStatus {
908 pub fn as_str_name(&self) -> &'static str {
913 match self {
914 Self::Unspecified => "UNSPECIFIED",
915 Self::Pending => "PENDING",
916 Self::Success => "SUCCESS",
917 Self::HeartbeatCanceled => "HEARTBEAT_CANCELED",
918 Self::NoAvailMemoryResourceCanceled => {
919 "NO_AVAIL_MEMORY_RESOURCE_CANCELED"
920 }
921 Self::AssignFailCanceled => "ASSIGN_FAIL_CANCELED",
922 Self::SendFailCanceled => "SEND_FAIL_CANCELED",
923 Self::ManualCanceled => "MANUAL_CANCELED",
924 Self::InvalidGroupCanceled => "INVALID_GROUP_CANCELED",
925 Self::InputOutdatedCanceled => "INPUT_OUTDATED_CANCELED",
926 Self::ExecuteFailed => "EXECUTE_FAILED",
927 Self::JoinHandleFailed => "JOIN_HANDLE_FAILED",
928 Self::TrackSstObjectIdFailed => "TRACK_SST_OBJECT_ID_FAILED",
929 Self::NoAvailCpuResourceCanceled => "NO_AVAIL_CPU_RESOURCE_CANCELED",
930 Self::HeartbeatProgressCanceled => "HEARTBEAT_PROGRESS_CANCELED",
931 Self::RetentionTimeRejected => "RETENTION_TIME_REJECTED",
932 Self::ServerlessSendFailCanceled => "SERVERLESS_SEND_FAIL_CANCELED",
933 Self::ServerlessTableNotFoundCanceled => {
934 "SERVERLESS_TABLE_NOT_FOUND_CANCELED"
935 }
936 }
937 }
938 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
940 match value {
941 "UNSPECIFIED" => Some(Self::Unspecified),
942 "PENDING" => Some(Self::Pending),
943 "SUCCESS" => Some(Self::Success),
944 "HEARTBEAT_CANCELED" => Some(Self::HeartbeatCanceled),
945 "NO_AVAIL_MEMORY_RESOURCE_CANCELED" => {
946 Some(Self::NoAvailMemoryResourceCanceled)
947 }
948 "ASSIGN_FAIL_CANCELED" => Some(Self::AssignFailCanceled),
949 "SEND_FAIL_CANCELED" => Some(Self::SendFailCanceled),
950 "MANUAL_CANCELED" => Some(Self::ManualCanceled),
951 "INVALID_GROUP_CANCELED" => Some(Self::InvalidGroupCanceled),
952 "INPUT_OUTDATED_CANCELED" => Some(Self::InputOutdatedCanceled),
953 "EXECUTE_FAILED" => Some(Self::ExecuteFailed),
954 "JOIN_HANDLE_FAILED" => Some(Self::JoinHandleFailed),
955 "TRACK_SST_OBJECT_ID_FAILED" => Some(Self::TrackSstObjectIdFailed),
956 "NO_AVAIL_CPU_RESOURCE_CANCELED" => {
957 Some(Self::NoAvailCpuResourceCanceled)
958 }
959 "HEARTBEAT_PROGRESS_CANCELED" => Some(Self::HeartbeatProgressCanceled),
960 "RETENTION_TIME_REJECTED" => Some(Self::RetentionTimeRejected),
961 "SERVERLESS_SEND_FAIL_CANCELED" => Some(Self::ServerlessSendFailCanceled),
962 "SERVERLESS_TABLE_NOT_FOUND_CANCELED" => {
963 Some(Self::ServerlessTableNotFoundCanceled)
964 }
965 _ => None,
966 }
967 }
968 }
969 #[derive(prost_helpers::AnyPB)]
970 #[derive(
971 Clone,
972 Copy,
973 Debug,
974 PartialEq,
975 Eq,
976 Hash,
977 PartialOrd,
978 Ord,
979 ::prost::Enumeration
980 )]
981 #[repr(i32)]
982 pub enum TaskType {
983 TypeUnspecified = 0,
984 Dynamic = 1,
985 SpaceReclaim = 2,
986 Manual = 3,
987 SharedBuffer = 4,
988 Ttl = 5,
989 Tombstone = 6,
990 Emergency = 7,
991 VnodeWatermark = 8,
992 }
993 impl TaskType {
994 pub fn as_str_name(&self) -> &'static str {
999 match self {
1000 Self::TypeUnspecified => "TYPE_UNSPECIFIED",
1001 Self::Dynamic => "DYNAMIC",
1002 Self::SpaceReclaim => "SPACE_RECLAIM",
1003 Self::Manual => "MANUAL",
1004 Self::SharedBuffer => "SHARED_BUFFER",
1005 Self::Ttl => "TTL",
1006 Self::Tombstone => "TOMBSTONE",
1007 Self::Emergency => "EMERGENCY",
1008 Self::VnodeWatermark => "VNODE_WATERMARK",
1009 }
1010 }
1011 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1013 match value {
1014 "TYPE_UNSPECIFIED" => Some(Self::TypeUnspecified),
1015 "DYNAMIC" => Some(Self::Dynamic),
1016 "SPACE_RECLAIM" => Some(Self::SpaceReclaim),
1017 "MANUAL" => Some(Self::Manual),
1018 "SHARED_BUFFER" => Some(Self::SharedBuffer),
1019 "TTL" => Some(Self::Ttl),
1020 "TOMBSTONE" => Some(Self::Tombstone),
1021 "EMERGENCY" => Some(Self::Emergency),
1022 "VNODE_WATERMARK" => Some(Self::VnodeWatermark),
1023 _ => None,
1024 }
1025 }
1026 }
1027}
1028#[derive(prost_helpers::AnyPB)]
1029#[derive(Clone, PartialEq, ::prost::Message)]
1030pub struct LevelHandler {
1031 #[prost(uint32, tag = "1")]
1032 pub level: u32,
1033 #[prost(message, repeated, tag = "3")]
1034 pub tasks: ::prost::alloc::vec::Vec<level_handler::RunningCompactTask>,
1035}
1036pub mod level_handler {
1038 #[derive(prost_helpers::AnyPB)]
1039 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1040 pub struct RunningCompactTask {
1041 #[prost(uint64, tag = "1")]
1042 pub task_id: u64,
1043 #[prost(uint64, repeated, tag = "2", wrapper = "crate::id::HummockSstableId")]
1044 pub ssts: ::prost::alloc::vec::Vec<crate::id::HummockSstableId>,
1045 #[prost(uint64, tag = "3")]
1046 pub total_file_size: u64,
1047 #[prost(uint32, tag = "4")]
1048 pub target_level: u32,
1049 }
1050}
1051#[derive(prost_helpers::AnyPB)]
1052#[derive(Clone, PartialEq, ::prost::Message)]
1053pub struct CompactStatus {
1054 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1055 pub compaction_group_id: crate::id::CompactionGroupId,
1056 #[prost(message, repeated, tag = "2")]
1057 pub level_handlers: ::prost::alloc::vec::Vec<LevelHandler>,
1058}
1059#[derive(prost_helpers::AnyPB)]
1061#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1062pub struct CompactionGroup {
1063 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1064 pub id: crate::id::CompactionGroupId,
1065 #[prost(message, optional, tag = "4")]
1066 pub compaction_config: ::core::option::Option<CompactionConfig>,
1067}
1068#[derive(prost_helpers::AnyPB)]
1071#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1072pub struct CompactionGroupInfo {
1073 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1074 pub id: crate::id::CompactionGroupId,
1075 #[prost(uint64, tag = "2", wrapper = "crate::id::CompactionGroupId")]
1076 pub parent_id: crate::id::CompactionGroupId,
1077 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1078 pub member_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1079 #[prost(message, optional, tag = "4")]
1080 pub compaction_config: ::core::option::Option<CompactionConfig>,
1081}
1082#[derive(prost_helpers::AnyPB)]
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct CompactTaskAssignment {
1085 #[prost(message, optional, tag = "1")]
1086 pub compact_task: ::core::option::Option<CompactTask>,
1087 #[prost(uint32, tag = "2", wrapper = "crate::id::WorkerId")]
1088 pub context_id: crate::id::WorkerId,
1089}
1090#[derive(prost_helpers::AnyPB)]
1091#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1092pub struct HummockPinnedVersion {
1093 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1094 pub context_id: crate::id::WorkerId,
1095 #[prost(uint64, tag = "2", wrapper = "crate::id::HummockVersionId")]
1096 pub min_pinned_id: crate::id::HummockVersionId,
1097}
1098#[derive(prost_helpers::AnyPB)]
1099#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1100pub struct HummockPinnedSnapshot {
1101 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1102 pub context_id: crate::id::WorkerId,
1103 #[prost(uint64, tag = "2")]
1104 pub minimal_pinned_snapshot: u64,
1105}
1106#[derive(prost_helpers::AnyPB)]
1107#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1108pub struct GetNewObjectIdsRequest {
1109 #[prost(uint32, tag = "1")]
1110 pub number: u32,
1111}
1112#[derive(prost_helpers::AnyPB)]
1113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1114pub struct GetNewObjectIdsResponse {
1115 #[prost(message, optional, tag = "1")]
1116 pub status: ::core::option::Option<super::common::Status>,
1117 #[prost(uint64, tag = "2", wrapper = "crate::id::HummockRawObjectId")]
1119 pub start_id: crate::id::HummockRawObjectId,
1120 #[prost(uint64, tag = "3", wrapper = "crate::id::HummockRawObjectId")]
1122 pub end_id: crate::id::HummockRawObjectId,
1123}
1124#[derive(prost_helpers::AnyPB)]
1128#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1129pub struct CompactTaskProgress {
1130 #[prost(uint64, tag = "1")]
1131 pub task_id: u64,
1132 #[prost(uint32, tag = "2")]
1133 pub num_ssts_sealed: u32,
1134 #[prost(uint32, tag = "3")]
1135 pub num_ssts_uploaded: u32,
1136 #[prost(uint64, tag = "4")]
1137 pub num_progress_key: u64,
1138 #[prost(uint64, tag = "5")]
1139 pub num_pending_read_io: u64,
1140 #[prost(uint64, tag = "6")]
1141 pub num_pending_write_io: u64,
1142 #[prost(uint64, optional, tag = "7", wrapper = "crate::id::CompactionGroupId")]
1143 pub compaction_group_id: ::core::option::Option<crate::id::CompactionGroupId>,
1144}
1145#[derive(prost_helpers::AnyPB)]
1146#[derive(Clone, PartialEq, ::prost::Message)]
1147pub struct SubscribeCompactionEventRequest {
1148 #[prost(uint64, tag = "7")]
1149 pub create_at: u64,
1150 #[prost(oneof = "subscribe_compaction_event_request::Event", tags = "1, 2, 3, 4")]
1151 pub event: ::core::option::Option<subscribe_compaction_event_request::Event>,
1152}
1153pub mod subscribe_compaction_event_request {
1155 #[derive(prost_helpers::AnyPB)]
1157 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1158 pub struct Register {
1159 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1160 pub context_id: crate::id::WorkerId,
1161 }
1162 #[derive(prost_helpers::AnyPB)]
1164 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1165 pub struct PullTask {
1166 #[prost(uint32, tag = "4")]
1167 pub pull_task_count: u32,
1168 }
1169 #[derive(prost_helpers::AnyPB)]
1171 #[derive(Clone, PartialEq, ::prost::Message)]
1172 pub struct ReportTask {
1173 #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::TableId")]
1174 pub table_stats_change: ::std::collections::HashMap<
1175 crate::id::TableId,
1176 super::TableStats,
1177 >,
1178 #[prost(uint64, tag = "4")]
1179 pub task_id: u64,
1180 #[prost(enumeration = "super::compact_task::TaskStatus", tag = "5")]
1181 pub task_status: i32,
1182 #[prost(message, repeated, tag = "6")]
1183 pub sorted_output_ssts: ::prost::alloc::vec::Vec<super::SstableInfo>,
1184 #[prost(
1185 map = "uint64, uint64",
1186 tag = "7",
1187 wrapper = "crate::id::HummockSstableObjectId"
1188 )]
1189 pub object_timestamps: ::std::collections::HashMap<
1190 crate::id::HummockSstableObjectId,
1191 u64,
1192 >,
1193 }
1194 #[derive(prost_helpers::AnyPB)]
1196 #[derive(Clone, PartialEq, ::prost::Message)]
1197 pub struct HeartBeat {
1198 #[prost(message, repeated, tag = "2")]
1199 pub progress: ::prost::alloc::vec::Vec<super::CompactTaskProgress>,
1200 }
1201 #[derive(prost_helpers::AnyPB)]
1202 #[derive(Clone, PartialEq, ::prost::Oneof)]
1203 pub enum Event {
1204 #[prost(message, tag = "1")]
1206 Register(Register),
1207 #[prost(message, tag = "2")]
1209 PullTask(PullTask),
1210 #[prost(message, tag = "3")]
1212 ReportTask(ReportTask),
1213 #[prost(message, tag = "4")]
1215 HeartBeat(HeartBeat),
1216 }
1217}
1218#[derive(prost_helpers::AnyPB)]
1219#[derive(Clone, PartialEq, ::prost::Message)]
1220pub struct SubscribeCompactionEventResponse {
1221 #[prost(uint64, tag = "7")]
1222 pub create_at: u64,
1223 #[prost(
1224 oneof = "subscribe_compaction_event_response::Event",
1225 tags = "1, 2, 3, 4, 5, 6"
1226 )]
1227 pub event: ::core::option::Option<subscribe_compaction_event_response::Event>,
1228}
1229pub mod subscribe_compaction_event_response {
1231 #[derive(prost_helpers::AnyPB)]
1234 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1235 pub struct PullTaskAck {}
1236 #[derive(prost_helpers::AnyPB)]
1237 #[derive(Clone, PartialEq, ::prost::Oneof)]
1238 pub enum Event {
1239 #[prost(message, tag = "1")]
1240 CompactTask(super::CompactTask),
1241 #[deprecated]
1242 #[prost(message, tag = "2")]
1243 VacuumTask(super::VacuumTask),
1244 #[deprecated]
1245 #[prost(message, tag = "3")]
1246 FullScanTask(super::FullScanTask),
1247 #[deprecated]
1248 #[prost(message, tag = "4")]
1249 ValidationTask(super::ValidationTask),
1250 #[prost(message, tag = "5")]
1251 CancelCompactTask(super::CancelCompactTask),
1252 #[prost(message, tag = "6")]
1253 PullTaskAck(PullTaskAck),
1254 }
1255}
1256#[derive(prost_helpers::AnyPB)]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct ReportCompactionTaskRequest {
1259 #[prost(oneof = "report_compaction_task_request::Event", tags = "1, 2")]
1260 pub event: ::core::option::Option<report_compaction_task_request::Event>,
1261}
1262pub mod report_compaction_task_request {
1264 #[derive(prost_helpers::AnyPB)]
1266 #[derive(Clone, PartialEq, ::prost::Message)]
1267 pub struct ReportTask {
1268 #[prost(message, optional, tag = "2")]
1269 pub compact_task: ::core::option::Option<super::CompactTask>,
1270 #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::TableId")]
1271 pub table_stats_change: ::std::collections::HashMap<
1272 crate::id::TableId,
1273 super::TableStats,
1274 >,
1275 #[prost(
1276 map = "uint64, uint64",
1277 tag = "4",
1278 wrapper = "crate::id::HummockSstableObjectId"
1279 )]
1280 pub object_timestamps: ::std::collections::HashMap<
1281 crate::id::HummockSstableObjectId,
1282 u64,
1283 >,
1284 }
1285 #[derive(prost_helpers::AnyPB)]
1287 #[derive(Clone, PartialEq, ::prost::Message)]
1288 pub struct HeartBeat {
1289 #[prost(message, repeated, tag = "2")]
1290 pub progress: ::prost::alloc::vec::Vec<super::CompactTaskProgress>,
1291 }
1292 #[derive(prost_helpers::AnyPB)]
1293 #[derive(Clone, PartialEq, ::prost::Oneof)]
1294 pub enum Event {
1295 #[prost(message, tag = "1")]
1296 ReportTask(ReportTask),
1297 #[prost(message, tag = "2")]
1298 HeartBeat(HeartBeat),
1299 }
1300}
1301#[derive(prost_helpers::AnyPB)]
1302#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1303pub struct ReportCompactionTaskResponse {
1304 #[prost(message, optional, tag = "1")]
1305 pub status: ::core::option::Option<super::common::Status>,
1306}
1307#[derive(prost_helpers::AnyPB)]
1308#[derive(Clone, PartialEq, ::prost::Message)]
1309pub struct ValidationTask {
1310 #[prost(message, repeated, tag = "1")]
1311 pub sst_infos: ::prost::alloc::vec::Vec<SstableInfo>,
1312 #[prost(
1313 map = "uint64, uint32",
1314 tag = "2",
1315 wrapper = "crate::id::HummockSstableObjectId ->crate::id:: WorkerId"
1316 )]
1317 pub sst_id_to_worker_id: ::std::collections::HashMap<
1318 crate::id::HummockSstableObjectId,
1319 crate::id::WorkerId,
1320 >,
1321}
1322#[derive(prost_helpers::AnyPB)]
1324#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1325pub struct VacuumTask {
1326 #[prost(uint64, repeated, tag = "1", wrapper = "crate::id::HummockSstableObjectId")]
1327 pub sstable_object_ids: ::prost::alloc::vec::Vec<crate::id::HummockSstableObjectId>,
1328}
1329#[derive(prost_helpers::AnyPB)]
1331#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1332pub struct FullScanTask {
1333 #[prost(uint64, tag = "1")]
1334 pub sst_retention_watermark: u64,
1335 #[prost(string, optional, tag = "2")]
1336 pub prefix: ::core::option::Option<::prost::alloc::string::String>,
1337 #[prost(string, optional, tag = "3")]
1338 pub start_after: ::core::option::Option<::prost::alloc::string::String>,
1339 #[prost(uint64, optional, tag = "4")]
1340 pub limit: ::core::option::Option<u64>,
1341}
1342#[derive(prost_helpers::AnyPB)]
1344#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1345pub struct CancelCompactTask {
1346 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1347 pub context_id: crate::id::WorkerId,
1348 #[prost(uint64, tag = "2")]
1349 pub task_id: u64,
1350}
1351#[derive(prost_helpers::AnyPB)]
1352#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1353pub struct TriggerManualCompactionRequest {
1354 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1355 pub compaction_group_id: crate::id::CompactionGroupId,
1356 #[prost(message, optional, tag = "2")]
1357 pub key_range: ::core::option::Option<KeyRange>,
1358 #[prost(uint32, tag = "3", wrapper = "crate::id::JobId")]
1359 pub table_id: crate::id::JobId,
1360 #[prost(uint32, tag = "4")]
1361 pub level: u32,
1362 #[prost(uint64, repeated, tag = "5", wrapper = "crate::id::HummockSstableId")]
1363 pub sst_ids: ::prost::alloc::vec::Vec<crate::id::HummockSstableId>,
1364 #[prost(bool, optional, tag = "6")]
1365 pub exclusive: ::core::option::Option<bool>,
1366 #[prost(uint32, optional, tag = "7")]
1367 pub target_level: ::core::option::Option<u32>,
1368}
1369#[derive(prost_helpers::AnyPB)]
1370#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1371pub struct TriggerManualCompactionResponse {
1372 #[prost(message, optional, tag = "1")]
1373 pub status: ::core::option::Option<super::common::Status>,
1374 #[prost(bool, optional, tag = "2")]
1375 pub should_retry: ::core::option::Option<bool>,
1376}
1377#[derive(prost_helpers::AnyPB)]
1378#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1379pub struct TriggerFullGcRequest {
1380 #[prost(uint64, tag = "1")]
1381 pub sst_retention_time_sec: u64,
1382 #[prost(string, optional, tag = "2")]
1383 pub prefix: ::core::option::Option<::prost::alloc::string::String>,
1384}
1385#[derive(prost_helpers::AnyPB)]
1386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1387pub struct TriggerFullGcResponse {
1388 #[prost(message, optional, tag = "1")]
1389 pub status: ::core::option::Option<super::common::Status>,
1390}
1391#[derive(prost_helpers::AnyPB)]
1392#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1393pub struct ListVersionDeltasRequest {
1394 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVersionId")]
1395 pub start_id: crate::id::HummockVersionId,
1396 #[prost(uint32, tag = "2")]
1397 pub num_limit: u32,
1398 #[prost(uint64, tag = "3")]
1399 pub committed_epoch_limit: u64,
1400}
1401#[derive(prost_helpers::AnyPB)]
1402#[derive(Clone, PartialEq, ::prost::Message)]
1403pub struct ListVersionDeltasResponse {
1404 #[prost(message, optional, tag = "1")]
1405 pub version_deltas: ::core::option::Option<HummockVersionDeltas>,
1406}
1407#[derive(prost_helpers::AnyPB)]
1408#[derive(Clone, PartialEq, ::prost::Message)]
1409pub struct PinnedVersionsSummary {
1410 #[prost(message, repeated, tag = "1")]
1411 pub pinned_versions: ::prost::alloc::vec::Vec<HummockPinnedVersion>,
1412 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::WorkerId")]
1413 pub workers: ::std::collections::HashMap<
1414 crate::id::WorkerId,
1415 super::common::WorkerNode,
1416 >,
1417}
1418#[derive(prost_helpers::AnyPB)]
1419#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1420pub struct RiseCtlGetPinnedVersionsSummaryRequest {}
1421#[derive(prost_helpers::AnyPB)]
1422#[derive(Clone, PartialEq, ::prost::Message)]
1423pub struct RiseCtlGetPinnedVersionsSummaryResponse {
1424 #[prost(message, optional, tag = "1")]
1425 pub summary: ::core::option::Option<PinnedVersionsSummary>,
1426}
1427#[derive(prost_helpers::AnyPB)]
1428#[derive(Clone, PartialEq, ::prost::Message)]
1429pub struct InitMetadataForReplayRequest {
1430 #[prost(message, repeated, tag = "1")]
1431 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1432 #[prost(message, repeated, tag = "2")]
1433 pub compaction_groups: ::prost::alloc::vec::Vec<CompactionGroupInfo>,
1434}
1435#[derive(prost_helpers::AnyPB)]
1436#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1437pub struct InitMetadataForReplayResponse {}
1438#[derive(prost_helpers::AnyPB)]
1439#[derive(Clone, PartialEq, ::prost::Message)]
1440pub struct ReplayVersionDeltaRequest {
1441 #[prost(message, optional, tag = "1")]
1442 pub version_delta: ::core::option::Option<HummockVersionDelta>,
1443}
1444#[derive(prost_helpers::AnyPB)]
1445#[derive(Clone, PartialEq, ::prost::Message)]
1446pub struct ReplayVersionDeltaResponse {
1447 #[prost(message, optional, tag = "1")]
1448 pub version: ::core::option::Option<HummockVersion>,
1449 #[prost(uint64, repeated, tag = "2", wrapper = "crate::id::CompactionGroupId")]
1450 pub modified_compaction_groups: ::prost::alloc::vec::Vec<
1451 crate::id::CompactionGroupId,
1452 >,
1453}
1454#[derive(prost_helpers::AnyPB)]
1455#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1456pub struct TriggerCompactionDeterministicRequest {
1457 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVersionId")]
1458 pub version_id: crate::id::HummockVersionId,
1459 #[prost(uint64, repeated, tag = "2", wrapper = "crate::id::CompactionGroupId")]
1460 pub compaction_groups: ::prost::alloc::vec::Vec<crate::id::CompactionGroupId>,
1461}
1462#[derive(prost_helpers::AnyPB)]
1463#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1464pub struct TriggerCompactionDeterministicResponse {}
1465#[derive(prost_helpers::AnyPB)]
1466#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1467pub struct DisableCommitEpochRequest {}
1468#[derive(prost_helpers::AnyPB)]
1469#[derive(Clone, PartialEq, ::prost::Message)]
1470pub struct DisableCommitEpochResponse {
1471 #[prost(message, optional, tag = "1")]
1472 pub current_version: ::core::option::Option<HummockVersion>,
1473}
1474#[derive(prost_helpers::AnyPB)]
1475#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1476pub struct RiseCtlListCompactionGroupRequest {}
1477#[derive(prost_helpers::AnyPB)]
1478#[derive(Clone, PartialEq, ::prost::Message)]
1479pub struct RiseCtlListCompactionGroupResponse {
1480 #[prost(message, optional, tag = "1")]
1481 pub status: ::core::option::Option<super::common::Status>,
1482 #[prost(message, repeated, tag = "2")]
1483 pub compaction_groups: ::prost::alloc::vec::Vec<CompactionGroupInfo>,
1484}
1485#[derive(prost_helpers::AnyPB)]
1486#[derive(Clone, PartialEq, ::prost::Message)]
1487pub struct RiseCtlUpdateCompactionConfigRequest {
1488 #[prost(uint64, repeated, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1489 pub compaction_group_ids: ::prost::alloc::vec::Vec<crate::id::CompactionGroupId>,
1490 #[prost(message, repeated, tag = "2")]
1491 pub configs: ::prost::alloc::vec::Vec<
1492 rise_ctl_update_compaction_config_request::MutableConfig,
1493 >,
1494}
1495pub mod rise_ctl_update_compaction_config_request {
1497 #[derive(prost_helpers::AnyPB)]
1498 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1499 pub struct CompressionAlgorithm {
1500 #[prost(uint32, tag = "1")]
1501 pub level: u32,
1502 #[prost(string, tag = "2")]
1503 pub compression_algorithm: ::prost::alloc::string::String,
1504 }
1505 #[derive(prost_helpers::AnyPB)]
1506 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1507 pub struct SstableFilterType {
1508 #[prost(uint32, tag = "1")]
1510 pub level: u32,
1511 #[prost(string, tag = "2")]
1512 pub filter_type: ::prost::alloc::string::String,
1513 }
1514 #[derive(prost_helpers::AnyPB)]
1515 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1516 pub struct SstableFilterLayout {
1517 #[prost(uint32, tag = "1")]
1519 pub level: u32,
1520 #[prost(string, tag = "2")]
1521 pub layout: ::prost::alloc::string::String,
1522 }
1523 #[derive(prost_helpers::AnyPB)]
1524 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1525 pub struct MutableConfig {
1526 #[prost(
1527 oneof = "mutable_config::MutableConfig",
1528 tags = "1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36"
1529 )]
1530 pub mutable_config: ::core::option::Option<mutable_config::MutableConfig>,
1531 }
1532 pub mod mutable_config {
1534 #[derive(prost_helpers::AnyPB)]
1535 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1536 pub enum MutableConfig {
1537 #[prost(uint64, tag = "1")]
1538 MaxBytesForLevelBase(u64),
1539 #[prost(uint64, tag = "2")]
1540 MaxBytesForLevelMultiplier(u64),
1541 #[prost(uint64, tag = "3")]
1542 MaxCompactionBytes(u64),
1543 #[prost(uint64, tag = "4")]
1544 SubLevelMaxCompactionBytes(u64),
1545 #[prost(uint64, tag = "6")]
1546 Level0TierCompactFileNumber(u64),
1547 #[prost(uint64, tag = "7")]
1548 TargetFileSizeBase(u64),
1549 #[prost(uint32, tag = "8")]
1550 CompactionFilterMask(u32),
1551 #[prost(uint32, tag = "9")]
1552 MaxSubCompaction(u32),
1553 #[prost(uint64, tag = "10")]
1554 Level0StopWriteThresholdSubLevelNumber(u64),
1555 #[prost(uint32, tag = "11")]
1556 Level0SubLevelCompactLevelCount(u32),
1557 #[prost(uint32, tag = "12")]
1558 Level0OverlappingSubLevelCompactLevelCount(u32),
1559 #[prost(uint64, tag = "13")]
1560 MaxSpaceReclaimBytes(u64),
1561 #[prost(uint64, tag = "14")]
1562 Level0MaxCompactFileNumber(u64),
1563 #[prost(bool, tag = "15")]
1564 EnableEmergencyPicker(bool),
1565 #[prost(uint32, tag = "16")]
1566 TombstoneReclaimRatio(u32),
1567 #[prost(message, tag = "17")]
1568 CompressionAlgorithm(super::CompressionAlgorithm),
1569 #[prost(uint32, tag = "18")]
1570 MaxL0CompactLevelCount(u32),
1571 #[prost(uint64, tag = "19")]
1572 SstAllowedTrivialMoveMinSize(u64),
1573 #[prost(uint32, tag = "20")]
1574 SplitWeightByVnode(u32),
1575 #[prost(bool, tag = "21")]
1576 DisableAutoGroupScheduling(bool),
1577 #[prost(uint64, tag = "22")]
1578 MaxOverlappingLevelSize(u64),
1579 #[prost(uint32, tag = "25")]
1581 EmergencyLevel0SstFileCount(u32),
1582 #[prost(uint32, tag = "26")]
1584 EmergencyLevel0SubLevelPartition(u32),
1585 #[prost(uint32, tag = "27")]
1587 Level0StopWriteThresholdMaxSstCount(u32),
1588 #[prost(uint64, tag = "28")]
1590 Level0StopWriteThresholdMaxSize(u64),
1591 #[prost(uint32, tag = "29")]
1593 SstAllowedTrivialMoveMaxCount(u32),
1594 #[prost(bool, tag = "30")]
1596 EnableOptimizeL0IntervalSelection(bool),
1597 #[deprecated]
1599 #[prost(uint64, tag = "31")]
1600 VnodeAlignedLevelSizeThreshold(u64),
1601 #[prost(uint64, tag = "32")]
1604 MaxKvCountForXor16(u64),
1605 #[prost(uint64, tag = "33")]
1607 MaxVnodeKeyRangeBytes(u64),
1608 #[prost(bool, tag = "34")]
1610 ResetCompressionAlgorithm(bool),
1611 #[prost(message, tag = "35")]
1612 SstableFilterType(super::SstableFilterType),
1613 #[prost(message, tag = "36")]
1614 SstableFilterLayout(super::SstableFilterLayout),
1615 }
1616 }
1617}
1618#[derive(prost_helpers::AnyPB)]
1619#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1620pub struct RiseCtlUpdateCompactionConfigResponse {
1621 #[prost(message, optional, tag = "1")]
1622 pub status: ::core::option::Option<super::common::Status>,
1623}
1624#[derive(prost_helpers::AnyPB)]
1625#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1626pub struct PinVersionRequest {
1627 #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1628 pub context_id: crate::id::WorkerId,
1629}
1630#[derive(prost_helpers::AnyPB)]
1631#[derive(Clone, PartialEq, ::prost::Message)]
1632pub struct PinVersionResponse {
1633 #[prost(message, optional, tag = "1")]
1634 pub pinned_version: ::core::option::Option<HummockVersion>,
1635}
1636#[derive(prost_helpers::AnyPB)]
1637#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1638pub struct SplitCompactionGroupRequest {
1639 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1640 pub group_id: crate::id::CompactionGroupId,
1641 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::TableId")]
1642 pub table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1643 #[prost(uint32, tag = "3")]
1644 pub partition_vnode_count: u32,
1645}
1646#[derive(prost_helpers::AnyPB)]
1647#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1648pub struct SplitCompactionGroupResponse {
1649 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1650 pub new_group_id: crate::id::CompactionGroupId,
1651}
1652#[derive(prost_helpers::AnyPB)]
1653#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1654pub struct RiseCtlPauseVersionCheckpointRequest {}
1655#[derive(prost_helpers::AnyPB)]
1656#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1657pub struct RiseCtlPauseVersionCheckpointResponse {}
1658#[derive(prost_helpers::AnyPB)]
1659#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1660pub struct RiseCtlResumeVersionCheckpointRequest {}
1661#[derive(prost_helpers::AnyPB)]
1662#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1663pub struct RiseCtlResumeVersionCheckpointResponse {}
1664#[derive(prost_helpers::AnyPB)]
1665#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1666pub struct RiseCtlGetCheckpointVersionRequest {}
1667#[derive(prost_helpers::AnyPB)]
1668#[derive(Clone, PartialEq, ::prost::Message)]
1669pub struct RiseCtlGetCheckpointVersionResponse {
1670 #[prost(message, optional, tag = "1")]
1671 pub checkpoint_version: ::core::option::Option<HummockVersion>,
1672}
1673#[derive(prost_helpers::AnyPB)]
1674#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1675pub struct RiseCtlListCompactionStatusRequest {}
1676#[derive(prost_helpers::AnyPB)]
1677#[derive(Clone, PartialEq, ::prost::Message)]
1678pub struct RiseCtlListCompactionStatusResponse {
1679 #[prost(message, repeated, tag = "1")]
1680 pub compaction_statuses: ::prost::alloc::vec::Vec<CompactStatus>,
1681 #[prost(message, repeated, tag = "2")]
1682 pub task_assignment: ::prost::alloc::vec::Vec<CompactTaskAssignment>,
1683 #[prost(message, repeated, tag = "3")]
1684 pub task_progress: ::prost::alloc::vec::Vec<CompactTaskProgress>,
1685}
1686#[derive(prost_helpers::AnyPB)]
1687#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1688pub struct ListBranchedObjectRequest {}
1689#[derive(prost_helpers::AnyPB)]
1690#[derive(Clone, PartialEq, ::prost::Message)]
1691pub struct ListBranchedObjectResponse {
1692 #[prost(message, repeated, tag = "1")]
1693 pub branched_objects: ::prost::alloc::vec::Vec<BranchedObject>,
1694}
1695#[derive(prost_helpers::AnyPB)]
1696#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1697pub struct ListActiveWriteLimitRequest {}
1698#[derive(prost_helpers::AnyPB)]
1699#[derive(Clone, PartialEq, ::prost::Message)]
1700pub struct ListActiveWriteLimitResponse {
1701 #[prost(
1703 map = "uint64, message",
1704 tag = "1",
1705 wrapper = "crate::id::CompactionGroupId"
1706 )]
1707 pub write_limits: ::std::collections::HashMap<
1708 crate::id::CompactionGroupId,
1709 write_limits::WriteLimit,
1710 >,
1711}
1712#[derive(prost_helpers::AnyPB)]
1713#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1714pub struct ListHummockMetaConfigRequest {}
1715#[derive(prost_helpers::AnyPB)]
1716#[derive(Clone, PartialEq, ::prost::Message)]
1717pub struct ListHummockMetaConfigResponse {
1718 #[prost(map = "string, string", tag = "1")]
1719 pub configs: ::std::collections::HashMap<
1720 ::prost::alloc::string::String,
1721 ::prost::alloc::string::String,
1722 >,
1723}
1724#[derive(prost_helpers::AnyPB)]
1725#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1726pub struct RiseCtlRebuildTableStatsRequest {}
1727#[derive(prost_helpers::AnyPB)]
1728#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1729pub struct RiseCtlRebuildTableStatsResponse {}
1730#[derive(prost_helpers::AnyPB)]
1731#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1732pub struct GetCompactionScoreRequest {
1733 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1734 pub compaction_group_id: crate::id::CompactionGroupId,
1735}
1736#[derive(prost_helpers::AnyPB)]
1737#[derive(Clone, PartialEq, ::prost::Message)]
1738pub struct GetCompactionScoreResponse {
1739 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1740 pub compaction_group_id: crate::id::CompactionGroupId,
1741 #[prost(message, repeated, tag = "2")]
1742 pub scores: ::prost::alloc::vec::Vec<get_compaction_score_response::PickerInfo>,
1743}
1744pub mod get_compaction_score_response {
1746 #[derive(prost_helpers::AnyPB)]
1747 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1748 pub struct PickerInfo {
1749 #[prost(uint64, tag = "1")]
1750 pub score: u64,
1751 #[prost(uint64, tag = "2")]
1752 pub select_level: u64,
1753 #[prost(uint64, tag = "3")]
1754 pub target_level: u64,
1755 #[prost(string, tag = "4")]
1756 pub picker_type: ::prost::alloc::string::String,
1757 }
1758}
1759#[derive(prost_helpers::AnyPB)]
1760#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1761pub struct ListCompactTaskAssignmentRequest {}
1762#[derive(prost_helpers::AnyPB)]
1763#[derive(Clone, PartialEq, ::prost::Message)]
1764pub struct ListCompactTaskAssignmentResponse {
1765 #[prost(message, repeated, tag = "1")]
1766 pub task_assignment: ::prost::alloc::vec::Vec<CompactTaskAssignment>,
1767}
1768#[derive(prost_helpers::AnyPB)]
1769#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1770pub struct ListCompactTaskProgressRequest {}
1771#[derive(prost_helpers::AnyPB)]
1772#[derive(Clone, PartialEq, ::prost::Message)]
1773pub struct ListCompactTaskProgressResponse {
1774 #[prost(message, repeated, tag = "1")]
1775 pub task_progress: ::prost::alloc::vec::Vec<CompactTaskProgress>,
1776}
1777#[derive(prost_helpers::AnyPB)]
1778#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1779pub struct CancelCompactTaskRequest {
1780 #[prost(uint64, tag = "1")]
1781 pub task_id: u64,
1782 #[prost(enumeration = "compact_task::TaskStatus", tag = "2")]
1783 pub task_status: i32,
1784}
1785#[derive(prost_helpers::AnyPB)]
1786#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1787pub struct CancelCompactTaskResponse {
1788 #[prost(bool, tag = "1")]
1789 pub ret: bool,
1790}
1791#[derive(prost_helpers::AnyPB)]
1792#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1793pub struct GetVersionByEpochRequest {
1794 #[prost(uint64, tag = "1")]
1795 pub epoch: u64,
1796 #[prost(uint32, tag = "2", wrapper = "crate::id::TableId")]
1797 pub table_id: crate::id::TableId,
1798}
1799#[derive(prost_helpers::AnyPB)]
1800#[derive(Clone, PartialEq, ::prost::Message)]
1801pub struct GetVersionByEpochResponse {
1802 #[prost(message, optional, tag = "1")]
1803 pub version: ::core::option::Option<HummockVersion>,
1804}
1805#[derive(prost_helpers::AnyPB)]
1806#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1807pub struct MergeCompactionGroupRequest {
1808 #[prost(uint64, tag = "1", wrapper = "crate::id::CompactionGroupId")]
1809 pub left_group_id: crate::id::CompactionGroupId,
1810 #[prost(uint64, tag = "2", wrapper = "crate::id::CompactionGroupId")]
1811 pub right_group_id: crate::id::CompactionGroupId,
1812}
1813#[derive(prost_helpers::AnyPB)]
1814#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1815pub struct MergeCompactionGroupResponse {}
1816#[derive(prost_helpers::AnyPB)]
1817#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1818pub struct CompactionConfig {
1819 #[prost(uint64, tag = "1")]
1820 pub max_bytes_for_level_base: u64,
1821 #[prost(uint64, tag = "2")]
1822 pub max_level: u64,
1823 #[prost(uint64, tag = "3")]
1824 pub max_bytes_for_level_multiplier: u64,
1825 #[prost(uint64, tag = "4")]
1826 pub max_compaction_bytes: u64,
1827 #[prost(uint64, tag = "5")]
1828 pub sub_level_max_compaction_bytes: u64,
1829 #[prost(uint64, tag = "7")]
1830 pub level0_tier_compact_file_number: u64,
1831 #[prost(enumeration = "compaction_config::CompactionMode", tag = "8")]
1832 pub compaction_mode: i32,
1833 #[prost(string, repeated, tag = "9")]
1834 pub compression_algorithm: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1835 #[prost(uint64, tag = "10")]
1836 pub target_file_size_base: u64,
1837 #[prost(uint32, tag = "11")]
1838 pub compaction_filter_mask: u32,
1839 #[prost(uint32, tag = "12")]
1840 pub max_sub_compaction: u32,
1841 #[prost(uint64, tag = "13")]
1842 pub max_space_reclaim_bytes: u64,
1843 #[prost(bool, tag = "14")]
1844 pub split_by_state_table: bool,
1845 #[prost(uint32, tag = "6")]
1847 pub split_weight_by_vnode: u32,
1848 #[prost(uint64, tag = "15")]
1850 pub level0_stop_write_threshold_sub_level_number: u64,
1851 #[prost(uint64, tag = "16")]
1852 pub level0_max_compact_file_number: u64,
1853 #[prost(uint32, tag = "17")]
1854 pub level0_sub_level_compact_level_count: u32,
1855 #[prost(uint32, tag = "18")]
1857 pub level0_overlapping_sub_level_compact_level_count: u32,
1858 #[prost(uint32, tag = "19")]
1859 pub tombstone_reclaim_ratio: u32,
1860 #[prost(bool, tag = "20")]
1861 pub enable_emergency_picker: bool,
1862 #[prost(uint32, optional, tag = "21")]
1864 pub max_l0_compact_level_count: ::core::option::Option<u32>,
1865 #[prost(uint64, optional, tag = "22")]
1867 pub sst_allowed_trivial_move_min_size: ::core::option::Option<u64>,
1868 #[prost(bool, optional, tag = "23")]
1870 pub disable_auto_group_scheduling: ::core::option::Option<bool>,
1871 #[prost(uint64, optional, tag = "24")]
1874 pub max_overlapping_level_size: ::core::option::Option<u64>,
1875 #[prost(uint32, optional, tag = "25")]
1877 pub emergency_level0_sst_file_count: ::core::option::Option<u32>,
1878 #[prost(uint32, optional, tag = "26")]
1880 pub emergency_level0_sub_level_partition: ::core::option::Option<u32>,
1881 #[prost(uint32, optional, tag = "27")]
1883 pub level0_stop_write_threshold_max_sst_count: ::core::option::Option<u32>,
1884 #[prost(uint64, optional, tag = "28")]
1886 pub level0_stop_write_threshold_max_size: ::core::option::Option<u64>,
1887 #[prost(uint32, optional, tag = "29")]
1889 pub sst_allowed_trivial_move_max_count: ::core::option::Option<u32>,
1890 #[prost(bool, optional, tag = "30")]
1892 pub enable_optimize_l0_interval_selection: ::core::option::Option<bool>,
1893 #[deprecated]
1895 #[prost(uint64, optional, tag = "31")]
1896 pub vnode_aligned_level_size_threshold: ::core::option::Option<u64>,
1897 #[prost(uint64, optional, tag = "32")]
1909 pub max_kv_count_for_xor16: ::core::option::Option<u64>,
1910 #[prost(uint64, optional, tag = "33")]
1912 pub max_vnode_key_range_bytes: ::core::option::Option<u64>,
1913 #[prost(string, repeated, tag = "34")]
1923 pub sstable_filter_type: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1924 #[prost(string, repeated, tag = "35")]
1937 pub sstable_filter_layout: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1938}
1939pub mod compaction_config {
1941 #[derive(prost_helpers::AnyPB)]
1942 #[derive(
1943 Clone,
1944 Copy,
1945 Debug,
1946 PartialEq,
1947 Eq,
1948 Hash,
1949 PartialOrd,
1950 Ord,
1951 ::prost::Enumeration
1952 )]
1953 #[repr(i32)]
1954 pub enum CompactionMode {
1955 Unspecified = 0,
1956 Range = 1,
1957 }
1958 impl CompactionMode {
1959 pub fn as_str_name(&self) -> &'static str {
1964 match self {
1965 Self::Unspecified => "UNSPECIFIED",
1966 Self::Range => "RANGE",
1967 }
1968 }
1969 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1971 match value {
1972 "UNSPECIFIED" => Some(Self::Unspecified),
1973 "RANGE" => Some(Self::Range),
1974 _ => None,
1975 }
1976 }
1977 }
1978}
1979#[derive(prost_helpers::AnyPB)]
1980#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1981pub struct TableStats {
1982 #[prost(int64, tag = "1")]
1983 pub total_key_size: i64,
1984 #[prost(int64, tag = "2")]
1985 pub total_value_size: i64,
1986 #[prost(int64, tag = "3")]
1987 pub total_key_count: i64,
1988 #[prost(uint64, tag = "4")]
1991 pub total_compressed_size: u64,
1992}
1993#[derive(prost_helpers::AnyPB)]
1994#[derive(Clone, PartialEq, ::prost::Message)]
1995pub struct HummockVersionStats {
1996 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockVersionId")]
1997 pub hummock_version_id: crate::id::HummockVersionId,
1998 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::TableId")]
1999 pub table_stats: ::std::collections::HashMap<crate::id::TableId, TableStats>,
2000}
2001#[derive(prost_helpers::AnyPB)]
2002#[derive(Clone, PartialEq, ::prost::Message)]
2003pub struct WriteLimits {
2004 #[prost(
2006 map = "uint64, message",
2007 tag = "1",
2008 wrapper = "crate::id::CompactionGroupId"
2009 )]
2010 pub write_limits: ::std::collections::HashMap<
2011 crate::id::CompactionGroupId,
2012 write_limits::WriteLimit,
2013 >,
2014}
2015pub mod write_limits {
2017 #[derive(prost_helpers::AnyPB)]
2018 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2019 pub struct WriteLimit {
2020 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::TableId")]
2021 pub table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
2022 #[prost(string, tag = "2")]
2023 pub reason: ::prost::alloc::string::String,
2024 }
2025}
2026#[derive(prost_helpers::AnyPB)]
2027#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2028pub struct BranchedObject {
2029 #[prost(uint64, tag = "1", wrapper = "crate::id::HummockSstableObjectId")]
2030 pub object_id: crate::id::HummockSstableObjectId,
2031 #[prost(uint64, repeated, tag = "2", wrapper = "crate::id::HummockSstableId")]
2032 pub sst_id: ::prost::alloc::vec::Vec<crate::id::HummockSstableId>,
2033 #[prost(uint64, tag = "3", wrapper = "crate::id::CompactionGroupId")]
2035 pub compaction_group_id: crate::id::CompactionGroupId,
2036}
2037#[derive(prost_helpers::AnyPB)]
2038#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2039#[repr(i32)]
2040pub enum BloomFilterType {
2041 BloomFilterUnspecified = 0,
2042 Sstable = 1,
2043 Blocked = 2,
2044}
2045impl BloomFilterType {
2046 pub fn as_str_name(&self) -> &'static str {
2051 match self {
2052 Self::BloomFilterUnspecified => "BLOOM_FILTER_UNSPECIFIED",
2053 Self::Sstable => "SSTABLE",
2054 Self::Blocked => "BLOCKED",
2055 }
2056 }
2057 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2059 match value {
2060 "BLOOM_FILTER_UNSPECIFIED" => Some(Self::BloomFilterUnspecified),
2061 "SSTABLE" => Some(Self::Sstable),
2062 "BLOCKED" => Some(Self::Blocked),
2063 _ => None,
2064 }
2065 }
2066}
2067#[derive(prost_helpers::AnyPB)]
2068#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2069#[repr(i32)]
2070pub enum SstableFilterType {
2071 SstableFilterUnspecified = 0,
2072 SstableFilterNone = 1,
2073 SstableFilterXor8 = 2,
2074 SstableFilterXor16 = 3,
2075}
2076impl SstableFilterType {
2077 pub fn as_str_name(&self) -> &'static str {
2082 match self {
2083 Self::SstableFilterUnspecified => "SSTABLE_FILTER_UNSPECIFIED",
2084 Self::SstableFilterNone => "SSTABLE_FILTER_NONE",
2085 Self::SstableFilterXor8 => "SSTABLE_FILTER_XOR8",
2086 Self::SstableFilterXor16 => "SSTABLE_FILTER_XOR16",
2087 }
2088 }
2089 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2091 match value {
2092 "SSTABLE_FILTER_UNSPECIFIED" => Some(Self::SstableFilterUnspecified),
2093 "SSTABLE_FILTER_NONE" => Some(Self::SstableFilterNone),
2094 "SSTABLE_FILTER_XOR8" => Some(Self::SstableFilterXor8),
2095 "SSTABLE_FILTER_XOR16" => Some(Self::SstableFilterXor16),
2096 _ => None,
2097 }
2098 }
2099}
2100#[derive(prost_helpers::AnyPB)]
2105#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2106#[repr(i32)]
2107pub enum SstableFilterLayout {
2108 Unspecified = 0,
2109 Auto = 1,
2111 Plain = 2,
2113 Blocked = 3,
2115}
2116impl SstableFilterLayout {
2117 pub fn as_str_name(&self) -> &'static str {
2122 match self {
2123 Self::Unspecified => "SSTABLE_FILTER_LAYOUT_UNSPECIFIED",
2124 Self::Auto => "SSTABLE_FILTER_LAYOUT_AUTO",
2125 Self::Plain => "SSTABLE_FILTER_LAYOUT_PLAIN",
2126 Self::Blocked => "SSTABLE_FILTER_LAYOUT_BLOCKED",
2127 }
2128 }
2129 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2131 match value {
2132 "SSTABLE_FILTER_LAYOUT_UNSPECIFIED" => Some(Self::Unspecified),
2133 "SSTABLE_FILTER_LAYOUT_AUTO" => Some(Self::Auto),
2134 "SSTABLE_FILTER_LAYOUT_PLAIN" => Some(Self::Plain),
2135 "SSTABLE_FILTER_LAYOUT_BLOCKED" => Some(Self::Blocked),
2136 _ => None,
2137 }
2138 }
2139}
2140#[derive(prost_helpers::AnyPB)]
2141#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2142#[repr(i32)]
2143pub enum LevelType {
2144 Unspecified = 0,
2145 Nonoverlapping = 1,
2146 Overlapping = 2,
2147}
2148impl LevelType {
2149 pub fn as_str_name(&self) -> &'static str {
2154 match self {
2155 Self::Unspecified => "LEVEL_TYPE_UNSPECIFIED",
2156 Self::Nonoverlapping => "LEVEL_TYPE_NONOVERLAPPING",
2157 Self::Overlapping => "LEVEL_TYPE_OVERLAPPING",
2158 }
2159 }
2160 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2162 match value {
2163 "LEVEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2164 "LEVEL_TYPE_NONOVERLAPPING" => Some(Self::Nonoverlapping),
2165 "LEVEL_TYPE_OVERLAPPING" => Some(Self::Overlapping),
2166 _ => None,
2167 }
2168 }
2169}
2170#[derive(prost_helpers::AnyPB)]
2171#[derive(prost_helpers::Version)]
2172#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2173#[repr(i32)]
2174pub enum CompatibilityVersion {
2175 VersionUnspecified = 0,
2176 NoTrivialSplit = 1,
2177 NoMemberTableIds = 2,
2178 SplitGroupByTableId = 3,
2179}
2180impl CompatibilityVersion {
2181 pub fn as_str_name(&self) -> &'static str {
2186 match self {
2187 Self::VersionUnspecified => "VERSION_UNSPECIFIED",
2188 Self::NoTrivialSplit => "NO_TRIVIAL_SPLIT",
2189 Self::NoMemberTableIds => "NO_MEMBER_TABLE_IDS",
2190 Self::SplitGroupByTableId => "SPLIT_GROUP_BY_TABLE_ID",
2191 }
2192 }
2193 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2195 match value {
2196 "VERSION_UNSPECIFIED" => Some(Self::VersionUnspecified),
2197 "NO_TRIVIAL_SPLIT" => Some(Self::NoTrivialSplit),
2198 "NO_MEMBER_TABLE_IDS" => Some(Self::NoMemberTableIds),
2199 "SPLIT_GROUP_BY_TABLE_ID" => Some(Self::SplitGroupByTableId),
2200 _ => None,
2201 }
2202 }
2203}
2204#[derive(prost_helpers::AnyPB)]
2205#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2206#[repr(i32)]
2207pub enum WatermarkSerdeType {
2208 TypeUnspecified = 0,
2209 PkPrefix = 1,
2210 NonPkPrefix = 2,
2211 Value = 3,
2212}
2213impl WatermarkSerdeType {
2214 pub fn as_str_name(&self) -> &'static str {
2219 match self {
2220 Self::TypeUnspecified => "TYPE_UNSPECIFIED",
2221 Self::PkPrefix => "PK_PREFIX",
2222 Self::NonPkPrefix => "NON_PK_PREFIX",
2223 Self::Value => "VALUE",
2224 }
2225 }
2226 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2228 match value {
2229 "TYPE_UNSPECIFIED" => Some(Self::TypeUnspecified),
2230 "PK_PREFIX" => Some(Self::PkPrefix),
2231 "NON_PK_PREFIX" => Some(Self::NonPkPrefix),
2232 "VALUE" => Some(Self::Value),
2233 _ => None,
2234 }
2235 }
2236}
2237#[derive(prost_helpers::AnyPB)]
2238#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2239#[repr(i32)]
2240pub enum VectorIndexObjectType {
2241 VectorIndexObjectUnspecified = 0,
2242 VectorIndexObjectVector = 1,
2243 VectorIndexObjectHnswGraph = 2,
2244}
2245impl VectorIndexObjectType {
2246 pub fn as_str_name(&self) -> &'static str {
2251 match self {
2252 Self::VectorIndexObjectUnspecified => "VECTOR_INDEX_OBJECT_UNSPECIFIED",
2253 Self::VectorIndexObjectVector => "VECTOR_INDEX_OBJECT_VECTOR",
2254 Self::VectorIndexObjectHnswGraph => "VECTOR_INDEX_OBJECT_HNSW_GRAPH",
2255 }
2256 }
2257 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2259 match value {
2260 "VECTOR_INDEX_OBJECT_UNSPECIFIED" => Some(Self::VectorIndexObjectUnspecified),
2261 "VECTOR_INDEX_OBJECT_VECTOR" => Some(Self::VectorIndexObjectVector),
2262 "VECTOR_INDEX_OBJECT_HNSW_GRAPH" => Some(Self::VectorIndexObjectHnswGraph),
2263 _ => None,
2264 }
2265 }
2266}
2267#[derive(prost_helpers::AnyPB)]
2269#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2270#[repr(i32)]
2271pub enum CheckpointCompressionAlgorithm {
2272 CheckpointCompressionUnspecified = 0,
2274 CheckpointCompressionZstd = 1,
2276 CheckpointCompressionLz4 = 2,
2278}
2279impl CheckpointCompressionAlgorithm {
2280 pub fn as_str_name(&self) -> &'static str {
2285 match self {
2286 Self::CheckpointCompressionUnspecified => {
2287 "CHECKPOINT_COMPRESSION_UNSPECIFIED"
2288 }
2289 Self::CheckpointCompressionZstd => "CHECKPOINT_COMPRESSION_ZSTD",
2290 Self::CheckpointCompressionLz4 => "CHECKPOINT_COMPRESSION_LZ4",
2291 }
2292 }
2293 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2295 match value {
2296 "CHECKPOINT_COMPRESSION_UNSPECIFIED" => {
2297 Some(Self::CheckpointCompressionUnspecified)
2298 }
2299 "CHECKPOINT_COMPRESSION_ZSTD" => Some(Self::CheckpointCompressionZstd),
2300 "CHECKPOINT_COMPRESSION_LZ4" => Some(Self::CheckpointCompressionLz4),
2301 _ => None,
2302 }
2303 }
2304}
2305pub mod hummock_manager_service_client {
2307 #![allow(
2308 unused_variables,
2309 dead_code,
2310 missing_docs,
2311 clippy::wildcard_imports,
2312 clippy::let_unit_value,
2313 )]
2314 use tonic::codegen::*;
2315 use tonic::codegen::http::Uri;
2316 #[derive(Debug, Clone)]
2317 pub struct HummockManagerServiceClient<T> {
2318 inner: tonic::client::Grpc<T>,
2319 }
2320 impl HummockManagerServiceClient<tonic::transport::Channel> {
2321 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2323 where
2324 D: TryInto<tonic::transport::Endpoint>,
2325 D::Error: Into<StdError>,
2326 {
2327 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2328 Ok(Self::new(conn))
2329 }
2330 }
2331 impl<T> HummockManagerServiceClient<T>
2332 where
2333 T: tonic::client::GrpcService<tonic::body::Body>,
2334 T::Error: Into<StdError>,
2335 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2336 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2337 {
2338 pub fn new(inner: T) -> Self {
2339 let inner = tonic::client::Grpc::new(inner);
2340 Self { inner }
2341 }
2342 pub fn with_origin(inner: T, origin: Uri) -> Self {
2343 let inner = tonic::client::Grpc::with_origin(inner, origin);
2344 Self { inner }
2345 }
2346 pub fn with_interceptor<F>(
2347 inner: T,
2348 interceptor: F,
2349 ) -> HummockManagerServiceClient<InterceptedService<T, F>>
2350 where
2351 F: tonic::service::Interceptor,
2352 T::ResponseBody: Default,
2353 T: tonic::codegen::Service<
2354 http::Request<tonic::body::Body>,
2355 Response = http::Response<
2356 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2357 >,
2358 >,
2359 <T as tonic::codegen::Service<
2360 http::Request<tonic::body::Body>,
2361 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2362 {
2363 HummockManagerServiceClient::new(InterceptedService::new(inner, interceptor))
2364 }
2365 #[must_use]
2370 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2371 self.inner = self.inner.send_compressed(encoding);
2372 self
2373 }
2374 #[must_use]
2376 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2377 self.inner = self.inner.accept_compressed(encoding);
2378 self
2379 }
2380 #[must_use]
2384 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2385 self.inner = self.inner.max_decoding_message_size(limit);
2386 self
2387 }
2388 #[must_use]
2392 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2393 self.inner = self.inner.max_encoding_message_size(limit);
2394 self
2395 }
2396 pub async fn unpin_version_before(
2397 &mut self,
2398 request: impl tonic::IntoRequest<super::UnpinVersionBeforeRequest>,
2399 ) -> std::result::Result<
2400 tonic::Response<super::UnpinVersionBeforeResponse>,
2401 tonic::Status,
2402 > {
2403 self.inner
2404 .ready()
2405 .await
2406 .map_err(|e| {
2407 tonic::Status::unknown(
2408 format!("Service was not ready: {}", e.into()),
2409 )
2410 })?;
2411 let codec = tonic_prost::ProstCodec::default();
2412 let path = http::uri::PathAndQuery::from_static(
2413 "/hummock.HummockManagerService/UnpinVersionBefore",
2414 );
2415 let mut req = request.into_request();
2416 req.extensions_mut()
2417 .insert(
2418 GrpcMethod::new(
2419 "hummock.HummockManagerService",
2420 "UnpinVersionBefore",
2421 ),
2422 );
2423 self.inner.unary(req, path, codec).await
2424 }
2425 pub async fn get_current_version(
2426 &mut self,
2427 request: impl tonic::IntoRequest<super::GetCurrentVersionRequest>,
2428 ) -> std::result::Result<
2429 tonic::Response<super::GetCurrentVersionResponse>,
2430 tonic::Status,
2431 > {
2432 self.inner
2433 .ready()
2434 .await
2435 .map_err(|e| {
2436 tonic::Status::unknown(
2437 format!("Service was not ready: {}", e.into()),
2438 )
2439 })?;
2440 let codec = tonic_prost::ProstCodec::default();
2441 let path = http::uri::PathAndQuery::from_static(
2442 "/hummock.HummockManagerService/GetCurrentVersion",
2443 );
2444 let mut req = request.into_request();
2445 req.extensions_mut()
2446 .insert(
2447 GrpcMethod::new("hummock.HummockManagerService", "GetCurrentVersion"),
2448 );
2449 self.inner.unary(req, path, codec).await
2450 }
2451 pub async fn list_version_deltas(
2452 &mut self,
2453 request: impl tonic::IntoRequest<super::ListVersionDeltasRequest>,
2454 ) -> std::result::Result<
2455 tonic::Response<super::ListVersionDeltasResponse>,
2456 tonic::Status,
2457 > {
2458 self.inner
2459 .ready()
2460 .await
2461 .map_err(|e| {
2462 tonic::Status::unknown(
2463 format!("Service was not ready: {}", e.into()),
2464 )
2465 })?;
2466 let codec = tonic_prost::ProstCodec::default();
2467 let path = http::uri::PathAndQuery::from_static(
2468 "/hummock.HummockManagerService/ListVersionDeltas",
2469 );
2470 let mut req = request.into_request();
2471 req.extensions_mut()
2472 .insert(
2473 GrpcMethod::new("hummock.HummockManagerService", "ListVersionDeltas"),
2474 );
2475 self.inner.unary(req, path, codec).await
2476 }
2477 pub async fn replay_version_delta(
2478 &mut self,
2479 request: impl tonic::IntoRequest<super::ReplayVersionDeltaRequest>,
2480 ) -> std::result::Result<
2481 tonic::Response<super::ReplayVersionDeltaResponse>,
2482 tonic::Status,
2483 > {
2484 self.inner
2485 .ready()
2486 .await
2487 .map_err(|e| {
2488 tonic::Status::unknown(
2489 format!("Service was not ready: {}", e.into()),
2490 )
2491 })?;
2492 let codec = tonic_prost::ProstCodec::default();
2493 let path = http::uri::PathAndQuery::from_static(
2494 "/hummock.HummockManagerService/ReplayVersionDelta",
2495 );
2496 let mut req = request.into_request();
2497 req.extensions_mut()
2498 .insert(
2499 GrpcMethod::new(
2500 "hummock.HummockManagerService",
2501 "ReplayVersionDelta",
2502 ),
2503 );
2504 self.inner.unary(req, path, codec).await
2505 }
2506 pub async fn get_assigned_compact_task_num(
2507 &mut self,
2508 request: impl tonic::IntoRequest<super::GetAssignedCompactTaskNumRequest>,
2509 ) -> std::result::Result<
2510 tonic::Response<super::GetAssignedCompactTaskNumResponse>,
2511 tonic::Status,
2512 > {
2513 self.inner
2514 .ready()
2515 .await
2516 .map_err(|e| {
2517 tonic::Status::unknown(
2518 format!("Service was not ready: {}", e.into()),
2519 )
2520 })?;
2521 let codec = tonic_prost::ProstCodec::default();
2522 let path = http::uri::PathAndQuery::from_static(
2523 "/hummock.HummockManagerService/GetAssignedCompactTaskNum",
2524 );
2525 let mut req = request.into_request();
2526 req.extensions_mut()
2527 .insert(
2528 GrpcMethod::new(
2529 "hummock.HummockManagerService",
2530 "GetAssignedCompactTaskNum",
2531 ),
2532 );
2533 self.inner.unary(req, path, codec).await
2534 }
2535 pub async fn trigger_compaction_deterministic(
2536 &mut self,
2537 request: impl tonic::IntoRequest<
2538 super::TriggerCompactionDeterministicRequest,
2539 >,
2540 ) -> std::result::Result<
2541 tonic::Response<super::TriggerCompactionDeterministicResponse>,
2542 tonic::Status,
2543 > {
2544 self.inner
2545 .ready()
2546 .await
2547 .map_err(|e| {
2548 tonic::Status::unknown(
2549 format!("Service was not ready: {}", e.into()),
2550 )
2551 })?;
2552 let codec = tonic_prost::ProstCodec::default();
2553 let path = http::uri::PathAndQuery::from_static(
2554 "/hummock.HummockManagerService/TriggerCompactionDeterministic",
2555 );
2556 let mut req = request.into_request();
2557 req.extensions_mut()
2558 .insert(
2559 GrpcMethod::new(
2560 "hummock.HummockManagerService",
2561 "TriggerCompactionDeterministic",
2562 ),
2563 );
2564 self.inner.unary(req, path, codec).await
2565 }
2566 pub async fn disable_commit_epoch(
2567 &mut self,
2568 request: impl tonic::IntoRequest<super::DisableCommitEpochRequest>,
2569 ) -> std::result::Result<
2570 tonic::Response<super::DisableCommitEpochResponse>,
2571 tonic::Status,
2572 > {
2573 self.inner
2574 .ready()
2575 .await
2576 .map_err(|e| {
2577 tonic::Status::unknown(
2578 format!("Service was not ready: {}", e.into()),
2579 )
2580 })?;
2581 let codec = tonic_prost::ProstCodec::default();
2582 let path = http::uri::PathAndQuery::from_static(
2583 "/hummock.HummockManagerService/DisableCommitEpoch",
2584 );
2585 let mut req = request.into_request();
2586 req.extensions_mut()
2587 .insert(
2588 GrpcMethod::new(
2589 "hummock.HummockManagerService",
2590 "DisableCommitEpoch",
2591 ),
2592 );
2593 self.inner.unary(req, path, codec).await
2594 }
2595 pub async fn get_new_object_ids(
2596 &mut self,
2597 request: impl tonic::IntoRequest<super::GetNewObjectIdsRequest>,
2598 ) -> std::result::Result<
2599 tonic::Response<super::GetNewObjectIdsResponse>,
2600 tonic::Status,
2601 > {
2602 self.inner
2603 .ready()
2604 .await
2605 .map_err(|e| {
2606 tonic::Status::unknown(
2607 format!("Service was not ready: {}", e.into()),
2608 )
2609 })?;
2610 let codec = tonic_prost::ProstCodec::default();
2611 let path = http::uri::PathAndQuery::from_static(
2612 "/hummock.HummockManagerService/GetNewObjectIds",
2613 );
2614 let mut req = request.into_request();
2615 req.extensions_mut()
2616 .insert(
2617 GrpcMethod::new("hummock.HummockManagerService", "GetNewObjectIds"),
2618 );
2619 self.inner.unary(req, path, codec).await
2620 }
2621 pub async fn trigger_manual_compaction(
2622 &mut self,
2623 request: impl tonic::IntoRequest<super::TriggerManualCompactionRequest>,
2624 ) -> std::result::Result<
2625 tonic::Response<super::TriggerManualCompactionResponse>,
2626 tonic::Status,
2627 > {
2628 self.inner
2629 .ready()
2630 .await
2631 .map_err(|e| {
2632 tonic::Status::unknown(
2633 format!("Service was not ready: {}", e.into()),
2634 )
2635 })?;
2636 let codec = tonic_prost::ProstCodec::default();
2637 let path = http::uri::PathAndQuery::from_static(
2638 "/hummock.HummockManagerService/TriggerManualCompaction",
2639 );
2640 let mut req = request.into_request();
2641 req.extensions_mut()
2642 .insert(
2643 GrpcMethod::new(
2644 "hummock.HummockManagerService",
2645 "TriggerManualCompaction",
2646 ),
2647 );
2648 self.inner.unary(req, path, codec).await
2649 }
2650 pub async fn trigger_full_gc(
2651 &mut self,
2652 request: impl tonic::IntoRequest<super::TriggerFullGcRequest>,
2653 ) -> std::result::Result<
2654 tonic::Response<super::TriggerFullGcResponse>,
2655 tonic::Status,
2656 > {
2657 self.inner
2658 .ready()
2659 .await
2660 .map_err(|e| {
2661 tonic::Status::unknown(
2662 format!("Service was not ready: {}", e.into()),
2663 )
2664 })?;
2665 let codec = tonic_prost::ProstCodec::default();
2666 let path = http::uri::PathAndQuery::from_static(
2667 "/hummock.HummockManagerService/TriggerFullGC",
2668 );
2669 let mut req = request.into_request();
2670 req.extensions_mut()
2671 .insert(
2672 GrpcMethod::new("hummock.HummockManagerService", "TriggerFullGC"),
2673 );
2674 self.inner.unary(req, path, codec).await
2675 }
2676 pub async fn rise_ctl_get_pinned_versions_summary(
2677 &mut self,
2678 request: impl tonic::IntoRequest<
2679 super::RiseCtlGetPinnedVersionsSummaryRequest,
2680 >,
2681 ) -> std::result::Result<
2682 tonic::Response<super::RiseCtlGetPinnedVersionsSummaryResponse>,
2683 tonic::Status,
2684 > {
2685 self.inner
2686 .ready()
2687 .await
2688 .map_err(|e| {
2689 tonic::Status::unknown(
2690 format!("Service was not ready: {}", e.into()),
2691 )
2692 })?;
2693 let codec = tonic_prost::ProstCodec::default();
2694 let path = http::uri::PathAndQuery::from_static(
2695 "/hummock.HummockManagerService/RiseCtlGetPinnedVersionsSummary",
2696 );
2697 let mut req = request.into_request();
2698 req.extensions_mut()
2699 .insert(
2700 GrpcMethod::new(
2701 "hummock.HummockManagerService",
2702 "RiseCtlGetPinnedVersionsSummary",
2703 ),
2704 );
2705 self.inner.unary(req, path, codec).await
2706 }
2707 pub async fn rise_ctl_list_compaction_group(
2708 &mut self,
2709 request: impl tonic::IntoRequest<super::RiseCtlListCompactionGroupRequest>,
2710 ) -> std::result::Result<
2711 tonic::Response<super::RiseCtlListCompactionGroupResponse>,
2712 tonic::Status,
2713 > {
2714 self.inner
2715 .ready()
2716 .await
2717 .map_err(|e| {
2718 tonic::Status::unknown(
2719 format!("Service was not ready: {}", e.into()),
2720 )
2721 })?;
2722 let codec = tonic_prost::ProstCodec::default();
2723 let path = http::uri::PathAndQuery::from_static(
2724 "/hummock.HummockManagerService/RiseCtlListCompactionGroup",
2725 );
2726 let mut req = request.into_request();
2727 req.extensions_mut()
2728 .insert(
2729 GrpcMethod::new(
2730 "hummock.HummockManagerService",
2731 "RiseCtlListCompactionGroup",
2732 ),
2733 );
2734 self.inner.unary(req, path, codec).await
2735 }
2736 pub async fn rise_ctl_update_compaction_config(
2737 &mut self,
2738 request: impl tonic::IntoRequest<super::RiseCtlUpdateCompactionConfigRequest>,
2739 ) -> std::result::Result<
2740 tonic::Response<super::RiseCtlUpdateCompactionConfigResponse>,
2741 tonic::Status,
2742 > {
2743 self.inner
2744 .ready()
2745 .await
2746 .map_err(|e| {
2747 tonic::Status::unknown(
2748 format!("Service was not ready: {}", e.into()),
2749 )
2750 })?;
2751 let codec = tonic_prost::ProstCodec::default();
2752 let path = http::uri::PathAndQuery::from_static(
2753 "/hummock.HummockManagerService/RiseCtlUpdateCompactionConfig",
2754 );
2755 let mut req = request.into_request();
2756 req.extensions_mut()
2757 .insert(
2758 GrpcMethod::new(
2759 "hummock.HummockManagerService",
2760 "RiseCtlUpdateCompactionConfig",
2761 ),
2762 );
2763 self.inner.unary(req, path, codec).await
2764 }
2765 pub async fn rise_ctl_pause_version_checkpoint(
2766 &mut self,
2767 request: impl tonic::IntoRequest<super::RiseCtlPauseVersionCheckpointRequest>,
2768 ) -> std::result::Result<
2769 tonic::Response<super::RiseCtlPauseVersionCheckpointResponse>,
2770 tonic::Status,
2771 > {
2772 self.inner
2773 .ready()
2774 .await
2775 .map_err(|e| {
2776 tonic::Status::unknown(
2777 format!("Service was not ready: {}", e.into()),
2778 )
2779 })?;
2780 let codec = tonic_prost::ProstCodec::default();
2781 let path = http::uri::PathAndQuery::from_static(
2782 "/hummock.HummockManagerService/RiseCtlPauseVersionCheckpoint",
2783 );
2784 let mut req = request.into_request();
2785 req.extensions_mut()
2786 .insert(
2787 GrpcMethod::new(
2788 "hummock.HummockManagerService",
2789 "RiseCtlPauseVersionCheckpoint",
2790 ),
2791 );
2792 self.inner.unary(req, path, codec).await
2793 }
2794 pub async fn rise_ctl_resume_version_checkpoint(
2795 &mut self,
2796 request: impl tonic::IntoRequest<
2797 super::RiseCtlResumeVersionCheckpointRequest,
2798 >,
2799 ) -> std::result::Result<
2800 tonic::Response<super::RiseCtlResumeVersionCheckpointResponse>,
2801 tonic::Status,
2802 > {
2803 self.inner
2804 .ready()
2805 .await
2806 .map_err(|e| {
2807 tonic::Status::unknown(
2808 format!("Service was not ready: {}", e.into()),
2809 )
2810 })?;
2811 let codec = tonic_prost::ProstCodec::default();
2812 let path = http::uri::PathAndQuery::from_static(
2813 "/hummock.HummockManagerService/RiseCtlResumeVersionCheckpoint",
2814 );
2815 let mut req = request.into_request();
2816 req.extensions_mut()
2817 .insert(
2818 GrpcMethod::new(
2819 "hummock.HummockManagerService",
2820 "RiseCtlResumeVersionCheckpoint",
2821 ),
2822 );
2823 self.inner.unary(req, path, codec).await
2824 }
2825 pub async fn rise_ctl_get_checkpoint_version(
2826 &mut self,
2827 request: impl tonic::IntoRequest<super::RiseCtlGetCheckpointVersionRequest>,
2828 ) -> std::result::Result<
2829 tonic::Response<super::RiseCtlGetCheckpointVersionResponse>,
2830 tonic::Status,
2831 > {
2832 self.inner
2833 .ready()
2834 .await
2835 .map_err(|e| {
2836 tonic::Status::unknown(
2837 format!("Service was not ready: {}", e.into()),
2838 )
2839 })?;
2840 let codec = tonic_prost::ProstCodec::default();
2841 let path = http::uri::PathAndQuery::from_static(
2842 "/hummock.HummockManagerService/RiseCtlGetCheckpointVersion",
2843 );
2844 let mut req = request.into_request();
2845 req.extensions_mut()
2846 .insert(
2847 GrpcMethod::new(
2848 "hummock.HummockManagerService",
2849 "RiseCtlGetCheckpointVersion",
2850 ),
2851 );
2852 self.inner.unary(req, path, codec).await
2853 }
2854 pub async fn rise_ctl_rebuild_table_stats(
2855 &mut self,
2856 request: impl tonic::IntoRequest<super::RiseCtlRebuildTableStatsRequest>,
2857 ) -> std::result::Result<
2858 tonic::Response<super::RiseCtlRebuildTableStatsResponse>,
2859 tonic::Status,
2860 > {
2861 self.inner
2862 .ready()
2863 .await
2864 .map_err(|e| {
2865 tonic::Status::unknown(
2866 format!("Service was not ready: {}", e.into()),
2867 )
2868 })?;
2869 let codec = tonic_prost::ProstCodec::default();
2870 let path = http::uri::PathAndQuery::from_static(
2871 "/hummock.HummockManagerService/RiseCtlRebuildTableStats",
2872 );
2873 let mut req = request.into_request();
2874 req.extensions_mut()
2875 .insert(
2876 GrpcMethod::new(
2877 "hummock.HummockManagerService",
2878 "RiseCtlRebuildTableStats",
2879 ),
2880 );
2881 self.inner.unary(req, path, codec).await
2882 }
2883 pub async fn init_metadata_for_replay(
2884 &mut self,
2885 request: impl tonic::IntoRequest<super::InitMetadataForReplayRequest>,
2886 ) -> std::result::Result<
2887 tonic::Response<super::InitMetadataForReplayResponse>,
2888 tonic::Status,
2889 > {
2890 self.inner
2891 .ready()
2892 .await
2893 .map_err(|e| {
2894 tonic::Status::unknown(
2895 format!("Service was not ready: {}", e.into()),
2896 )
2897 })?;
2898 let codec = tonic_prost::ProstCodec::default();
2899 let path = http::uri::PathAndQuery::from_static(
2900 "/hummock.HummockManagerService/InitMetadataForReplay",
2901 );
2902 let mut req = request.into_request();
2903 req.extensions_mut()
2904 .insert(
2905 GrpcMethod::new(
2906 "hummock.HummockManagerService",
2907 "InitMetadataForReplay",
2908 ),
2909 );
2910 self.inner.unary(req, path, codec).await
2911 }
2912 pub async fn pin_version(
2913 &mut self,
2914 request: impl tonic::IntoRequest<super::PinVersionRequest>,
2915 ) -> std::result::Result<
2916 tonic::Response<super::PinVersionResponse>,
2917 tonic::Status,
2918 > {
2919 self.inner
2920 .ready()
2921 .await
2922 .map_err(|e| {
2923 tonic::Status::unknown(
2924 format!("Service was not ready: {}", e.into()),
2925 )
2926 })?;
2927 let codec = tonic_prost::ProstCodec::default();
2928 let path = http::uri::PathAndQuery::from_static(
2929 "/hummock.HummockManagerService/PinVersion",
2930 );
2931 let mut req = request.into_request();
2932 req.extensions_mut()
2933 .insert(GrpcMethod::new("hummock.HummockManagerService", "PinVersion"));
2934 self.inner.unary(req, path, codec).await
2935 }
2936 pub async fn split_compaction_group(
2937 &mut self,
2938 request: impl tonic::IntoRequest<super::SplitCompactionGroupRequest>,
2939 ) -> std::result::Result<
2940 tonic::Response<super::SplitCompactionGroupResponse>,
2941 tonic::Status,
2942 > {
2943 self.inner
2944 .ready()
2945 .await
2946 .map_err(|e| {
2947 tonic::Status::unknown(
2948 format!("Service was not ready: {}", e.into()),
2949 )
2950 })?;
2951 let codec = tonic_prost::ProstCodec::default();
2952 let path = http::uri::PathAndQuery::from_static(
2953 "/hummock.HummockManagerService/SplitCompactionGroup",
2954 );
2955 let mut req = request.into_request();
2956 req.extensions_mut()
2957 .insert(
2958 GrpcMethod::new(
2959 "hummock.HummockManagerService",
2960 "SplitCompactionGroup",
2961 ),
2962 );
2963 self.inner.unary(req, path, codec).await
2964 }
2965 pub async fn rise_ctl_list_compaction_status(
2966 &mut self,
2967 request: impl tonic::IntoRequest<super::RiseCtlListCompactionStatusRequest>,
2968 ) -> std::result::Result<
2969 tonic::Response<super::RiseCtlListCompactionStatusResponse>,
2970 tonic::Status,
2971 > {
2972 self.inner
2973 .ready()
2974 .await
2975 .map_err(|e| {
2976 tonic::Status::unknown(
2977 format!("Service was not ready: {}", e.into()),
2978 )
2979 })?;
2980 let codec = tonic_prost::ProstCodec::default();
2981 let path = http::uri::PathAndQuery::from_static(
2982 "/hummock.HummockManagerService/RiseCtlListCompactionStatus",
2983 );
2984 let mut req = request.into_request();
2985 req.extensions_mut()
2986 .insert(
2987 GrpcMethod::new(
2988 "hummock.HummockManagerService",
2989 "RiseCtlListCompactionStatus",
2990 ),
2991 );
2992 self.inner.unary(req, path, codec).await
2993 }
2994 pub async fn subscribe_compaction_event(
2995 &mut self,
2996 request: impl tonic::IntoStreamingRequest<
2997 Message = super::SubscribeCompactionEventRequest,
2998 >,
2999 ) -> std::result::Result<
3000 tonic::Response<
3001 tonic::codec::Streaming<super::SubscribeCompactionEventResponse>,
3002 >,
3003 tonic::Status,
3004 > {
3005 self.inner
3006 .ready()
3007 .await
3008 .map_err(|e| {
3009 tonic::Status::unknown(
3010 format!("Service was not ready: {}", e.into()),
3011 )
3012 })?;
3013 let codec = tonic_prost::ProstCodec::default();
3014 let path = http::uri::PathAndQuery::from_static(
3015 "/hummock.HummockManagerService/SubscribeCompactionEvent",
3016 );
3017 let mut req = request.into_streaming_request();
3018 req.extensions_mut()
3019 .insert(
3020 GrpcMethod::new(
3021 "hummock.HummockManagerService",
3022 "SubscribeCompactionEvent",
3023 ),
3024 );
3025 self.inner.streaming(req, path, codec).await
3026 }
3027 pub async fn report_compaction_task(
3028 &mut self,
3029 request: impl tonic::IntoRequest<super::ReportCompactionTaskRequest>,
3030 ) -> std::result::Result<
3031 tonic::Response<super::ReportCompactionTaskResponse>,
3032 tonic::Status,
3033 > {
3034 self.inner
3035 .ready()
3036 .await
3037 .map_err(|e| {
3038 tonic::Status::unknown(
3039 format!("Service was not ready: {}", e.into()),
3040 )
3041 })?;
3042 let codec = tonic_prost::ProstCodec::default();
3043 let path = http::uri::PathAndQuery::from_static(
3044 "/hummock.HummockManagerService/ReportCompactionTask",
3045 );
3046 let mut req = request.into_request();
3047 req.extensions_mut()
3048 .insert(
3049 GrpcMethod::new(
3050 "hummock.HummockManagerService",
3051 "ReportCompactionTask",
3052 ),
3053 );
3054 self.inner.unary(req, path, codec).await
3055 }
3056 pub async fn list_branched_object(
3057 &mut self,
3058 request: impl tonic::IntoRequest<super::ListBranchedObjectRequest>,
3059 ) -> std::result::Result<
3060 tonic::Response<super::ListBranchedObjectResponse>,
3061 tonic::Status,
3062 > {
3063 self.inner
3064 .ready()
3065 .await
3066 .map_err(|e| {
3067 tonic::Status::unknown(
3068 format!("Service was not ready: {}", e.into()),
3069 )
3070 })?;
3071 let codec = tonic_prost::ProstCodec::default();
3072 let path = http::uri::PathAndQuery::from_static(
3073 "/hummock.HummockManagerService/ListBranchedObject",
3074 );
3075 let mut req = request.into_request();
3076 req.extensions_mut()
3077 .insert(
3078 GrpcMethod::new(
3079 "hummock.HummockManagerService",
3080 "ListBranchedObject",
3081 ),
3082 );
3083 self.inner.unary(req, path, codec).await
3084 }
3085 pub async fn list_active_write_limit(
3086 &mut self,
3087 request: impl tonic::IntoRequest<super::ListActiveWriteLimitRequest>,
3088 ) -> std::result::Result<
3089 tonic::Response<super::ListActiveWriteLimitResponse>,
3090 tonic::Status,
3091 > {
3092 self.inner
3093 .ready()
3094 .await
3095 .map_err(|e| {
3096 tonic::Status::unknown(
3097 format!("Service was not ready: {}", e.into()),
3098 )
3099 })?;
3100 let codec = tonic_prost::ProstCodec::default();
3101 let path = http::uri::PathAndQuery::from_static(
3102 "/hummock.HummockManagerService/ListActiveWriteLimit",
3103 );
3104 let mut req = request.into_request();
3105 req.extensions_mut()
3106 .insert(
3107 GrpcMethod::new(
3108 "hummock.HummockManagerService",
3109 "ListActiveWriteLimit",
3110 ),
3111 );
3112 self.inner.unary(req, path, codec).await
3113 }
3114 pub async fn list_hummock_meta_config(
3115 &mut self,
3116 request: impl tonic::IntoRequest<super::ListHummockMetaConfigRequest>,
3117 ) -> std::result::Result<
3118 tonic::Response<super::ListHummockMetaConfigResponse>,
3119 tonic::Status,
3120 > {
3121 self.inner
3122 .ready()
3123 .await
3124 .map_err(|e| {
3125 tonic::Status::unknown(
3126 format!("Service was not ready: {}", e.into()),
3127 )
3128 })?;
3129 let codec = tonic_prost::ProstCodec::default();
3130 let path = http::uri::PathAndQuery::from_static(
3131 "/hummock.HummockManagerService/ListHummockMetaConfig",
3132 );
3133 let mut req = request.into_request();
3134 req.extensions_mut()
3135 .insert(
3136 GrpcMethod::new(
3137 "hummock.HummockManagerService",
3138 "ListHummockMetaConfig",
3139 ),
3140 );
3141 self.inner.unary(req, path, codec).await
3142 }
3143 pub async fn get_compaction_score(
3144 &mut self,
3145 request: impl tonic::IntoRequest<super::GetCompactionScoreRequest>,
3146 ) -> std::result::Result<
3147 tonic::Response<super::GetCompactionScoreResponse>,
3148 tonic::Status,
3149 > {
3150 self.inner
3151 .ready()
3152 .await
3153 .map_err(|e| {
3154 tonic::Status::unknown(
3155 format!("Service was not ready: {}", e.into()),
3156 )
3157 })?;
3158 let codec = tonic_prost::ProstCodec::default();
3159 let path = http::uri::PathAndQuery::from_static(
3160 "/hummock.HummockManagerService/GetCompactionScore",
3161 );
3162 let mut req = request.into_request();
3163 req.extensions_mut()
3164 .insert(
3165 GrpcMethod::new(
3166 "hummock.HummockManagerService",
3167 "GetCompactionScore",
3168 ),
3169 );
3170 self.inner.unary(req, path, codec).await
3171 }
3172 pub async fn list_compact_task_assignment(
3173 &mut self,
3174 request: impl tonic::IntoRequest<super::ListCompactTaskAssignmentRequest>,
3175 ) -> std::result::Result<
3176 tonic::Response<super::ListCompactTaskAssignmentResponse>,
3177 tonic::Status,
3178 > {
3179 self.inner
3180 .ready()
3181 .await
3182 .map_err(|e| {
3183 tonic::Status::unknown(
3184 format!("Service was not ready: {}", e.into()),
3185 )
3186 })?;
3187 let codec = tonic_prost::ProstCodec::default();
3188 let path = http::uri::PathAndQuery::from_static(
3189 "/hummock.HummockManagerService/ListCompactTaskAssignment",
3190 );
3191 let mut req = request.into_request();
3192 req.extensions_mut()
3193 .insert(
3194 GrpcMethod::new(
3195 "hummock.HummockManagerService",
3196 "ListCompactTaskAssignment",
3197 ),
3198 );
3199 self.inner.unary(req, path, codec).await
3200 }
3201 pub async fn list_compact_task_progress(
3202 &mut self,
3203 request: impl tonic::IntoRequest<super::ListCompactTaskProgressRequest>,
3204 ) -> std::result::Result<
3205 tonic::Response<super::ListCompactTaskProgressResponse>,
3206 tonic::Status,
3207 > {
3208 self.inner
3209 .ready()
3210 .await
3211 .map_err(|e| {
3212 tonic::Status::unknown(
3213 format!("Service was not ready: {}", e.into()),
3214 )
3215 })?;
3216 let codec = tonic_prost::ProstCodec::default();
3217 let path = http::uri::PathAndQuery::from_static(
3218 "/hummock.HummockManagerService/ListCompactTaskProgress",
3219 );
3220 let mut req = request.into_request();
3221 req.extensions_mut()
3222 .insert(
3223 GrpcMethod::new(
3224 "hummock.HummockManagerService",
3225 "ListCompactTaskProgress",
3226 ),
3227 );
3228 self.inner.unary(req, path, codec).await
3229 }
3230 pub async fn cancel_compact_task(
3231 &mut self,
3232 request: impl tonic::IntoRequest<super::CancelCompactTaskRequest>,
3233 ) -> std::result::Result<
3234 tonic::Response<super::CancelCompactTaskResponse>,
3235 tonic::Status,
3236 > {
3237 self.inner
3238 .ready()
3239 .await
3240 .map_err(|e| {
3241 tonic::Status::unknown(
3242 format!("Service was not ready: {}", e.into()),
3243 )
3244 })?;
3245 let codec = tonic_prost::ProstCodec::default();
3246 let path = http::uri::PathAndQuery::from_static(
3247 "/hummock.HummockManagerService/CancelCompactTask",
3248 );
3249 let mut req = request.into_request();
3250 req.extensions_mut()
3251 .insert(
3252 GrpcMethod::new("hummock.HummockManagerService", "CancelCompactTask"),
3253 );
3254 self.inner.unary(req, path, codec).await
3255 }
3256 pub async fn get_version_by_epoch(
3257 &mut self,
3258 request: impl tonic::IntoRequest<super::GetVersionByEpochRequest>,
3259 ) -> std::result::Result<
3260 tonic::Response<super::GetVersionByEpochResponse>,
3261 tonic::Status,
3262 > {
3263 self.inner
3264 .ready()
3265 .await
3266 .map_err(|e| {
3267 tonic::Status::unknown(
3268 format!("Service was not ready: {}", e.into()),
3269 )
3270 })?;
3271 let codec = tonic_prost::ProstCodec::default();
3272 let path = http::uri::PathAndQuery::from_static(
3273 "/hummock.HummockManagerService/GetVersionByEpoch",
3274 );
3275 let mut req = request.into_request();
3276 req.extensions_mut()
3277 .insert(
3278 GrpcMethod::new("hummock.HummockManagerService", "GetVersionByEpoch"),
3279 );
3280 self.inner.unary(req, path, codec).await
3281 }
3282 pub async fn merge_compaction_group(
3283 &mut self,
3284 request: impl tonic::IntoRequest<super::MergeCompactionGroupRequest>,
3285 ) -> std::result::Result<
3286 tonic::Response<super::MergeCompactionGroupResponse>,
3287 tonic::Status,
3288 > {
3289 self.inner
3290 .ready()
3291 .await
3292 .map_err(|e| {
3293 tonic::Status::unknown(
3294 format!("Service was not ready: {}", e.into()),
3295 )
3296 })?;
3297 let codec = tonic_prost::ProstCodec::default();
3298 let path = http::uri::PathAndQuery::from_static(
3299 "/hummock.HummockManagerService/MergeCompactionGroup",
3300 );
3301 let mut req = request.into_request();
3302 req.extensions_mut()
3303 .insert(
3304 GrpcMethod::new(
3305 "hummock.HummockManagerService",
3306 "MergeCompactionGroup",
3307 ),
3308 );
3309 self.inner.unary(req, path, codec).await
3310 }
3311 pub async fn get_table_change_logs(
3312 &mut self,
3313 request: impl tonic::IntoRequest<super::GetTableChangeLogsRequest>,
3314 ) -> std::result::Result<
3315 tonic::Response<super::GetTableChangeLogsResponse>,
3316 tonic::Status,
3317 > {
3318 self.inner
3319 .ready()
3320 .await
3321 .map_err(|e| {
3322 tonic::Status::unknown(
3323 format!("Service was not ready: {}", e.into()),
3324 )
3325 })?;
3326 let codec = tonic_prost::ProstCodec::default();
3327 let path = http::uri::PathAndQuery::from_static(
3328 "/hummock.HummockManagerService/GetTableChangeLogs",
3329 );
3330 let mut req = request.into_request();
3331 req.extensions_mut()
3332 .insert(
3333 GrpcMethod::new(
3334 "hummock.HummockManagerService",
3335 "GetTableChangeLogs",
3336 ),
3337 );
3338 self.inner.unary(req, path, codec).await
3339 }
3340 pub async fn subscribe_iceberg_compaction_event(
3342 &mut self,
3343 request: impl tonic::IntoStreamingRequest<
3344 Message = super::super::iceberg_compaction::SubscribeIcebergCompactionEventRequest,
3345 >,
3346 ) -> std::result::Result<
3347 tonic::Response<
3348 tonic::codec::Streaming<
3349 super::super::iceberg_compaction::SubscribeIcebergCompactionEventResponse,
3350 >,
3351 >,
3352 tonic::Status,
3353 > {
3354 self.inner
3355 .ready()
3356 .await
3357 .map_err(|e| {
3358 tonic::Status::unknown(
3359 format!("Service was not ready: {}", e.into()),
3360 )
3361 })?;
3362 let codec = tonic_prost::ProstCodec::default();
3363 let path = http::uri::PathAndQuery::from_static(
3364 "/hummock.HummockManagerService/SubscribeIcebergCompactionEvent",
3365 );
3366 let mut req = request.into_streaming_request();
3367 req.extensions_mut()
3368 .insert(
3369 GrpcMethod::new(
3370 "hummock.HummockManagerService",
3371 "SubscribeIcebergCompactionEvent",
3372 ),
3373 );
3374 self.inner.streaming(req, path, codec).await
3375 }
3376 }
3377}
3378pub mod hummock_manager_service_server {
3380 #![allow(
3381 unused_variables,
3382 dead_code,
3383 missing_docs,
3384 clippy::wildcard_imports,
3385 clippy::let_unit_value,
3386 )]
3387 use tonic::codegen::*;
3388 #[async_trait]
3390 pub trait HummockManagerService: std::marker::Send + std::marker::Sync + 'static {
3391 async fn unpin_version_before(
3392 &self,
3393 request: tonic::Request<super::UnpinVersionBeforeRequest>,
3394 ) -> std::result::Result<
3395 tonic::Response<super::UnpinVersionBeforeResponse>,
3396 tonic::Status,
3397 >;
3398 async fn get_current_version(
3399 &self,
3400 request: tonic::Request<super::GetCurrentVersionRequest>,
3401 ) -> std::result::Result<
3402 tonic::Response<super::GetCurrentVersionResponse>,
3403 tonic::Status,
3404 >;
3405 async fn list_version_deltas(
3406 &self,
3407 request: tonic::Request<super::ListVersionDeltasRequest>,
3408 ) -> std::result::Result<
3409 tonic::Response<super::ListVersionDeltasResponse>,
3410 tonic::Status,
3411 >;
3412 async fn replay_version_delta(
3413 &self,
3414 request: tonic::Request<super::ReplayVersionDeltaRequest>,
3415 ) -> std::result::Result<
3416 tonic::Response<super::ReplayVersionDeltaResponse>,
3417 tonic::Status,
3418 >;
3419 async fn get_assigned_compact_task_num(
3420 &self,
3421 request: tonic::Request<super::GetAssignedCompactTaskNumRequest>,
3422 ) -> std::result::Result<
3423 tonic::Response<super::GetAssignedCompactTaskNumResponse>,
3424 tonic::Status,
3425 >;
3426 async fn trigger_compaction_deterministic(
3427 &self,
3428 request: tonic::Request<super::TriggerCompactionDeterministicRequest>,
3429 ) -> std::result::Result<
3430 tonic::Response<super::TriggerCompactionDeterministicResponse>,
3431 tonic::Status,
3432 >;
3433 async fn disable_commit_epoch(
3434 &self,
3435 request: tonic::Request<super::DisableCommitEpochRequest>,
3436 ) -> std::result::Result<
3437 tonic::Response<super::DisableCommitEpochResponse>,
3438 tonic::Status,
3439 >;
3440 async fn get_new_object_ids(
3441 &self,
3442 request: tonic::Request<super::GetNewObjectIdsRequest>,
3443 ) -> std::result::Result<
3444 tonic::Response<super::GetNewObjectIdsResponse>,
3445 tonic::Status,
3446 >;
3447 async fn trigger_manual_compaction(
3448 &self,
3449 request: tonic::Request<super::TriggerManualCompactionRequest>,
3450 ) -> std::result::Result<
3451 tonic::Response<super::TriggerManualCompactionResponse>,
3452 tonic::Status,
3453 >;
3454 async fn trigger_full_gc(
3455 &self,
3456 request: tonic::Request<super::TriggerFullGcRequest>,
3457 ) -> std::result::Result<
3458 tonic::Response<super::TriggerFullGcResponse>,
3459 tonic::Status,
3460 >;
3461 async fn rise_ctl_get_pinned_versions_summary(
3462 &self,
3463 request: tonic::Request<super::RiseCtlGetPinnedVersionsSummaryRequest>,
3464 ) -> std::result::Result<
3465 tonic::Response<super::RiseCtlGetPinnedVersionsSummaryResponse>,
3466 tonic::Status,
3467 >;
3468 async fn rise_ctl_list_compaction_group(
3469 &self,
3470 request: tonic::Request<super::RiseCtlListCompactionGroupRequest>,
3471 ) -> std::result::Result<
3472 tonic::Response<super::RiseCtlListCompactionGroupResponse>,
3473 tonic::Status,
3474 >;
3475 async fn rise_ctl_update_compaction_config(
3476 &self,
3477 request: tonic::Request<super::RiseCtlUpdateCompactionConfigRequest>,
3478 ) -> std::result::Result<
3479 tonic::Response<super::RiseCtlUpdateCompactionConfigResponse>,
3480 tonic::Status,
3481 >;
3482 async fn rise_ctl_pause_version_checkpoint(
3483 &self,
3484 request: tonic::Request<super::RiseCtlPauseVersionCheckpointRequest>,
3485 ) -> std::result::Result<
3486 tonic::Response<super::RiseCtlPauseVersionCheckpointResponse>,
3487 tonic::Status,
3488 >;
3489 async fn rise_ctl_resume_version_checkpoint(
3490 &self,
3491 request: tonic::Request<super::RiseCtlResumeVersionCheckpointRequest>,
3492 ) -> std::result::Result<
3493 tonic::Response<super::RiseCtlResumeVersionCheckpointResponse>,
3494 tonic::Status,
3495 >;
3496 async fn rise_ctl_get_checkpoint_version(
3497 &self,
3498 request: tonic::Request<super::RiseCtlGetCheckpointVersionRequest>,
3499 ) -> std::result::Result<
3500 tonic::Response<super::RiseCtlGetCheckpointVersionResponse>,
3501 tonic::Status,
3502 >;
3503 async fn rise_ctl_rebuild_table_stats(
3504 &self,
3505 request: tonic::Request<super::RiseCtlRebuildTableStatsRequest>,
3506 ) -> std::result::Result<
3507 tonic::Response<super::RiseCtlRebuildTableStatsResponse>,
3508 tonic::Status,
3509 >;
3510 async fn init_metadata_for_replay(
3511 &self,
3512 request: tonic::Request<super::InitMetadataForReplayRequest>,
3513 ) -> std::result::Result<
3514 tonic::Response<super::InitMetadataForReplayResponse>,
3515 tonic::Status,
3516 >;
3517 async fn pin_version(
3518 &self,
3519 request: tonic::Request<super::PinVersionRequest>,
3520 ) -> std::result::Result<
3521 tonic::Response<super::PinVersionResponse>,
3522 tonic::Status,
3523 >;
3524 async fn split_compaction_group(
3525 &self,
3526 request: tonic::Request<super::SplitCompactionGroupRequest>,
3527 ) -> std::result::Result<
3528 tonic::Response<super::SplitCompactionGroupResponse>,
3529 tonic::Status,
3530 >;
3531 async fn rise_ctl_list_compaction_status(
3532 &self,
3533 request: tonic::Request<super::RiseCtlListCompactionStatusRequest>,
3534 ) -> std::result::Result<
3535 tonic::Response<super::RiseCtlListCompactionStatusResponse>,
3536 tonic::Status,
3537 >;
3538 type SubscribeCompactionEventStream: tonic::codegen::tokio_stream::Stream<
3540 Item = std::result::Result<
3541 super::SubscribeCompactionEventResponse,
3542 tonic::Status,
3543 >,
3544 >
3545 + std::marker::Send
3546 + 'static;
3547 async fn subscribe_compaction_event(
3548 &self,
3549 request: tonic::Request<
3550 tonic::Streaming<super::SubscribeCompactionEventRequest>,
3551 >,
3552 ) -> std::result::Result<
3553 tonic::Response<Self::SubscribeCompactionEventStream>,
3554 tonic::Status,
3555 >;
3556 async fn report_compaction_task(
3557 &self,
3558 request: tonic::Request<super::ReportCompactionTaskRequest>,
3559 ) -> std::result::Result<
3560 tonic::Response<super::ReportCompactionTaskResponse>,
3561 tonic::Status,
3562 >;
3563 async fn list_branched_object(
3564 &self,
3565 request: tonic::Request<super::ListBranchedObjectRequest>,
3566 ) -> std::result::Result<
3567 tonic::Response<super::ListBranchedObjectResponse>,
3568 tonic::Status,
3569 >;
3570 async fn list_active_write_limit(
3571 &self,
3572 request: tonic::Request<super::ListActiveWriteLimitRequest>,
3573 ) -> std::result::Result<
3574 tonic::Response<super::ListActiveWriteLimitResponse>,
3575 tonic::Status,
3576 >;
3577 async fn list_hummock_meta_config(
3578 &self,
3579 request: tonic::Request<super::ListHummockMetaConfigRequest>,
3580 ) -> std::result::Result<
3581 tonic::Response<super::ListHummockMetaConfigResponse>,
3582 tonic::Status,
3583 >;
3584 async fn get_compaction_score(
3585 &self,
3586 request: tonic::Request<super::GetCompactionScoreRequest>,
3587 ) -> std::result::Result<
3588 tonic::Response<super::GetCompactionScoreResponse>,
3589 tonic::Status,
3590 >;
3591 async fn list_compact_task_assignment(
3592 &self,
3593 request: tonic::Request<super::ListCompactTaskAssignmentRequest>,
3594 ) -> std::result::Result<
3595 tonic::Response<super::ListCompactTaskAssignmentResponse>,
3596 tonic::Status,
3597 >;
3598 async fn list_compact_task_progress(
3599 &self,
3600 request: tonic::Request<super::ListCompactTaskProgressRequest>,
3601 ) -> std::result::Result<
3602 tonic::Response<super::ListCompactTaskProgressResponse>,
3603 tonic::Status,
3604 >;
3605 async fn cancel_compact_task(
3606 &self,
3607 request: tonic::Request<super::CancelCompactTaskRequest>,
3608 ) -> std::result::Result<
3609 tonic::Response<super::CancelCompactTaskResponse>,
3610 tonic::Status,
3611 >;
3612 async fn get_version_by_epoch(
3613 &self,
3614 request: tonic::Request<super::GetVersionByEpochRequest>,
3615 ) -> std::result::Result<
3616 tonic::Response<super::GetVersionByEpochResponse>,
3617 tonic::Status,
3618 >;
3619 async fn merge_compaction_group(
3620 &self,
3621 request: tonic::Request<super::MergeCompactionGroupRequest>,
3622 ) -> std::result::Result<
3623 tonic::Response<super::MergeCompactionGroupResponse>,
3624 tonic::Status,
3625 >;
3626 async fn get_table_change_logs(
3627 &self,
3628 request: tonic::Request<super::GetTableChangeLogsRequest>,
3629 ) -> std::result::Result<
3630 tonic::Response<super::GetTableChangeLogsResponse>,
3631 tonic::Status,
3632 >;
3633 type SubscribeIcebergCompactionEventStream: tonic::codegen::tokio_stream::Stream<
3635 Item = std::result::Result<
3636 super::super::iceberg_compaction::SubscribeIcebergCompactionEventResponse,
3637 tonic::Status,
3638 >,
3639 >
3640 + std::marker::Send
3641 + 'static;
3642 async fn subscribe_iceberg_compaction_event(
3644 &self,
3645 request: tonic::Request<
3646 tonic::Streaming<
3647 super::super::iceberg_compaction::SubscribeIcebergCompactionEventRequest,
3648 >,
3649 >,
3650 ) -> std::result::Result<
3651 tonic::Response<Self::SubscribeIcebergCompactionEventStream>,
3652 tonic::Status,
3653 >;
3654 }
3655 #[derive(Debug)]
3656 pub struct HummockManagerServiceServer<T> {
3657 inner: Arc<T>,
3658 accept_compression_encodings: EnabledCompressionEncodings,
3659 send_compression_encodings: EnabledCompressionEncodings,
3660 max_decoding_message_size: Option<usize>,
3661 max_encoding_message_size: Option<usize>,
3662 }
3663 impl<T> HummockManagerServiceServer<T> {
3664 pub fn new(inner: T) -> Self {
3665 Self::from_arc(Arc::new(inner))
3666 }
3667 pub fn from_arc(inner: Arc<T>) -> Self {
3668 Self {
3669 inner,
3670 accept_compression_encodings: Default::default(),
3671 send_compression_encodings: Default::default(),
3672 max_decoding_message_size: None,
3673 max_encoding_message_size: None,
3674 }
3675 }
3676 pub fn with_interceptor<F>(
3677 inner: T,
3678 interceptor: F,
3679 ) -> InterceptedService<Self, F>
3680 where
3681 F: tonic::service::Interceptor,
3682 {
3683 InterceptedService::new(Self::new(inner), interceptor)
3684 }
3685 #[must_use]
3687 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3688 self.accept_compression_encodings.enable(encoding);
3689 self
3690 }
3691 #[must_use]
3693 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3694 self.send_compression_encodings.enable(encoding);
3695 self
3696 }
3697 #[must_use]
3701 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3702 self.max_decoding_message_size = Some(limit);
3703 self
3704 }
3705 #[must_use]
3709 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3710 self.max_encoding_message_size = Some(limit);
3711 self
3712 }
3713 }
3714 impl<T, B> tonic::codegen::Service<http::Request<B>>
3715 for HummockManagerServiceServer<T>
3716 where
3717 T: HummockManagerService,
3718 B: Body + std::marker::Send + 'static,
3719 B::Error: Into<StdError> + std::marker::Send + 'static,
3720 {
3721 type Response = http::Response<tonic::body::Body>;
3722 type Error = std::convert::Infallible;
3723 type Future = BoxFuture<Self::Response, Self::Error>;
3724 fn poll_ready(
3725 &mut self,
3726 _cx: &mut Context<'_>,
3727 ) -> Poll<std::result::Result<(), Self::Error>> {
3728 Poll::Ready(Ok(()))
3729 }
3730 fn call(&mut self, req: http::Request<B>) -> Self::Future {
3731 match req.uri().path() {
3732 "/hummock.HummockManagerService/UnpinVersionBefore" => {
3733 #[allow(non_camel_case_types)]
3734 struct UnpinVersionBeforeSvc<T: HummockManagerService>(pub Arc<T>);
3735 impl<
3736 T: HummockManagerService,
3737 > tonic::server::UnaryService<super::UnpinVersionBeforeRequest>
3738 for UnpinVersionBeforeSvc<T> {
3739 type Response = super::UnpinVersionBeforeResponse;
3740 type Future = BoxFuture<
3741 tonic::Response<Self::Response>,
3742 tonic::Status,
3743 >;
3744 fn call(
3745 &mut self,
3746 request: tonic::Request<super::UnpinVersionBeforeRequest>,
3747 ) -> Self::Future {
3748 let inner = Arc::clone(&self.0);
3749 let fut = async move {
3750 <T as HummockManagerService>::unpin_version_before(
3751 &inner,
3752 request,
3753 )
3754 .await
3755 };
3756 Box::pin(fut)
3757 }
3758 }
3759 let accept_compression_encodings = self.accept_compression_encodings;
3760 let send_compression_encodings = self.send_compression_encodings;
3761 let max_decoding_message_size = self.max_decoding_message_size;
3762 let max_encoding_message_size = self.max_encoding_message_size;
3763 let inner = self.inner.clone();
3764 let fut = async move {
3765 let method = UnpinVersionBeforeSvc(inner);
3766 let codec = tonic_prost::ProstCodec::default();
3767 let mut grpc = tonic::server::Grpc::new(codec)
3768 .apply_compression_config(
3769 accept_compression_encodings,
3770 send_compression_encodings,
3771 )
3772 .apply_max_message_size_config(
3773 max_decoding_message_size,
3774 max_encoding_message_size,
3775 );
3776 let res = grpc.unary(method, req).await;
3777 Ok(res)
3778 };
3779 Box::pin(fut)
3780 }
3781 "/hummock.HummockManagerService/GetCurrentVersion" => {
3782 #[allow(non_camel_case_types)]
3783 struct GetCurrentVersionSvc<T: HummockManagerService>(pub Arc<T>);
3784 impl<
3785 T: HummockManagerService,
3786 > tonic::server::UnaryService<super::GetCurrentVersionRequest>
3787 for GetCurrentVersionSvc<T> {
3788 type Response = super::GetCurrentVersionResponse;
3789 type Future = BoxFuture<
3790 tonic::Response<Self::Response>,
3791 tonic::Status,
3792 >;
3793 fn call(
3794 &mut self,
3795 request: tonic::Request<super::GetCurrentVersionRequest>,
3796 ) -> Self::Future {
3797 let inner = Arc::clone(&self.0);
3798 let fut = async move {
3799 <T as HummockManagerService>::get_current_version(
3800 &inner,
3801 request,
3802 )
3803 .await
3804 };
3805 Box::pin(fut)
3806 }
3807 }
3808 let accept_compression_encodings = self.accept_compression_encodings;
3809 let send_compression_encodings = self.send_compression_encodings;
3810 let max_decoding_message_size = self.max_decoding_message_size;
3811 let max_encoding_message_size = self.max_encoding_message_size;
3812 let inner = self.inner.clone();
3813 let fut = async move {
3814 let method = GetCurrentVersionSvc(inner);
3815 let codec = tonic_prost::ProstCodec::default();
3816 let mut grpc = tonic::server::Grpc::new(codec)
3817 .apply_compression_config(
3818 accept_compression_encodings,
3819 send_compression_encodings,
3820 )
3821 .apply_max_message_size_config(
3822 max_decoding_message_size,
3823 max_encoding_message_size,
3824 );
3825 let res = grpc.unary(method, req).await;
3826 Ok(res)
3827 };
3828 Box::pin(fut)
3829 }
3830 "/hummock.HummockManagerService/ListVersionDeltas" => {
3831 #[allow(non_camel_case_types)]
3832 struct ListVersionDeltasSvc<T: HummockManagerService>(pub Arc<T>);
3833 impl<
3834 T: HummockManagerService,
3835 > tonic::server::UnaryService<super::ListVersionDeltasRequest>
3836 for ListVersionDeltasSvc<T> {
3837 type Response = super::ListVersionDeltasResponse;
3838 type Future = BoxFuture<
3839 tonic::Response<Self::Response>,
3840 tonic::Status,
3841 >;
3842 fn call(
3843 &mut self,
3844 request: tonic::Request<super::ListVersionDeltasRequest>,
3845 ) -> Self::Future {
3846 let inner = Arc::clone(&self.0);
3847 let fut = async move {
3848 <T as HummockManagerService>::list_version_deltas(
3849 &inner,
3850 request,
3851 )
3852 .await
3853 };
3854 Box::pin(fut)
3855 }
3856 }
3857 let accept_compression_encodings = self.accept_compression_encodings;
3858 let send_compression_encodings = self.send_compression_encodings;
3859 let max_decoding_message_size = self.max_decoding_message_size;
3860 let max_encoding_message_size = self.max_encoding_message_size;
3861 let inner = self.inner.clone();
3862 let fut = async move {
3863 let method = ListVersionDeltasSvc(inner);
3864 let codec = tonic_prost::ProstCodec::default();
3865 let mut grpc = tonic::server::Grpc::new(codec)
3866 .apply_compression_config(
3867 accept_compression_encodings,
3868 send_compression_encodings,
3869 )
3870 .apply_max_message_size_config(
3871 max_decoding_message_size,
3872 max_encoding_message_size,
3873 );
3874 let res = grpc.unary(method, req).await;
3875 Ok(res)
3876 };
3877 Box::pin(fut)
3878 }
3879 "/hummock.HummockManagerService/ReplayVersionDelta" => {
3880 #[allow(non_camel_case_types)]
3881 struct ReplayVersionDeltaSvc<T: HummockManagerService>(pub Arc<T>);
3882 impl<
3883 T: HummockManagerService,
3884 > tonic::server::UnaryService<super::ReplayVersionDeltaRequest>
3885 for ReplayVersionDeltaSvc<T> {
3886 type Response = super::ReplayVersionDeltaResponse;
3887 type Future = BoxFuture<
3888 tonic::Response<Self::Response>,
3889 tonic::Status,
3890 >;
3891 fn call(
3892 &mut self,
3893 request: tonic::Request<super::ReplayVersionDeltaRequest>,
3894 ) -> Self::Future {
3895 let inner = Arc::clone(&self.0);
3896 let fut = async move {
3897 <T as HummockManagerService>::replay_version_delta(
3898 &inner,
3899 request,
3900 )
3901 .await
3902 };
3903 Box::pin(fut)
3904 }
3905 }
3906 let accept_compression_encodings = self.accept_compression_encodings;
3907 let send_compression_encodings = self.send_compression_encodings;
3908 let max_decoding_message_size = self.max_decoding_message_size;
3909 let max_encoding_message_size = self.max_encoding_message_size;
3910 let inner = self.inner.clone();
3911 let fut = async move {
3912 let method = ReplayVersionDeltaSvc(inner);
3913 let codec = tonic_prost::ProstCodec::default();
3914 let mut grpc = tonic::server::Grpc::new(codec)
3915 .apply_compression_config(
3916 accept_compression_encodings,
3917 send_compression_encodings,
3918 )
3919 .apply_max_message_size_config(
3920 max_decoding_message_size,
3921 max_encoding_message_size,
3922 );
3923 let res = grpc.unary(method, req).await;
3924 Ok(res)
3925 };
3926 Box::pin(fut)
3927 }
3928 "/hummock.HummockManagerService/GetAssignedCompactTaskNum" => {
3929 #[allow(non_camel_case_types)]
3930 struct GetAssignedCompactTaskNumSvc<T: HummockManagerService>(
3931 pub Arc<T>,
3932 );
3933 impl<
3934 T: HummockManagerService,
3935 > tonic::server::UnaryService<
3936 super::GetAssignedCompactTaskNumRequest,
3937 > for GetAssignedCompactTaskNumSvc<T> {
3938 type Response = super::GetAssignedCompactTaskNumResponse;
3939 type Future = BoxFuture<
3940 tonic::Response<Self::Response>,
3941 tonic::Status,
3942 >;
3943 fn call(
3944 &mut self,
3945 request: tonic::Request<
3946 super::GetAssignedCompactTaskNumRequest,
3947 >,
3948 ) -> Self::Future {
3949 let inner = Arc::clone(&self.0);
3950 let fut = async move {
3951 <T as HummockManagerService>::get_assigned_compact_task_num(
3952 &inner,
3953 request,
3954 )
3955 .await
3956 };
3957 Box::pin(fut)
3958 }
3959 }
3960 let accept_compression_encodings = self.accept_compression_encodings;
3961 let send_compression_encodings = self.send_compression_encodings;
3962 let max_decoding_message_size = self.max_decoding_message_size;
3963 let max_encoding_message_size = self.max_encoding_message_size;
3964 let inner = self.inner.clone();
3965 let fut = async move {
3966 let method = GetAssignedCompactTaskNumSvc(inner);
3967 let codec = tonic_prost::ProstCodec::default();
3968 let mut grpc = tonic::server::Grpc::new(codec)
3969 .apply_compression_config(
3970 accept_compression_encodings,
3971 send_compression_encodings,
3972 )
3973 .apply_max_message_size_config(
3974 max_decoding_message_size,
3975 max_encoding_message_size,
3976 );
3977 let res = grpc.unary(method, req).await;
3978 Ok(res)
3979 };
3980 Box::pin(fut)
3981 }
3982 "/hummock.HummockManagerService/TriggerCompactionDeterministic" => {
3983 #[allow(non_camel_case_types)]
3984 struct TriggerCompactionDeterministicSvc<T: HummockManagerService>(
3985 pub Arc<T>,
3986 );
3987 impl<
3988 T: HummockManagerService,
3989 > tonic::server::UnaryService<
3990 super::TriggerCompactionDeterministicRequest,
3991 > for TriggerCompactionDeterministicSvc<T> {
3992 type Response = super::TriggerCompactionDeterministicResponse;
3993 type Future = BoxFuture<
3994 tonic::Response<Self::Response>,
3995 tonic::Status,
3996 >;
3997 fn call(
3998 &mut self,
3999 request: tonic::Request<
4000 super::TriggerCompactionDeterministicRequest,
4001 >,
4002 ) -> Self::Future {
4003 let inner = Arc::clone(&self.0);
4004 let fut = async move {
4005 <T as HummockManagerService>::trigger_compaction_deterministic(
4006 &inner,
4007 request,
4008 )
4009 .await
4010 };
4011 Box::pin(fut)
4012 }
4013 }
4014 let accept_compression_encodings = self.accept_compression_encodings;
4015 let send_compression_encodings = self.send_compression_encodings;
4016 let max_decoding_message_size = self.max_decoding_message_size;
4017 let max_encoding_message_size = self.max_encoding_message_size;
4018 let inner = self.inner.clone();
4019 let fut = async move {
4020 let method = TriggerCompactionDeterministicSvc(inner);
4021 let codec = tonic_prost::ProstCodec::default();
4022 let mut grpc = tonic::server::Grpc::new(codec)
4023 .apply_compression_config(
4024 accept_compression_encodings,
4025 send_compression_encodings,
4026 )
4027 .apply_max_message_size_config(
4028 max_decoding_message_size,
4029 max_encoding_message_size,
4030 );
4031 let res = grpc.unary(method, req).await;
4032 Ok(res)
4033 };
4034 Box::pin(fut)
4035 }
4036 "/hummock.HummockManagerService/DisableCommitEpoch" => {
4037 #[allow(non_camel_case_types)]
4038 struct DisableCommitEpochSvc<T: HummockManagerService>(pub Arc<T>);
4039 impl<
4040 T: HummockManagerService,
4041 > tonic::server::UnaryService<super::DisableCommitEpochRequest>
4042 for DisableCommitEpochSvc<T> {
4043 type Response = super::DisableCommitEpochResponse;
4044 type Future = BoxFuture<
4045 tonic::Response<Self::Response>,
4046 tonic::Status,
4047 >;
4048 fn call(
4049 &mut self,
4050 request: tonic::Request<super::DisableCommitEpochRequest>,
4051 ) -> Self::Future {
4052 let inner = Arc::clone(&self.0);
4053 let fut = async move {
4054 <T as HummockManagerService>::disable_commit_epoch(
4055 &inner,
4056 request,
4057 )
4058 .await
4059 };
4060 Box::pin(fut)
4061 }
4062 }
4063 let accept_compression_encodings = self.accept_compression_encodings;
4064 let send_compression_encodings = self.send_compression_encodings;
4065 let max_decoding_message_size = self.max_decoding_message_size;
4066 let max_encoding_message_size = self.max_encoding_message_size;
4067 let inner = self.inner.clone();
4068 let fut = async move {
4069 let method = DisableCommitEpochSvc(inner);
4070 let codec = tonic_prost::ProstCodec::default();
4071 let mut grpc = tonic::server::Grpc::new(codec)
4072 .apply_compression_config(
4073 accept_compression_encodings,
4074 send_compression_encodings,
4075 )
4076 .apply_max_message_size_config(
4077 max_decoding_message_size,
4078 max_encoding_message_size,
4079 );
4080 let res = grpc.unary(method, req).await;
4081 Ok(res)
4082 };
4083 Box::pin(fut)
4084 }
4085 "/hummock.HummockManagerService/GetNewObjectIds" => {
4086 #[allow(non_camel_case_types)]
4087 struct GetNewObjectIdsSvc<T: HummockManagerService>(pub Arc<T>);
4088 impl<
4089 T: HummockManagerService,
4090 > tonic::server::UnaryService<super::GetNewObjectIdsRequest>
4091 for GetNewObjectIdsSvc<T> {
4092 type Response = super::GetNewObjectIdsResponse;
4093 type Future = BoxFuture<
4094 tonic::Response<Self::Response>,
4095 tonic::Status,
4096 >;
4097 fn call(
4098 &mut self,
4099 request: tonic::Request<super::GetNewObjectIdsRequest>,
4100 ) -> Self::Future {
4101 let inner = Arc::clone(&self.0);
4102 let fut = async move {
4103 <T as HummockManagerService>::get_new_object_ids(
4104 &inner,
4105 request,
4106 )
4107 .await
4108 };
4109 Box::pin(fut)
4110 }
4111 }
4112 let accept_compression_encodings = self.accept_compression_encodings;
4113 let send_compression_encodings = self.send_compression_encodings;
4114 let max_decoding_message_size = self.max_decoding_message_size;
4115 let max_encoding_message_size = self.max_encoding_message_size;
4116 let inner = self.inner.clone();
4117 let fut = async move {
4118 let method = GetNewObjectIdsSvc(inner);
4119 let codec = tonic_prost::ProstCodec::default();
4120 let mut grpc = tonic::server::Grpc::new(codec)
4121 .apply_compression_config(
4122 accept_compression_encodings,
4123 send_compression_encodings,
4124 )
4125 .apply_max_message_size_config(
4126 max_decoding_message_size,
4127 max_encoding_message_size,
4128 );
4129 let res = grpc.unary(method, req).await;
4130 Ok(res)
4131 };
4132 Box::pin(fut)
4133 }
4134 "/hummock.HummockManagerService/TriggerManualCompaction" => {
4135 #[allow(non_camel_case_types)]
4136 struct TriggerManualCompactionSvc<T: HummockManagerService>(
4137 pub Arc<T>,
4138 );
4139 impl<
4140 T: HummockManagerService,
4141 > tonic::server::UnaryService<super::TriggerManualCompactionRequest>
4142 for TriggerManualCompactionSvc<T> {
4143 type Response = super::TriggerManualCompactionResponse;
4144 type Future = BoxFuture<
4145 tonic::Response<Self::Response>,
4146 tonic::Status,
4147 >;
4148 fn call(
4149 &mut self,
4150 request: tonic::Request<
4151 super::TriggerManualCompactionRequest,
4152 >,
4153 ) -> Self::Future {
4154 let inner = Arc::clone(&self.0);
4155 let fut = async move {
4156 <T as HummockManagerService>::trigger_manual_compaction(
4157 &inner,
4158 request,
4159 )
4160 .await
4161 };
4162 Box::pin(fut)
4163 }
4164 }
4165 let accept_compression_encodings = self.accept_compression_encodings;
4166 let send_compression_encodings = self.send_compression_encodings;
4167 let max_decoding_message_size = self.max_decoding_message_size;
4168 let max_encoding_message_size = self.max_encoding_message_size;
4169 let inner = self.inner.clone();
4170 let fut = async move {
4171 let method = TriggerManualCompactionSvc(inner);
4172 let codec = tonic_prost::ProstCodec::default();
4173 let mut grpc = tonic::server::Grpc::new(codec)
4174 .apply_compression_config(
4175 accept_compression_encodings,
4176 send_compression_encodings,
4177 )
4178 .apply_max_message_size_config(
4179 max_decoding_message_size,
4180 max_encoding_message_size,
4181 );
4182 let res = grpc.unary(method, req).await;
4183 Ok(res)
4184 };
4185 Box::pin(fut)
4186 }
4187 "/hummock.HummockManagerService/TriggerFullGC" => {
4188 #[allow(non_camel_case_types)]
4189 struct TriggerFullGCSvc<T: HummockManagerService>(pub Arc<T>);
4190 impl<
4191 T: HummockManagerService,
4192 > tonic::server::UnaryService<super::TriggerFullGcRequest>
4193 for TriggerFullGCSvc<T> {
4194 type Response = super::TriggerFullGcResponse;
4195 type Future = BoxFuture<
4196 tonic::Response<Self::Response>,
4197 tonic::Status,
4198 >;
4199 fn call(
4200 &mut self,
4201 request: tonic::Request<super::TriggerFullGcRequest>,
4202 ) -> Self::Future {
4203 let inner = Arc::clone(&self.0);
4204 let fut = async move {
4205 <T as HummockManagerService>::trigger_full_gc(
4206 &inner,
4207 request,
4208 )
4209 .await
4210 };
4211 Box::pin(fut)
4212 }
4213 }
4214 let accept_compression_encodings = self.accept_compression_encodings;
4215 let send_compression_encodings = self.send_compression_encodings;
4216 let max_decoding_message_size = self.max_decoding_message_size;
4217 let max_encoding_message_size = self.max_encoding_message_size;
4218 let inner = self.inner.clone();
4219 let fut = async move {
4220 let method = TriggerFullGCSvc(inner);
4221 let codec = tonic_prost::ProstCodec::default();
4222 let mut grpc = tonic::server::Grpc::new(codec)
4223 .apply_compression_config(
4224 accept_compression_encodings,
4225 send_compression_encodings,
4226 )
4227 .apply_max_message_size_config(
4228 max_decoding_message_size,
4229 max_encoding_message_size,
4230 );
4231 let res = grpc.unary(method, req).await;
4232 Ok(res)
4233 };
4234 Box::pin(fut)
4235 }
4236 "/hummock.HummockManagerService/RiseCtlGetPinnedVersionsSummary" => {
4237 #[allow(non_camel_case_types)]
4238 struct RiseCtlGetPinnedVersionsSummarySvc<T: HummockManagerService>(
4239 pub Arc<T>,
4240 );
4241 impl<
4242 T: HummockManagerService,
4243 > tonic::server::UnaryService<
4244 super::RiseCtlGetPinnedVersionsSummaryRequest,
4245 > for RiseCtlGetPinnedVersionsSummarySvc<T> {
4246 type Response = super::RiseCtlGetPinnedVersionsSummaryResponse;
4247 type Future = BoxFuture<
4248 tonic::Response<Self::Response>,
4249 tonic::Status,
4250 >;
4251 fn call(
4252 &mut self,
4253 request: tonic::Request<
4254 super::RiseCtlGetPinnedVersionsSummaryRequest,
4255 >,
4256 ) -> Self::Future {
4257 let inner = Arc::clone(&self.0);
4258 let fut = async move {
4259 <T as HummockManagerService>::rise_ctl_get_pinned_versions_summary(
4260 &inner,
4261 request,
4262 )
4263 .await
4264 };
4265 Box::pin(fut)
4266 }
4267 }
4268 let accept_compression_encodings = self.accept_compression_encodings;
4269 let send_compression_encodings = self.send_compression_encodings;
4270 let max_decoding_message_size = self.max_decoding_message_size;
4271 let max_encoding_message_size = self.max_encoding_message_size;
4272 let inner = self.inner.clone();
4273 let fut = async move {
4274 let method = RiseCtlGetPinnedVersionsSummarySvc(inner);
4275 let codec = tonic_prost::ProstCodec::default();
4276 let mut grpc = tonic::server::Grpc::new(codec)
4277 .apply_compression_config(
4278 accept_compression_encodings,
4279 send_compression_encodings,
4280 )
4281 .apply_max_message_size_config(
4282 max_decoding_message_size,
4283 max_encoding_message_size,
4284 );
4285 let res = grpc.unary(method, req).await;
4286 Ok(res)
4287 };
4288 Box::pin(fut)
4289 }
4290 "/hummock.HummockManagerService/RiseCtlListCompactionGroup" => {
4291 #[allow(non_camel_case_types)]
4292 struct RiseCtlListCompactionGroupSvc<T: HummockManagerService>(
4293 pub Arc<T>,
4294 );
4295 impl<
4296 T: HummockManagerService,
4297 > tonic::server::UnaryService<
4298 super::RiseCtlListCompactionGroupRequest,
4299 > for RiseCtlListCompactionGroupSvc<T> {
4300 type Response = super::RiseCtlListCompactionGroupResponse;
4301 type Future = BoxFuture<
4302 tonic::Response<Self::Response>,
4303 tonic::Status,
4304 >;
4305 fn call(
4306 &mut self,
4307 request: tonic::Request<
4308 super::RiseCtlListCompactionGroupRequest,
4309 >,
4310 ) -> Self::Future {
4311 let inner = Arc::clone(&self.0);
4312 let fut = async move {
4313 <T as HummockManagerService>::rise_ctl_list_compaction_group(
4314 &inner,
4315 request,
4316 )
4317 .await
4318 };
4319 Box::pin(fut)
4320 }
4321 }
4322 let accept_compression_encodings = self.accept_compression_encodings;
4323 let send_compression_encodings = self.send_compression_encodings;
4324 let max_decoding_message_size = self.max_decoding_message_size;
4325 let max_encoding_message_size = self.max_encoding_message_size;
4326 let inner = self.inner.clone();
4327 let fut = async move {
4328 let method = RiseCtlListCompactionGroupSvc(inner);
4329 let codec = tonic_prost::ProstCodec::default();
4330 let mut grpc = tonic::server::Grpc::new(codec)
4331 .apply_compression_config(
4332 accept_compression_encodings,
4333 send_compression_encodings,
4334 )
4335 .apply_max_message_size_config(
4336 max_decoding_message_size,
4337 max_encoding_message_size,
4338 );
4339 let res = grpc.unary(method, req).await;
4340 Ok(res)
4341 };
4342 Box::pin(fut)
4343 }
4344 "/hummock.HummockManagerService/RiseCtlUpdateCompactionConfig" => {
4345 #[allow(non_camel_case_types)]
4346 struct RiseCtlUpdateCompactionConfigSvc<T: HummockManagerService>(
4347 pub Arc<T>,
4348 );
4349 impl<
4350 T: HummockManagerService,
4351 > tonic::server::UnaryService<
4352 super::RiseCtlUpdateCompactionConfigRequest,
4353 > for RiseCtlUpdateCompactionConfigSvc<T> {
4354 type Response = super::RiseCtlUpdateCompactionConfigResponse;
4355 type Future = BoxFuture<
4356 tonic::Response<Self::Response>,
4357 tonic::Status,
4358 >;
4359 fn call(
4360 &mut self,
4361 request: tonic::Request<
4362 super::RiseCtlUpdateCompactionConfigRequest,
4363 >,
4364 ) -> Self::Future {
4365 let inner = Arc::clone(&self.0);
4366 let fut = async move {
4367 <T as HummockManagerService>::rise_ctl_update_compaction_config(
4368 &inner,
4369 request,
4370 )
4371 .await
4372 };
4373 Box::pin(fut)
4374 }
4375 }
4376 let accept_compression_encodings = self.accept_compression_encodings;
4377 let send_compression_encodings = self.send_compression_encodings;
4378 let max_decoding_message_size = self.max_decoding_message_size;
4379 let max_encoding_message_size = self.max_encoding_message_size;
4380 let inner = self.inner.clone();
4381 let fut = async move {
4382 let method = RiseCtlUpdateCompactionConfigSvc(inner);
4383 let codec = tonic_prost::ProstCodec::default();
4384 let mut grpc = tonic::server::Grpc::new(codec)
4385 .apply_compression_config(
4386 accept_compression_encodings,
4387 send_compression_encodings,
4388 )
4389 .apply_max_message_size_config(
4390 max_decoding_message_size,
4391 max_encoding_message_size,
4392 );
4393 let res = grpc.unary(method, req).await;
4394 Ok(res)
4395 };
4396 Box::pin(fut)
4397 }
4398 "/hummock.HummockManagerService/RiseCtlPauseVersionCheckpoint" => {
4399 #[allow(non_camel_case_types)]
4400 struct RiseCtlPauseVersionCheckpointSvc<T: HummockManagerService>(
4401 pub Arc<T>,
4402 );
4403 impl<
4404 T: HummockManagerService,
4405 > tonic::server::UnaryService<
4406 super::RiseCtlPauseVersionCheckpointRequest,
4407 > for RiseCtlPauseVersionCheckpointSvc<T> {
4408 type Response = super::RiseCtlPauseVersionCheckpointResponse;
4409 type Future = BoxFuture<
4410 tonic::Response<Self::Response>,
4411 tonic::Status,
4412 >;
4413 fn call(
4414 &mut self,
4415 request: tonic::Request<
4416 super::RiseCtlPauseVersionCheckpointRequest,
4417 >,
4418 ) -> Self::Future {
4419 let inner = Arc::clone(&self.0);
4420 let fut = async move {
4421 <T as HummockManagerService>::rise_ctl_pause_version_checkpoint(
4422 &inner,
4423 request,
4424 )
4425 .await
4426 };
4427 Box::pin(fut)
4428 }
4429 }
4430 let accept_compression_encodings = self.accept_compression_encodings;
4431 let send_compression_encodings = self.send_compression_encodings;
4432 let max_decoding_message_size = self.max_decoding_message_size;
4433 let max_encoding_message_size = self.max_encoding_message_size;
4434 let inner = self.inner.clone();
4435 let fut = async move {
4436 let method = RiseCtlPauseVersionCheckpointSvc(inner);
4437 let codec = tonic_prost::ProstCodec::default();
4438 let mut grpc = tonic::server::Grpc::new(codec)
4439 .apply_compression_config(
4440 accept_compression_encodings,
4441 send_compression_encodings,
4442 )
4443 .apply_max_message_size_config(
4444 max_decoding_message_size,
4445 max_encoding_message_size,
4446 );
4447 let res = grpc.unary(method, req).await;
4448 Ok(res)
4449 };
4450 Box::pin(fut)
4451 }
4452 "/hummock.HummockManagerService/RiseCtlResumeVersionCheckpoint" => {
4453 #[allow(non_camel_case_types)]
4454 struct RiseCtlResumeVersionCheckpointSvc<T: HummockManagerService>(
4455 pub Arc<T>,
4456 );
4457 impl<
4458 T: HummockManagerService,
4459 > tonic::server::UnaryService<
4460 super::RiseCtlResumeVersionCheckpointRequest,
4461 > for RiseCtlResumeVersionCheckpointSvc<T> {
4462 type Response = super::RiseCtlResumeVersionCheckpointResponse;
4463 type Future = BoxFuture<
4464 tonic::Response<Self::Response>,
4465 tonic::Status,
4466 >;
4467 fn call(
4468 &mut self,
4469 request: tonic::Request<
4470 super::RiseCtlResumeVersionCheckpointRequest,
4471 >,
4472 ) -> Self::Future {
4473 let inner = Arc::clone(&self.0);
4474 let fut = async move {
4475 <T as HummockManagerService>::rise_ctl_resume_version_checkpoint(
4476 &inner,
4477 request,
4478 )
4479 .await
4480 };
4481 Box::pin(fut)
4482 }
4483 }
4484 let accept_compression_encodings = self.accept_compression_encodings;
4485 let send_compression_encodings = self.send_compression_encodings;
4486 let max_decoding_message_size = self.max_decoding_message_size;
4487 let max_encoding_message_size = self.max_encoding_message_size;
4488 let inner = self.inner.clone();
4489 let fut = async move {
4490 let method = RiseCtlResumeVersionCheckpointSvc(inner);
4491 let codec = tonic_prost::ProstCodec::default();
4492 let mut grpc = tonic::server::Grpc::new(codec)
4493 .apply_compression_config(
4494 accept_compression_encodings,
4495 send_compression_encodings,
4496 )
4497 .apply_max_message_size_config(
4498 max_decoding_message_size,
4499 max_encoding_message_size,
4500 );
4501 let res = grpc.unary(method, req).await;
4502 Ok(res)
4503 };
4504 Box::pin(fut)
4505 }
4506 "/hummock.HummockManagerService/RiseCtlGetCheckpointVersion" => {
4507 #[allow(non_camel_case_types)]
4508 struct RiseCtlGetCheckpointVersionSvc<T: HummockManagerService>(
4509 pub Arc<T>,
4510 );
4511 impl<
4512 T: HummockManagerService,
4513 > tonic::server::UnaryService<
4514 super::RiseCtlGetCheckpointVersionRequest,
4515 > for RiseCtlGetCheckpointVersionSvc<T> {
4516 type Response = super::RiseCtlGetCheckpointVersionResponse;
4517 type Future = BoxFuture<
4518 tonic::Response<Self::Response>,
4519 tonic::Status,
4520 >;
4521 fn call(
4522 &mut self,
4523 request: tonic::Request<
4524 super::RiseCtlGetCheckpointVersionRequest,
4525 >,
4526 ) -> Self::Future {
4527 let inner = Arc::clone(&self.0);
4528 let fut = async move {
4529 <T as HummockManagerService>::rise_ctl_get_checkpoint_version(
4530 &inner,
4531 request,
4532 )
4533 .await
4534 };
4535 Box::pin(fut)
4536 }
4537 }
4538 let accept_compression_encodings = self.accept_compression_encodings;
4539 let send_compression_encodings = self.send_compression_encodings;
4540 let max_decoding_message_size = self.max_decoding_message_size;
4541 let max_encoding_message_size = self.max_encoding_message_size;
4542 let inner = self.inner.clone();
4543 let fut = async move {
4544 let method = RiseCtlGetCheckpointVersionSvc(inner);
4545 let codec = tonic_prost::ProstCodec::default();
4546 let mut grpc = tonic::server::Grpc::new(codec)
4547 .apply_compression_config(
4548 accept_compression_encodings,
4549 send_compression_encodings,
4550 )
4551 .apply_max_message_size_config(
4552 max_decoding_message_size,
4553 max_encoding_message_size,
4554 );
4555 let res = grpc.unary(method, req).await;
4556 Ok(res)
4557 };
4558 Box::pin(fut)
4559 }
4560 "/hummock.HummockManagerService/RiseCtlRebuildTableStats" => {
4561 #[allow(non_camel_case_types)]
4562 struct RiseCtlRebuildTableStatsSvc<T: HummockManagerService>(
4563 pub Arc<T>,
4564 );
4565 impl<
4566 T: HummockManagerService,
4567 > tonic::server::UnaryService<super::RiseCtlRebuildTableStatsRequest>
4568 for RiseCtlRebuildTableStatsSvc<T> {
4569 type Response = super::RiseCtlRebuildTableStatsResponse;
4570 type Future = BoxFuture<
4571 tonic::Response<Self::Response>,
4572 tonic::Status,
4573 >;
4574 fn call(
4575 &mut self,
4576 request: tonic::Request<
4577 super::RiseCtlRebuildTableStatsRequest,
4578 >,
4579 ) -> Self::Future {
4580 let inner = Arc::clone(&self.0);
4581 let fut = async move {
4582 <T as HummockManagerService>::rise_ctl_rebuild_table_stats(
4583 &inner,
4584 request,
4585 )
4586 .await
4587 };
4588 Box::pin(fut)
4589 }
4590 }
4591 let accept_compression_encodings = self.accept_compression_encodings;
4592 let send_compression_encodings = self.send_compression_encodings;
4593 let max_decoding_message_size = self.max_decoding_message_size;
4594 let max_encoding_message_size = self.max_encoding_message_size;
4595 let inner = self.inner.clone();
4596 let fut = async move {
4597 let method = RiseCtlRebuildTableStatsSvc(inner);
4598 let codec = tonic_prost::ProstCodec::default();
4599 let mut grpc = tonic::server::Grpc::new(codec)
4600 .apply_compression_config(
4601 accept_compression_encodings,
4602 send_compression_encodings,
4603 )
4604 .apply_max_message_size_config(
4605 max_decoding_message_size,
4606 max_encoding_message_size,
4607 );
4608 let res = grpc.unary(method, req).await;
4609 Ok(res)
4610 };
4611 Box::pin(fut)
4612 }
4613 "/hummock.HummockManagerService/InitMetadataForReplay" => {
4614 #[allow(non_camel_case_types)]
4615 struct InitMetadataForReplaySvc<T: HummockManagerService>(
4616 pub Arc<T>,
4617 );
4618 impl<
4619 T: HummockManagerService,
4620 > tonic::server::UnaryService<super::InitMetadataForReplayRequest>
4621 for InitMetadataForReplaySvc<T> {
4622 type Response = super::InitMetadataForReplayResponse;
4623 type Future = BoxFuture<
4624 tonic::Response<Self::Response>,
4625 tonic::Status,
4626 >;
4627 fn call(
4628 &mut self,
4629 request: tonic::Request<super::InitMetadataForReplayRequest>,
4630 ) -> Self::Future {
4631 let inner = Arc::clone(&self.0);
4632 let fut = async move {
4633 <T as HummockManagerService>::init_metadata_for_replay(
4634 &inner,
4635 request,
4636 )
4637 .await
4638 };
4639 Box::pin(fut)
4640 }
4641 }
4642 let accept_compression_encodings = self.accept_compression_encodings;
4643 let send_compression_encodings = self.send_compression_encodings;
4644 let max_decoding_message_size = self.max_decoding_message_size;
4645 let max_encoding_message_size = self.max_encoding_message_size;
4646 let inner = self.inner.clone();
4647 let fut = async move {
4648 let method = InitMetadataForReplaySvc(inner);
4649 let codec = tonic_prost::ProstCodec::default();
4650 let mut grpc = tonic::server::Grpc::new(codec)
4651 .apply_compression_config(
4652 accept_compression_encodings,
4653 send_compression_encodings,
4654 )
4655 .apply_max_message_size_config(
4656 max_decoding_message_size,
4657 max_encoding_message_size,
4658 );
4659 let res = grpc.unary(method, req).await;
4660 Ok(res)
4661 };
4662 Box::pin(fut)
4663 }
4664 "/hummock.HummockManagerService/PinVersion" => {
4665 #[allow(non_camel_case_types)]
4666 struct PinVersionSvc<T: HummockManagerService>(pub Arc<T>);
4667 impl<
4668 T: HummockManagerService,
4669 > tonic::server::UnaryService<super::PinVersionRequest>
4670 for PinVersionSvc<T> {
4671 type Response = super::PinVersionResponse;
4672 type Future = BoxFuture<
4673 tonic::Response<Self::Response>,
4674 tonic::Status,
4675 >;
4676 fn call(
4677 &mut self,
4678 request: tonic::Request<super::PinVersionRequest>,
4679 ) -> Self::Future {
4680 let inner = Arc::clone(&self.0);
4681 let fut = async move {
4682 <T as HummockManagerService>::pin_version(&inner, request)
4683 .await
4684 };
4685 Box::pin(fut)
4686 }
4687 }
4688 let accept_compression_encodings = self.accept_compression_encodings;
4689 let send_compression_encodings = self.send_compression_encodings;
4690 let max_decoding_message_size = self.max_decoding_message_size;
4691 let max_encoding_message_size = self.max_encoding_message_size;
4692 let inner = self.inner.clone();
4693 let fut = async move {
4694 let method = PinVersionSvc(inner);
4695 let codec = tonic_prost::ProstCodec::default();
4696 let mut grpc = tonic::server::Grpc::new(codec)
4697 .apply_compression_config(
4698 accept_compression_encodings,
4699 send_compression_encodings,
4700 )
4701 .apply_max_message_size_config(
4702 max_decoding_message_size,
4703 max_encoding_message_size,
4704 );
4705 let res = grpc.unary(method, req).await;
4706 Ok(res)
4707 };
4708 Box::pin(fut)
4709 }
4710 "/hummock.HummockManagerService/SplitCompactionGroup" => {
4711 #[allow(non_camel_case_types)]
4712 struct SplitCompactionGroupSvc<T: HummockManagerService>(pub Arc<T>);
4713 impl<
4714 T: HummockManagerService,
4715 > tonic::server::UnaryService<super::SplitCompactionGroupRequest>
4716 for SplitCompactionGroupSvc<T> {
4717 type Response = super::SplitCompactionGroupResponse;
4718 type Future = BoxFuture<
4719 tonic::Response<Self::Response>,
4720 tonic::Status,
4721 >;
4722 fn call(
4723 &mut self,
4724 request: tonic::Request<super::SplitCompactionGroupRequest>,
4725 ) -> Self::Future {
4726 let inner = Arc::clone(&self.0);
4727 let fut = async move {
4728 <T as HummockManagerService>::split_compaction_group(
4729 &inner,
4730 request,
4731 )
4732 .await
4733 };
4734 Box::pin(fut)
4735 }
4736 }
4737 let accept_compression_encodings = self.accept_compression_encodings;
4738 let send_compression_encodings = self.send_compression_encodings;
4739 let max_decoding_message_size = self.max_decoding_message_size;
4740 let max_encoding_message_size = self.max_encoding_message_size;
4741 let inner = self.inner.clone();
4742 let fut = async move {
4743 let method = SplitCompactionGroupSvc(inner);
4744 let codec = tonic_prost::ProstCodec::default();
4745 let mut grpc = tonic::server::Grpc::new(codec)
4746 .apply_compression_config(
4747 accept_compression_encodings,
4748 send_compression_encodings,
4749 )
4750 .apply_max_message_size_config(
4751 max_decoding_message_size,
4752 max_encoding_message_size,
4753 );
4754 let res = grpc.unary(method, req).await;
4755 Ok(res)
4756 };
4757 Box::pin(fut)
4758 }
4759 "/hummock.HummockManagerService/RiseCtlListCompactionStatus" => {
4760 #[allow(non_camel_case_types)]
4761 struct RiseCtlListCompactionStatusSvc<T: HummockManagerService>(
4762 pub Arc<T>,
4763 );
4764 impl<
4765 T: HummockManagerService,
4766 > tonic::server::UnaryService<
4767 super::RiseCtlListCompactionStatusRequest,
4768 > for RiseCtlListCompactionStatusSvc<T> {
4769 type Response = super::RiseCtlListCompactionStatusResponse;
4770 type Future = BoxFuture<
4771 tonic::Response<Self::Response>,
4772 tonic::Status,
4773 >;
4774 fn call(
4775 &mut self,
4776 request: tonic::Request<
4777 super::RiseCtlListCompactionStatusRequest,
4778 >,
4779 ) -> Self::Future {
4780 let inner = Arc::clone(&self.0);
4781 let fut = async move {
4782 <T as HummockManagerService>::rise_ctl_list_compaction_status(
4783 &inner,
4784 request,
4785 )
4786 .await
4787 };
4788 Box::pin(fut)
4789 }
4790 }
4791 let accept_compression_encodings = self.accept_compression_encodings;
4792 let send_compression_encodings = self.send_compression_encodings;
4793 let max_decoding_message_size = self.max_decoding_message_size;
4794 let max_encoding_message_size = self.max_encoding_message_size;
4795 let inner = self.inner.clone();
4796 let fut = async move {
4797 let method = RiseCtlListCompactionStatusSvc(inner);
4798 let codec = tonic_prost::ProstCodec::default();
4799 let mut grpc = tonic::server::Grpc::new(codec)
4800 .apply_compression_config(
4801 accept_compression_encodings,
4802 send_compression_encodings,
4803 )
4804 .apply_max_message_size_config(
4805 max_decoding_message_size,
4806 max_encoding_message_size,
4807 );
4808 let res = grpc.unary(method, req).await;
4809 Ok(res)
4810 };
4811 Box::pin(fut)
4812 }
4813 "/hummock.HummockManagerService/SubscribeCompactionEvent" => {
4814 #[allow(non_camel_case_types)]
4815 struct SubscribeCompactionEventSvc<T: HummockManagerService>(
4816 pub Arc<T>,
4817 );
4818 impl<
4819 T: HummockManagerService,
4820 > tonic::server::StreamingService<
4821 super::SubscribeCompactionEventRequest,
4822 > for SubscribeCompactionEventSvc<T> {
4823 type Response = super::SubscribeCompactionEventResponse;
4824 type ResponseStream = T::SubscribeCompactionEventStream;
4825 type Future = BoxFuture<
4826 tonic::Response<Self::ResponseStream>,
4827 tonic::Status,
4828 >;
4829 fn call(
4830 &mut self,
4831 request: tonic::Request<
4832 tonic::Streaming<super::SubscribeCompactionEventRequest>,
4833 >,
4834 ) -> Self::Future {
4835 let inner = Arc::clone(&self.0);
4836 let fut = async move {
4837 <T as HummockManagerService>::subscribe_compaction_event(
4838 &inner,
4839 request,
4840 )
4841 .await
4842 };
4843 Box::pin(fut)
4844 }
4845 }
4846 let accept_compression_encodings = self.accept_compression_encodings;
4847 let send_compression_encodings = self.send_compression_encodings;
4848 let max_decoding_message_size = self.max_decoding_message_size;
4849 let max_encoding_message_size = self.max_encoding_message_size;
4850 let inner = self.inner.clone();
4851 let fut = async move {
4852 let method = SubscribeCompactionEventSvc(inner);
4853 let codec = tonic_prost::ProstCodec::default();
4854 let mut grpc = tonic::server::Grpc::new(codec)
4855 .apply_compression_config(
4856 accept_compression_encodings,
4857 send_compression_encodings,
4858 )
4859 .apply_max_message_size_config(
4860 max_decoding_message_size,
4861 max_encoding_message_size,
4862 );
4863 let res = grpc.streaming(method, req).await;
4864 Ok(res)
4865 };
4866 Box::pin(fut)
4867 }
4868 "/hummock.HummockManagerService/ReportCompactionTask" => {
4869 #[allow(non_camel_case_types)]
4870 struct ReportCompactionTaskSvc<T: HummockManagerService>(pub Arc<T>);
4871 impl<
4872 T: HummockManagerService,
4873 > tonic::server::UnaryService<super::ReportCompactionTaskRequest>
4874 for ReportCompactionTaskSvc<T> {
4875 type Response = super::ReportCompactionTaskResponse;
4876 type Future = BoxFuture<
4877 tonic::Response<Self::Response>,
4878 tonic::Status,
4879 >;
4880 fn call(
4881 &mut self,
4882 request: tonic::Request<super::ReportCompactionTaskRequest>,
4883 ) -> Self::Future {
4884 let inner = Arc::clone(&self.0);
4885 let fut = async move {
4886 <T as HummockManagerService>::report_compaction_task(
4887 &inner,
4888 request,
4889 )
4890 .await
4891 };
4892 Box::pin(fut)
4893 }
4894 }
4895 let accept_compression_encodings = self.accept_compression_encodings;
4896 let send_compression_encodings = self.send_compression_encodings;
4897 let max_decoding_message_size = self.max_decoding_message_size;
4898 let max_encoding_message_size = self.max_encoding_message_size;
4899 let inner = self.inner.clone();
4900 let fut = async move {
4901 let method = ReportCompactionTaskSvc(inner);
4902 let codec = tonic_prost::ProstCodec::default();
4903 let mut grpc = tonic::server::Grpc::new(codec)
4904 .apply_compression_config(
4905 accept_compression_encodings,
4906 send_compression_encodings,
4907 )
4908 .apply_max_message_size_config(
4909 max_decoding_message_size,
4910 max_encoding_message_size,
4911 );
4912 let res = grpc.unary(method, req).await;
4913 Ok(res)
4914 };
4915 Box::pin(fut)
4916 }
4917 "/hummock.HummockManagerService/ListBranchedObject" => {
4918 #[allow(non_camel_case_types)]
4919 struct ListBranchedObjectSvc<T: HummockManagerService>(pub Arc<T>);
4920 impl<
4921 T: HummockManagerService,
4922 > tonic::server::UnaryService<super::ListBranchedObjectRequest>
4923 for ListBranchedObjectSvc<T> {
4924 type Response = super::ListBranchedObjectResponse;
4925 type Future = BoxFuture<
4926 tonic::Response<Self::Response>,
4927 tonic::Status,
4928 >;
4929 fn call(
4930 &mut self,
4931 request: tonic::Request<super::ListBranchedObjectRequest>,
4932 ) -> Self::Future {
4933 let inner = Arc::clone(&self.0);
4934 let fut = async move {
4935 <T as HummockManagerService>::list_branched_object(
4936 &inner,
4937 request,
4938 )
4939 .await
4940 };
4941 Box::pin(fut)
4942 }
4943 }
4944 let accept_compression_encodings = self.accept_compression_encodings;
4945 let send_compression_encodings = self.send_compression_encodings;
4946 let max_decoding_message_size = self.max_decoding_message_size;
4947 let max_encoding_message_size = self.max_encoding_message_size;
4948 let inner = self.inner.clone();
4949 let fut = async move {
4950 let method = ListBranchedObjectSvc(inner);
4951 let codec = tonic_prost::ProstCodec::default();
4952 let mut grpc = tonic::server::Grpc::new(codec)
4953 .apply_compression_config(
4954 accept_compression_encodings,
4955 send_compression_encodings,
4956 )
4957 .apply_max_message_size_config(
4958 max_decoding_message_size,
4959 max_encoding_message_size,
4960 );
4961 let res = grpc.unary(method, req).await;
4962 Ok(res)
4963 };
4964 Box::pin(fut)
4965 }
4966 "/hummock.HummockManagerService/ListActiveWriteLimit" => {
4967 #[allow(non_camel_case_types)]
4968 struct ListActiveWriteLimitSvc<T: HummockManagerService>(pub Arc<T>);
4969 impl<
4970 T: HummockManagerService,
4971 > tonic::server::UnaryService<super::ListActiveWriteLimitRequest>
4972 for ListActiveWriteLimitSvc<T> {
4973 type Response = super::ListActiveWriteLimitResponse;
4974 type Future = BoxFuture<
4975 tonic::Response<Self::Response>,
4976 tonic::Status,
4977 >;
4978 fn call(
4979 &mut self,
4980 request: tonic::Request<super::ListActiveWriteLimitRequest>,
4981 ) -> Self::Future {
4982 let inner = Arc::clone(&self.0);
4983 let fut = async move {
4984 <T as HummockManagerService>::list_active_write_limit(
4985 &inner,
4986 request,
4987 )
4988 .await
4989 };
4990 Box::pin(fut)
4991 }
4992 }
4993 let accept_compression_encodings = self.accept_compression_encodings;
4994 let send_compression_encodings = self.send_compression_encodings;
4995 let max_decoding_message_size = self.max_decoding_message_size;
4996 let max_encoding_message_size = self.max_encoding_message_size;
4997 let inner = self.inner.clone();
4998 let fut = async move {
4999 let method = ListActiveWriteLimitSvc(inner);
5000 let codec = tonic_prost::ProstCodec::default();
5001 let mut grpc = tonic::server::Grpc::new(codec)
5002 .apply_compression_config(
5003 accept_compression_encodings,
5004 send_compression_encodings,
5005 )
5006 .apply_max_message_size_config(
5007 max_decoding_message_size,
5008 max_encoding_message_size,
5009 );
5010 let res = grpc.unary(method, req).await;
5011 Ok(res)
5012 };
5013 Box::pin(fut)
5014 }
5015 "/hummock.HummockManagerService/ListHummockMetaConfig" => {
5016 #[allow(non_camel_case_types)]
5017 struct ListHummockMetaConfigSvc<T: HummockManagerService>(
5018 pub Arc<T>,
5019 );
5020 impl<
5021 T: HummockManagerService,
5022 > tonic::server::UnaryService<super::ListHummockMetaConfigRequest>
5023 for ListHummockMetaConfigSvc<T> {
5024 type Response = super::ListHummockMetaConfigResponse;
5025 type Future = BoxFuture<
5026 tonic::Response<Self::Response>,
5027 tonic::Status,
5028 >;
5029 fn call(
5030 &mut self,
5031 request: tonic::Request<super::ListHummockMetaConfigRequest>,
5032 ) -> Self::Future {
5033 let inner = Arc::clone(&self.0);
5034 let fut = async move {
5035 <T as HummockManagerService>::list_hummock_meta_config(
5036 &inner,
5037 request,
5038 )
5039 .await
5040 };
5041 Box::pin(fut)
5042 }
5043 }
5044 let accept_compression_encodings = self.accept_compression_encodings;
5045 let send_compression_encodings = self.send_compression_encodings;
5046 let max_decoding_message_size = self.max_decoding_message_size;
5047 let max_encoding_message_size = self.max_encoding_message_size;
5048 let inner = self.inner.clone();
5049 let fut = async move {
5050 let method = ListHummockMetaConfigSvc(inner);
5051 let codec = tonic_prost::ProstCodec::default();
5052 let mut grpc = tonic::server::Grpc::new(codec)
5053 .apply_compression_config(
5054 accept_compression_encodings,
5055 send_compression_encodings,
5056 )
5057 .apply_max_message_size_config(
5058 max_decoding_message_size,
5059 max_encoding_message_size,
5060 );
5061 let res = grpc.unary(method, req).await;
5062 Ok(res)
5063 };
5064 Box::pin(fut)
5065 }
5066 "/hummock.HummockManagerService/GetCompactionScore" => {
5067 #[allow(non_camel_case_types)]
5068 struct GetCompactionScoreSvc<T: HummockManagerService>(pub Arc<T>);
5069 impl<
5070 T: HummockManagerService,
5071 > tonic::server::UnaryService<super::GetCompactionScoreRequest>
5072 for GetCompactionScoreSvc<T> {
5073 type Response = super::GetCompactionScoreResponse;
5074 type Future = BoxFuture<
5075 tonic::Response<Self::Response>,
5076 tonic::Status,
5077 >;
5078 fn call(
5079 &mut self,
5080 request: tonic::Request<super::GetCompactionScoreRequest>,
5081 ) -> Self::Future {
5082 let inner = Arc::clone(&self.0);
5083 let fut = async move {
5084 <T as HummockManagerService>::get_compaction_score(
5085 &inner,
5086 request,
5087 )
5088 .await
5089 };
5090 Box::pin(fut)
5091 }
5092 }
5093 let accept_compression_encodings = self.accept_compression_encodings;
5094 let send_compression_encodings = self.send_compression_encodings;
5095 let max_decoding_message_size = self.max_decoding_message_size;
5096 let max_encoding_message_size = self.max_encoding_message_size;
5097 let inner = self.inner.clone();
5098 let fut = async move {
5099 let method = GetCompactionScoreSvc(inner);
5100 let codec = tonic_prost::ProstCodec::default();
5101 let mut grpc = tonic::server::Grpc::new(codec)
5102 .apply_compression_config(
5103 accept_compression_encodings,
5104 send_compression_encodings,
5105 )
5106 .apply_max_message_size_config(
5107 max_decoding_message_size,
5108 max_encoding_message_size,
5109 );
5110 let res = grpc.unary(method, req).await;
5111 Ok(res)
5112 };
5113 Box::pin(fut)
5114 }
5115 "/hummock.HummockManagerService/ListCompactTaskAssignment" => {
5116 #[allow(non_camel_case_types)]
5117 struct ListCompactTaskAssignmentSvc<T: HummockManagerService>(
5118 pub Arc<T>,
5119 );
5120 impl<
5121 T: HummockManagerService,
5122 > tonic::server::UnaryService<
5123 super::ListCompactTaskAssignmentRequest,
5124 > for ListCompactTaskAssignmentSvc<T> {
5125 type Response = super::ListCompactTaskAssignmentResponse;
5126 type Future = BoxFuture<
5127 tonic::Response<Self::Response>,
5128 tonic::Status,
5129 >;
5130 fn call(
5131 &mut self,
5132 request: tonic::Request<
5133 super::ListCompactTaskAssignmentRequest,
5134 >,
5135 ) -> Self::Future {
5136 let inner = Arc::clone(&self.0);
5137 let fut = async move {
5138 <T as HummockManagerService>::list_compact_task_assignment(
5139 &inner,
5140 request,
5141 )
5142 .await
5143 };
5144 Box::pin(fut)
5145 }
5146 }
5147 let accept_compression_encodings = self.accept_compression_encodings;
5148 let send_compression_encodings = self.send_compression_encodings;
5149 let max_decoding_message_size = self.max_decoding_message_size;
5150 let max_encoding_message_size = self.max_encoding_message_size;
5151 let inner = self.inner.clone();
5152 let fut = async move {
5153 let method = ListCompactTaskAssignmentSvc(inner);
5154 let codec = tonic_prost::ProstCodec::default();
5155 let mut grpc = tonic::server::Grpc::new(codec)
5156 .apply_compression_config(
5157 accept_compression_encodings,
5158 send_compression_encodings,
5159 )
5160 .apply_max_message_size_config(
5161 max_decoding_message_size,
5162 max_encoding_message_size,
5163 );
5164 let res = grpc.unary(method, req).await;
5165 Ok(res)
5166 };
5167 Box::pin(fut)
5168 }
5169 "/hummock.HummockManagerService/ListCompactTaskProgress" => {
5170 #[allow(non_camel_case_types)]
5171 struct ListCompactTaskProgressSvc<T: HummockManagerService>(
5172 pub Arc<T>,
5173 );
5174 impl<
5175 T: HummockManagerService,
5176 > tonic::server::UnaryService<super::ListCompactTaskProgressRequest>
5177 for ListCompactTaskProgressSvc<T> {
5178 type Response = super::ListCompactTaskProgressResponse;
5179 type Future = BoxFuture<
5180 tonic::Response<Self::Response>,
5181 tonic::Status,
5182 >;
5183 fn call(
5184 &mut self,
5185 request: tonic::Request<
5186 super::ListCompactTaskProgressRequest,
5187 >,
5188 ) -> Self::Future {
5189 let inner = Arc::clone(&self.0);
5190 let fut = async move {
5191 <T as HummockManagerService>::list_compact_task_progress(
5192 &inner,
5193 request,
5194 )
5195 .await
5196 };
5197 Box::pin(fut)
5198 }
5199 }
5200 let accept_compression_encodings = self.accept_compression_encodings;
5201 let send_compression_encodings = self.send_compression_encodings;
5202 let max_decoding_message_size = self.max_decoding_message_size;
5203 let max_encoding_message_size = self.max_encoding_message_size;
5204 let inner = self.inner.clone();
5205 let fut = async move {
5206 let method = ListCompactTaskProgressSvc(inner);
5207 let codec = tonic_prost::ProstCodec::default();
5208 let mut grpc = tonic::server::Grpc::new(codec)
5209 .apply_compression_config(
5210 accept_compression_encodings,
5211 send_compression_encodings,
5212 )
5213 .apply_max_message_size_config(
5214 max_decoding_message_size,
5215 max_encoding_message_size,
5216 );
5217 let res = grpc.unary(method, req).await;
5218 Ok(res)
5219 };
5220 Box::pin(fut)
5221 }
5222 "/hummock.HummockManagerService/CancelCompactTask" => {
5223 #[allow(non_camel_case_types)]
5224 struct CancelCompactTaskSvc<T: HummockManagerService>(pub Arc<T>);
5225 impl<
5226 T: HummockManagerService,
5227 > tonic::server::UnaryService<super::CancelCompactTaskRequest>
5228 for CancelCompactTaskSvc<T> {
5229 type Response = super::CancelCompactTaskResponse;
5230 type Future = BoxFuture<
5231 tonic::Response<Self::Response>,
5232 tonic::Status,
5233 >;
5234 fn call(
5235 &mut self,
5236 request: tonic::Request<super::CancelCompactTaskRequest>,
5237 ) -> Self::Future {
5238 let inner = Arc::clone(&self.0);
5239 let fut = async move {
5240 <T as HummockManagerService>::cancel_compact_task(
5241 &inner,
5242 request,
5243 )
5244 .await
5245 };
5246 Box::pin(fut)
5247 }
5248 }
5249 let accept_compression_encodings = self.accept_compression_encodings;
5250 let send_compression_encodings = self.send_compression_encodings;
5251 let max_decoding_message_size = self.max_decoding_message_size;
5252 let max_encoding_message_size = self.max_encoding_message_size;
5253 let inner = self.inner.clone();
5254 let fut = async move {
5255 let method = CancelCompactTaskSvc(inner);
5256 let codec = tonic_prost::ProstCodec::default();
5257 let mut grpc = tonic::server::Grpc::new(codec)
5258 .apply_compression_config(
5259 accept_compression_encodings,
5260 send_compression_encodings,
5261 )
5262 .apply_max_message_size_config(
5263 max_decoding_message_size,
5264 max_encoding_message_size,
5265 );
5266 let res = grpc.unary(method, req).await;
5267 Ok(res)
5268 };
5269 Box::pin(fut)
5270 }
5271 "/hummock.HummockManagerService/GetVersionByEpoch" => {
5272 #[allow(non_camel_case_types)]
5273 struct GetVersionByEpochSvc<T: HummockManagerService>(pub Arc<T>);
5274 impl<
5275 T: HummockManagerService,
5276 > tonic::server::UnaryService<super::GetVersionByEpochRequest>
5277 for GetVersionByEpochSvc<T> {
5278 type Response = super::GetVersionByEpochResponse;
5279 type Future = BoxFuture<
5280 tonic::Response<Self::Response>,
5281 tonic::Status,
5282 >;
5283 fn call(
5284 &mut self,
5285 request: tonic::Request<super::GetVersionByEpochRequest>,
5286 ) -> Self::Future {
5287 let inner = Arc::clone(&self.0);
5288 let fut = async move {
5289 <T as HummockManagerService>::get_version_by_epoch(
5290 &inner,
5291 request,
5292 )
5293 .await
5294 };
5295 Box::pin(fut)
5296 }
5297 }
5298 let accept_compression_encodings = self.accept_compression_encodings;
5299 let send_compression_encodings = self.send_compression_encodings;
5300 let max_decoding_message_size = self.max_decoding_message_size;
5301 let max_encoding_message_size = self.max_encoding_message_size;
5302 let inner = self.inner.clone();
5303 let fut = async move {
5304 let method = GetVersionByEpochSvc(inner);
5305 let codec = tonic_prost::ProstCodec::default();
5306 let mut grpc = tonic::server::Grpc::new(codec)
5307 .apply_compression_config(
5308 accept_compression_encodings,
5309 send_compression_encodings,
5310 )
5311 .apply_max_message_size_config(
5312 max_decoding_message_size,
5313 max_encoding_message_size,
5314 );
5315 let res = grpc.unary(method, req).await;
5316 Ok(res)
5317 };
5318 Box::pin(fut)
5319 }
5320 "/hummock.HummockManagerService/MergeCompactionGroup" => {
5321 #[allow(non_camel_case_types)]
5322 struct MergeCompactionGroupSvc<T: HummockManagerService>(pub Arc<T>);
5323 impl<
5324 T: HummockManagerService,
5325 > tonic::server::UnaryService<super::MergeCompactionGroupRequest>
5326 for MergeCompactionGroupSvc<T> {
5327 type Response = super::MergeCompactionGroupResponse;
5328 type Future = BoxFuture<
5329 tonic::Response<Self::Response>,
5330 tonic::Status,
5331 >;
5332 fn call(
5333 &mut self,
5334 request: tonic::Request<super::MergeCompactionGroupRequest>,
5335 ) -> Self::Future {
5336 let inner = Arc::clone(&self.0);
5337 let fut = async move {
5338 <T as HummockManagerService>::merge_compaction_group(
5339 &inner,
5340 request,
5341 )
5342 .await
5343 };
5344 Box::pin(fut)
5345 }
5346 }
5347 let accept_compression_encodings = self.accept_compression_encodings;
5348 let send_compression_encodings = self.send_compression_encodings;
5349 let max_decoding_message_size = self.max_decoding_message_size;
5350 let max_encoding_message_size = self.max_encoding_message_size;
5351 let inner = self.inner.clone();
5352 let fut = async move {
5353 let method = MergeCompactionGroupSvc(inner);
5354 let codec = tonic_prost::ProstCodec::default();
5355 let mut grpc = tonic::server::Grpc::new(codec)
5356 .apply_compression_config(
5357 accept_compression_encodings,
5358 send_compression_encodings,
5359 )
5360 .apply_max_message_size_config(
5361 max_decoding_message_size,
5362 max_encoding_message_size,
5363 );
5364 let res = grpc.unary(method, req).await;
5365 Ok(res)
5366 };
5367 Box::pin(fut)
5368 }
5369 "/hummock.HummockManagerService/GetTableChangeLogs" => {
5370 #[allow(non_camel_case_types)]
5371 struct GetTableChangeLogsSvc<T: HummockManagerService>(pub Arc<T>);
5372 impl<
5373 T: HummockManagerService,
5374 > tonic::server::UnaryService<super::GetTableChangeLogsRequest>
5375 for GetTableChangeLogsSvc<T> {
5376 type Response = super::GetTableChangeLogsResponse;
5377 type Future = BoxFuture<
5378 tonic::Response<Self::Response>,
5379 tonic::Status,
5380 >;
5381 fn call(
5382 &mut self,
5383 request: tonic::Request<super::GetTableChangeLogsRequest>,
5384 ) -> Self::Future {
5385 let inner = Arc::clone(&self.0);
5386 let fut = async move {
5387 <T as HummockManagerService>::get_table_change_logs(
5388 &inner,
5389 request,
5390 )
5391 .await
5392 };
5393 Box::pin(fut)
5394 }
5395 }
5396 let accept_compression_encodings = self.accept_compression_encodings;
5397 let send_compression_encodings = self.send_compression_encodings;
5398 let max_decoding_message_size = self.max_decoding_message_size;
5399 let max_encoding_message_size = self.max_encoding_message_size;
5400 let inner = self.inner.clone();
5401 let fut = async move {
5402 let method = GetTableChangeLogsSvc(inner);
5403 let codec = tonic_prost::ProstCodec::default();
5404 let mut grpc = tonic::server::Grpc::new(codec)
5405 .apply_compression_config(
5406 accept_compression_encodings,
5407 send_compression_encodings,
5408 )
5409 .apply_max_message_size_config(
5410 max_decoding_message_size,
5411 max_encoding_message_size,
5412 );
5413 let res = grpc.unary(method, req).await;
5414 Ok(res)
5415 };
5416 Box::pin(fut)
5417 }
5418 "/hummock.HummockManagerService/SubscribeIcebergCompactionEvent" => {
5419 #[allow(non_camel_case_types)]
5420 struct SubscribeIcebergCompactionEventSvc<T: HummockManagerService>(
5421 pub Arc<T>,
5422 );
5423 impl<
5424 T: HummockManagerService,
5425 > tonic::server::StreamingService<
5426 super::super::iceberg_compaction::SubscribeIcebergCompactionEventRequest,
5427 > for SubscribeIcebergCompactionEventSvc<T> {
5428 type Response = super::super::iceberg_compaction::SubscribeIcebergCompactionEventResponse;
5429 type ResponseStream = T::SubscribeIcebergCompactionEventStream;
5430 type Future = BoxFuture<
5431 tonic::Response<Self::ResponseStream>,
5432 tonic::Status,
5433 >;
5434 fn call(
5435 &mut self,
5436 request: tonic::Request<
5437 tonic::Streaming<
5438 super::super::iceberg_compaction::SubscribeIcebergCompactionEventRequest,
5439 >,
5440 >,
5441 ) -> Self::Future {
5442 let inner = Arc::clone(&self.0);
5443 let fut = async move {
5444 <T as HummockManagerService>::subscribe_iceberg_compaction_event(
5445 &inner,
5446 request,
5447 )
5448 .await
5449 };
5450 Box::pin(fut)
5451 }
5452 }
5453 let accept_compression_encodings = self.accept_compression_encodings;
5454 let send_compression_encodings = self.send_compression_encodings;
5455 let max_decoding_message_size = self.max_decoding_message_size;
5456 let max_encoding_message_size = self.max_encoding_message_size;
5457 let inner = self.inner.clone();
5458 let fut = async move {
5459 let method = SubscribeIcebergCompactionEventSvc(inner);
5460 let codec = tonic_prost::ProstCodec::default();
5461 let mut grpc = tonic::server::Grpc::new(codec)
5462 .apply_compression_config(
5463 accept_compression_encodings,
5464 send_compression_encodings,
5465 )
5466 .apply_max_message_size_config(
5467 max_decoding_message_size,
5468 max_encoding_message_size,
5469 );
5470 let res = grpc.streaming(method, req).await;
5471 Ok(res)
5472 };
5473 Box::pin(fut)
5474 }
5475 _ => {
5476 Box::pin(async move {
5477 let mut response = http::Response::new(
5478 tonic::body::Body::default(),
5479 );
5480 let headers = response.headers_mut();
5481 headers
5482 .insert(
5483 tonic::Status::GRPC_STATUS,
5484 (tonic::Code::Unimplemented as i32).into(),
5485 );
5486 headers
5487 .insert(
5488 http::header::CONTENT_TYPE,
5489 tonic::metadata::GRPC_CONTENT_TYPE,
5490 );
5491 Ok(response)
5492 })
5493 }
5494 }
5495 }
5496 }
5497 impl<T> Clone for HummockManagerServiceServer<T> {
5498 fn clone(&self) -> Self {
5499 let inner = self.inner.clone();
5500 Self {
5501 inner,
5502 accept_compression_encodings: self.accept_compression_encodings,
5503 send_compression_encodings: self.send_compression_encodings,
5504 max_decoding_message_size: self.max_decoding_message_size,
5505 max_encoding_message_size: self.max_encoding_message_size,
5506 }
5507 }
5508 }
5509 pub const SERVICE_NAME: &str = "hummock.HummockManagerService";
5511 impl<T> tonic::server::NamedService for HummockManagerServiceServer<T> {
5512 const NAME: &'static str = SERVICE_NAME;
5513 }
5514}