Skip to content

Commit 4b65210

Browse files
authored
PDisk's noop scheduler (#12366)
1 parent 03548c9 commit 4b65210

9 files changed

+343
-208
lines changed

ydb/core/blobstorage/lwtrace_probes/blobstorage_probes.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ struct TEventTypeField {
156156
PROBE(PDiskAddToScheduler, GROUPS("PDisk", "PDiskRequest"), \
157157
TYPES(TPDiskIdField, ui64, double, ui64, bool, ui64), \
158158
NAMES("pdisk", "reqId", "creationTimeSec", "owner", "isFast", "priorityClass")) \
159+
PROBE(PDiskAddToNoopScheduler, GROUPS("PDisk", "PDiskRequest"), \
160+
TYPES(TPDiskIdField, ui64, double, ui64, bool, ui64), \
161+
NAMES("pdisk", "reqId", "creationTimeSec", "owner", "isFast", "priorityClass")) \
159162
PROBE(PDiskRouteRequest, GROUPS("PDisk", "PDiskRequest"), \
160163
TYPES(TPDiskIdField, ui64, double, ui64, bool, ui64), \
161164
NAMES("pdisk", "reqId", "creationTimeSec", "owner", "isFast", "priorityClass")) \
@@ -265,11 +268,16 @@ struct TEventTypeField {
265268
NAMES("pdisk", "entireUpdateMs", "inputQueueMs", "schedulingMs", "processingMs", "waitingMs")) \
266269
PROBE(PDiskEnqueueAllDetails, GROUPS("PDisk"), \
267270
TYPES(ui64, size_t, size_t, size_t, double), \
268-
NAMES("pdisk", "initialQueueSize", "processedReqs", "pushedToForsetiReqs", "spentTimeMs")) \
271+
NAMES("pdisk", "initialQueueSize", "processedReqs", "pushedToSchedulerReqs", "spentTimeMs")) \
269272
PROBE(PDiskUpdateStarted, GROUPS("PDisk"), TYPES(ui64), NAMES("pdisk")) \
270-
PROBE(PDiskProcessLogWriteQueue, GROUPS("PDisk"), TYPES(ui64, size_t, size_t), NAMES("pdisk", "logQueueSize", "commitQueueSize")) \
271-
PROBE(PDiskProcessChunkReadQueue, GROUPS("PDisk"), TYPES(ui64, size_t), NAMES("pdisk", "queueSize")) \
272-
PROBE(PDiskProcessChunkWriteQueue, GROUPS("PDisk"), TYPES(ui64, size_t), NAMES("pdisk", "queueSize")) \
273+
PROBE(PDiskProcessLogWriteQueue, GROUPS("PDisk"), TYPES(ui64, size_t, size_t, size_t), NAMES("pdisk", "remainingLogWritesSize", "logWritesSize", "commitsSize")) \
274+
PROBE(PDiskProcessLogWriteBatch, GROUPS("PDisk"), TYPES(ui64, size_t, size_t), NAMES("pdisk", "logQueueSize", "commitQueueSize")) \
275+
PROBE(PDiskProcessChunkReadQueue, GROUPS("PDisk"), \
276+
TYPES(ui64, size_t, size_t, size_t, double), \
277+
NAMES("pdisk", "initialQueueSize", "processed", "processedBytes", "processedCostMs")) \
278+
PROBE(PDiskProcessChunkWriteQueue, GROUPS("PDisk"), \
279+
TYPES(ui64, size_t, size_t, size_t, double), \
280+
NAMES("pdisk", "initialQueueSize", "processed", "processedBytes", "processedCostMs")) \
273281
PROBE(PDiskStartWaiting, GROUPS("PDisk"), TYPES(ui64), NAMES("pdisk")) \
274282
PROBE(PDiskUpdateEnded, GROUPS("PDisk"), TYPES(ui64, float), NAMES("pdisk", "entireUpdateMs")) \
275283
PROBE(DSProxyGetEnqueue, GROUPS("DSProxy", "LWTrackStart"), TYPES(), NAMES()) \

ydb/core/blobstorage/pdisk/blobstorage_pdisk_config.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ struct TPDiskSchedulerConfig {
3030
ui64 LoadWeight = LoadWeightDefault;
3131
ui64 LowReadWeight = LowWeightDefault;
3232

33+
size_t MaxChunkReadsPerCycle = 16;
34+
double MaxChunkReadsDurationPerCycleMs = 0.25;
35+
size_t MaxChunkWritesPerCycle = 8;
36+
double MaxChunkWritesDurationPerCycleMs = 1;
37+
3338
TString ToString(bool isMultiline) const {
3439
const char *x = isMultiline ? "\n" : "";
3540
TStringStream str;
@@ -44,6 +49,10 @@ struct TPDiskSchedulerConfig {
4449
str << " OtherReadWeight# " << OtherReadWeight << x;
4550
str << " LoadWeight# " << LoadWeight << x;
4651
str << " LowReadWeight# " << LowReadWeight << x;
52+
str << " MaxChunkReadsPerCycle# " << MaxChunkReadsPerCycle << x;
53+
str << " MaxChunkReadsDurationPerCycleMs# " << MaxChunkReadsDurationPerCycleMs << x;
54+
str << " MaxChunkWritesPerCycle# " << MaxChunkWritesPerCycle << x;
55+
str << " MaxChunkWritesDurationPerCycleMs# " << MaxChunkWritesDurationPerCycleMs << x;
4756
str << "}" << x;
4857
return str.Str();
4958
}
@@ -156,6 +165,7 @@ struct TPDiskConfig : public TThrRefBase {
156165
NKikimrBlobStorage::TPDiskSpaceColor::E SpaceColorBorder = NKikimrBlobStorage::TPDiskSpaceColor::GREEN;
157166

158167
ui32 CompletionThreadsCount = 1;
168+
bool UseNoopScheduler = false;
159169

160170
bool MetadataOnly = false;
161171

@@ -312,6 +322,7 @@ struct TPDiskConfig : public TThrRefBase {
312322
str << " MaxMetadataMegabytes# " << MaxMetadataMegabytes << x;
313323
str << " SpaceColorBorder# " << SpaceColorBorder << x;
314324
str << " CompletionThreadsCount# " << CompletionThreadsCount << x;
325+
str << " UseNoopScheduler# " << (UseNoopScheduler ? "true" : "false") << x;
315326
str << "}";
316327
return str.Str();
317328
}
@@ -400,6 +411,10 @@ struct TPDiskConfig : public TThrRefBase {
400411
if (cfg->HasCompletionThreadsCount()) {
401412
CompletionThreadsCount = cfg->GetCompletionThreadsCount();
402413
}
414+
415+
if (cfg->HasUseNoopScheduler()) {
416+
UseNoopScheduler = cfg->GetUseNoopScheduler();
417+
}
403418
}
404419
};
405420

0 commit comments

Comments
 (0)