Skip to content

Commit 10af6ea

Browse files
authored
refactor whiteboard info (#8366)
1 parent 987134c commit 10af6ea

File tree

8 files changed

+375
-120
lines changed

8 files changed

+375
-120
lines changed

ydb/core/protos/node_whiteboard.proto

Lines changed: 91 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ option java_package = "ru.yandex.kikimr.proto";
1111
extend google.protobuf.FieldOptions {
1212
optional uint64 InsignificantChangeAmount = 70553;
1313
optional uint32 InsignificantChangePercent = 70554;
14+
optional bool DefaultField = 70555;
1415
}
1516

1617
enum EFlag {
@@ -47,28 +48,29 @@ message TTabletStateInfo {
4748
Reserved16 = 16;
4849
}
4950

50-
optional uint64 TabletId = 1;
51+
optional uint64 TabletId = 1 [(DefaultField) = true];
5152
optional uint64 CreateTime = 2;
52-
optional uint64 ChangeTime = 3;
53-
optional ETabletState State = 4;
53+
optional uint64 ChangeTime = 3 [(DefaultField) = true];
54+
optional ETabletState State = 4 [(DefaultField) = true];
5455
optional uint32 UserState = 5; // implementation-dependent
55-
optional uint32 Generation = 6;
56-
optional NKikimrTabletBase.TTabletTypes.EType Type = 7;
56+
optional uint32 Generation = 6 [(DefaultField) = true];
57+
optional NKikimrTabletBase.TTabletTypes.EType Type = 7 [(DefaultField) = true];
5758
optional string Host = 8;
5859
repeated uint32 ChannelGroupIDs = 9; // BS Group per channel
5960
repeated TCustomTabletAttribute Attributes = 10;
6061
optional uint32 NodeId = 11; // filled during merge
61-
optional bool Leader = 12; // leader or follower
62+
optional bool Leader = 12 [(DefaultField) = true]; // leader or follower
6263
optional uint32 Count = 13; // filled during group count
63-
optional uint32 FollowerId = 14;
64+
optional uint32 FollowerId = 14 [(DefaultField) = true];
6465
optional EFlag Overall = 15; // filled during merge
65-
optional NKikimrSubDomains.TDomainKey TenantId = 16;
66-
optional fixed64 HiveId = 17;
66+
optional NKikimrSubDomains.TDomainKey TenantId = 16 [(DefaultField) = true];
67+
optional fixed64 HiveId = 17 [(DefaultField) = true];
6768
optional string EndOfRangeKeyPrefix = 18; // filled during merge
6869
}
6970

7071
message TEvTabletStateRequest {
7172
optional uint64 ChangedSince = 1;
73+
repeated int32 FieldsRequired = 2 [packed = true];
7274
optional string Format = 5; // it could be "packed5"
7375
optional string GroupBy = 20; // it's either empty or "Type,State" for now
7476
repeated fixed64 FilterTabletId = 22;
@@ -99,6 +101,7 @@ message TNodeStateInfo {
99101

100102
message TEvNodeStateRequest {
101103
optional uint64 ChangedSince = 1;
104+
repeated int32 FieldsRequired = 2 [packed = true];
102105
}
103106

104107
message TEvNodeStateResponse {
@@ -108,34 +111,35 @@ message TEvNodeStateResponse {
108111
}
109112

110113
message TPDiskStateInfo {
111-
optional uint32 PDiskId = 1;
114+
optional uint32 PDiskId = 1 [(DefaultField) = true];
112115
optional uint64 CreateTime = 2;
113-
optional uint64 ChangeTime = 3;
114-
optional string Path = 4;
115-
optional uint64 Guid = 5;
116-
optional uint64 Category = 6;
117-
optional uint64 AvailableSize = 7 [(InsignificantChangeAmount) = 104857600]; // 100Mb
118-
optional uint64 TotalSize = 8;
119-
optional NKikimrBlobStorage.TPDiskState.E State = 9;
116+
optional uint64 ChangeTime = 3 [(DefaultField) = true];
117+
optional string Path = 4 [(DefaultField) = true];
118+
optional uint64 Guid = 5 [(DefaultField) = true];
119+
optional uint64 Category = 6 [(DefaultField) = true];
120+
optional uint64 AvailableSize = 7 [(DefaultField) = true, (InsignificantChangeAmount) = 104857600]; // 100Mb
121+
optional uint64 TotalSize = 8 [(DefaultField) = true];
122+
optional NKikimrBlobStorage.TPDiskState.E State = 9 [(DefaultField) = true];
120123
optional uint32 NodeId = 10; // filled during merge
121124
optional uint32 Count = 13; // filled during group count
122-
optional EFlag Device = 14;
123-
optional EFlag Realtime = 15;
125+
optional EFlag Device = 14 [(DefaultField) = true];
126+
optional EFlag Realtime = 15 [(DefaultField) = true];
124127
// State as flag - to be filled
125128
optional EFlag StateFlag = 16;
126129
// overall state - to be filled
127130
optional EFlag Overall = 17;
128-
optional string SerialNumber = 18;
129-
optional uint64 SystemSize = 19;
130-
optional uint64 LogUsedSize = 20;
131-
optional uint64 LogTotalSize = 21;
132-
optional uint32 ExpectedSlotCount = 22;
133-
optional uint64 EnforcedDynamicSlotSize = 23;
134-
optional uint32 NumActiveSlots = 24;
131+
optional string SerialNumber = 18 [(DefaultField) = true];
132+
optional uint64 SystemSize = 19 [(DefaultField) = true];
133+
optional uint64 LogUsedSize = 20 [(DefaultField) = true];
134+
optional uint64 LogTotalSize = 21 [(DefaultField) = true];
135+
optional uint32 ExpectedSlotCount = 22 [(DefaultField) = true];
136+
optional uint64 EnforcedDynamicSlotSize = 23 [(DefaultField) = true];
137+
optional uint32 NumActiveSlots = 24 [(DefaultField) = true];
135138
}
136139

137140
message TEvPDiskStateRequest {
138141
optional uint64 ChangedSince = 1;
142+
repeated int32 FieldsRequired = 2 [packed = true];
139143
}
140144

141145
message TEvPDiskStateResponse {
@@ -172,62 +176,63 @@ message TVDiskSatisfactionRank {
172176
}
173177

174178
message TVDiskStateInfo {
175-
optional NKikimrBlobStorage.TVDiskID VDiskId = 1;
179+
optional NKikimrBlobStorage.TVDiskID VDiskId = 1 [(DefaultField) = true];
176180
optional uint64 CreateTime = 2;
177-
optional uint64 ChangeTime = 3;
178-
optional uint32 PDiskId = 4;
179-
optional uint32 VDiskSlotId = 5;
180-
optional uint64 Guid = 6;
181-
optional uint64 Kind = 7;
181+
optional uint64 ChangeTime = 3 [(DefaultField) = true];
182+
optional uint32 PDiskId = 4 [(DefaultField) = true];
183+
optional uint32 VDiskSlotId = 5 [(DefaultField) = true];
184+
optional uint64 Guid = 6 [(DefaultField) = true];
185+
optional uint64 Kind = 7 [(DefaultField) = true];
182186
optional uint32 NodeId = 9; // filled during merge
183187
optional uint32 Count = 17; // filled during group count
184188

185189
// overall state - to be filled
186190
optional EFlag Overall = 10;
187191

188192
// Current state of VDisk
189-
optional EVDiskState VDiskState = 11;
193+
optional EVDiskState VDiskState = 11 [(DefaultField) = true];
190194
// Disk space flags
191-
optional EFlag DiskSpace = 12;
195+
optional EFlag DiskSpace = 12 [(DefaultField) = true];
192196
// Compaction satisfaction rank
193-
optional TVDiskSatisfactionRank SatisfactionRank = 13;
197+
optional TVDiskSatisfactionRank SatisfactionRank = 13 [(DefaultField) = true];
194198
// Is VDisk replicated? (i.e. contains all blobs it must have)
195-
optional bool Replicated = 14;
199+
optional bool Replicated = 14 [(DefaultField) = true];
196200
// Does this VDisk has any yet unreplicated phantom-like blobs?
197-
optional bool UnreplicatedPhantoms = 20 [default = false];
201+
optional bool UnreplicatedPhantoms = 20 [default = false, (DefaultField) = true];
198202
// The same for the non-phantom-like blobs.
199-
optional bool UnreplicatedNonPhantoms = 21 [default = false];
203+
optional bool UnreplicatedNonPhantoms = 21 [default = false, (DefaultField) = true];
200204
// Replication progress (0 to 1). Only for replication, not blob scrubbing.
201-
optional float ReplicationProgress = 30;
205+
optional float ReplicationProgress = 30 [(DefaultField) = true];
202206
// Replication ETA.
203-
optional uint32 ReplicationSecondsRemaining = 31;
207+
optional uint32 ReplicationSecondsRemaining = 31 [(DefaultField) = true];
204208
// How many unsynced VDisks from current BlobStorage group we see
205-
optional uint64 UnsyncedVDisks = 15 [default = 0];
209+
optional uint64 UnsyncedVDisks = 15 [default = 0, (DefaultField) = true];
206210
// How much this VDisk have allocated on corresponding PDisk
207-
optional uint64 AllocatedSize = 16 [(InsignificantChangeAmount) = 536870912]; // 512MiB
211+
optional uint64 AllocatedSize = 16 [(InsignificantChangeAmount) = 536870912, (DefaultField) = true]; // 512MiB
208212
// How much space is available for VDisk corresponding to PDisk's hard space limits
209-
optional uint64 AvailableSize = 28 [(InsignificantChangeAmount) = 536870912]; // 512MiB
213+
optional uint64 AvailableSize = 28 [(InsignificantChangeAmount) = 536870912, (DefaultField) = true]; // 512MiB
210214
// Does this disk has some unreadable but not yet restored blobs?
211-
optional bool HasUnreadableBlobs = 24;
212-
optional fixed64 IncarnationGuid = 25;
213-
optional bool DonorMode = 26;
214-
optional fixed64 InstanceGuid = 27; // VDisk actor instance guid
215-
repeated NKikimrBlobStorage.TVSlotId Donors = 29;
215+
optional bool HasUnreadableBlobs = 24 [(DefaultField) = true];
216+
optional fixed64 IncarnationGuid = 25 [(DefaultField) = true];
217+
optional bool DonorMode = 26 [(DefaultField) = true];
218+
optional fixed64 InstanceGuid = 27 [(DefaultField) = true]; // VDisk actor instance guid
219+
repeated NKikimrBlobStorage.TVSlotId Donors = 29 [(DefaultField) = true];
216220

217221
// VDisk (Skeleton) Front Queue Status
218-
optional EFlag FrontQueues = 18;
222+
optional EFlag FrontQueues = 18 [(DefaultField) = true];
219223

220224
// VDisk storage pool label
221-
optional string StoragePoolName = 19;
225+
optional string StoragePoolName = 19 [(DefaultField) = true];
222226

223227
// Read bytes per second from PDisk for TEvVGet blobs only
224-
optional uint64 ReadThroughput = 22;
228+
optional uint64 ReadThroughput = 22 [(DefaultField) = true];
225229
// Write bytes per second to PDisk for TEvVPut blobs and replication bytes only
226-
optional uint64 WriteThroughput = 23;
230+
optional uint64 WriteThroughput = 23 [(DefaultField) = true];
227231
}
228232

229233
message TEvVDiskStateRequest {
230234
optional uint64 ChangedSince = 1;
235+
repeated int32 FieldsRequired = 2 [packed = true];
231236
}
232237

233238
message TEvVDiskStateResponse {
@@ -237,29 +242,30 @@ message TEvVDiskStateResponse {
237242
}
238243

239244
message TBSGroupStateInfo {
240-
optional uint32 GroupID = 1;
241-
optional string ErasureSpecies = 2;
242-
repeated NKikimrBlobStorage.TVDiskID VDiskIds = 3;
245+
optional uint32 GroupID = 1 [(DefaultField) = true];
246+
optional string ErasureSpecies = 2 [(DefaultField) = true];
247+
repeated NKikimrBlobStorage.TVDiskID VDiskIds = 3 [(DefaultField) = true];
243248
optional uint64 ChangeTime = 4;
244249
optional uint32 NodeId = 5; // filled during merge
245-
optional uint32 GroupGeneration = 6;
250+
optional uint32 GroupGeneration = 6 [(DefaultField) = true];
246251
optional EFlag Overall = 7;
247-
optional EFlag Latency = 8;
252+
optional EFlag Latency = 8 [(DefaultField) = true];
248253
optional uint32 Count = 13; // filled during group count
249-
optional string StoragePoolName = 14; // from BS_CONTROLLER
250-
optional uint64 AllocatedSize = 15 [(InsignificantChangeAmount) = 100000000];
251-
optional uint64 AvailableSize = 16 [(InsignificantChangeAmount) = 100000000];
252-
optional uint64 ReadThroughput = 17;
253-
optional uint64 WriteThroughput = 18;
254-
optional bool Encryption = 19;
255-
repeated uint32 VDiskNodeIds = 20;
256-
optional uint64 BlobDepotId = 21; // if set, then this is virtual group
257-
optional bool NoVDisksInGroup = 22;
258-
optional uint64 BlobDepotOnlineTime = 23;
254+
optional string StoragePoolName = 14 [(DefaultField) = true]; // from BS_CONTROLLER
255+
optional uint64 AllocatedSize = 15 [(InsignificantChangeAmount) = 100000000, (DefaultField) = true];
256+
optional uint64 AvailableSize = 16 [(InsignificantChangeAmount) = 100000000, (DefaultField) = true];
257+
optional uint64 ReadThroughput = 17 [(DefaultField) = true];
258+
optional uint64 WriteThroughput = 18 [(DefaultField) = true];
259+
optional bool Encryption = 19 [(DefaultField) = true];
260+
repeated uint32 VDiskNodeIds = 20 [(DefaultField) = true];
261+
optional uint64 BlobDepotId = 21 [(DefaultField) = true]; // if set, then this is virtual group
262+
optional bool NoVDisksInGroup = 22 [(DefaultField) = true];
263+
optional uint64 BlobDepotOnlineTime = 23 [(DefaultField) = true];
259264
}
260265

261266
message TEvBSGroupStateRequest {
262267
optional uint64 ChangedSince = 1;
268+
repeated int32 FieldsRequired = 2 [packed = true];
263269
}
264270

265271
message TEvBSGroupStateResponse {
@@ -299,12 +305,12 @@ message TSystemStateInfo {
299305
optional uint64 LimitBytes = 2;
300306
}
301307

302-
optional uint64 StartTime = 1;
303-
optional uint64 ChangeTime = 2;
308+
optional uint64 StartTime = 1 [(DefaultField) = true];
309+
optional uint64 ChangeTime = 2 [(DefaultField) = true];
304310
optional TLegacyNodeLocation SystemLocation = 3;
305-
repeated double LoadAverage = 4;
306-
optional uint32 NumberOfCpus = 5;
307-
optional EFlag SystemState = 6;
311+
repeated double LoadAverage = 4 [(DefaultField) = true];
312+
optional uint32 NumberOfCpus = 5 [(DefaultField) = true];
313+
optional EFlag SystemState = 6 [(DefaultField) = true];
308314
optional EFlag MessageBusState = 7;
309315
optional EFlag GRpcState = 8;
310316
optional uint32 NodeId = 9; // filled during merge
@@ -315,28 +321,29 @@ message TSystemStateInfo {
315321
optional uint32 RackId = 17;
316322
optional string Rack = 18;
317323
optional string Host = 19;
318-
optional string Version = 20;
319-
repeated TPoolStats PoolStats = 21;
320-
repeated TEndpoint Endpoints = 22;
321-
repeated string Roles = 23;
322-
repeated string Tenants = 24;
323-
optional string ClusterName = 25;
324-
optional uint64 MemoryUsed = 26;
325-
optional uint64 MemoryLimit = 27;
324+
optional string Version = 20 [(DefaultField) = true];
325+
repeated TPoolStats PoolStats = 21 [(DefaultField) = true];
326+
repeated TEndpoint Endpoints = 22 [(DefaultField) = true];
327+
repeated string Roles = 23 [(DefaultField) = true];
328+
repeated string Tenants = 24 [(DefaultField) = true];
329+
optional string ClusterName = 25 [(DefaultField) = true];
330+
optional uint64 MemoryUsed = 26 [(DefaultField) = true];
331+
optional uint64 MemoryLimit = 27 [(DefaultField) = true];
326332
optional EConfigState ConfigState = 28 [default = Consistent];
327333
optional uint64 MemoryUsedInAlloc = 29;
328-
optional double MaxDiskUsage = 30;
329-
optional NActorsInterconnect.TNodeLocation Location = 31;
334+
optional double MaxDiskUsage = 30 [(DefaultField) = true];
335+
optional NActorsInterconnect.TNodeLocation Location = 31 [(DefaultField) = true];
330336
optional int64 MaxClockSkewWithPeerUs = 32; // a positive value means the peer is ahead in time; a negative value means it's behind
331337
optional uint32 MaxClockSkewPeerId = 33;
332338
optional uint64 DisconnectTime = 34;
333339
optional TNodeSharedCache SharedCacheStats = 35; // TODO: use memory stats
334-
optional uint32 TotalSessions = 36;
335-
optional string NodeName = 37;
340+
optional uint32 TotalSessions = 36 [(DefaultField) = true];
341+
optional string NodeName = 37 [(DefaultField) = true];
336342
}
337343

338344
message TEvSystemStateRequest {
339345
optional uint64 ChangedSince = 1;
346+
repeated int32 FieldsRequired = 2 [packed = true];
340347
}
341348

342349
message TEvSystemStateResponse {

0 commit comments

Comments
 (0)