-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new parameters CompactionBlobThreshold(SSD) #2984
base: main
Are you sure you want to change the base?
Conversation
0a68bf1
to
d7981e1
Compare
d7981e1
to
26dbd0a
Compare
26dbd0a
to
628fb9c
Compare
cloud/blockstore/libs/storage/partition/part_actor_compaction.cpp
Outdated
Show resolved
Hide resolved
cloud/blockstore/libs/storage/partition/part_actor_compaction.cpp
Outdated
Show resolved
Hide resolved
cloud/blockstore/libs/storage/partition/part_actor_compaction.cpp
Outdated
Show resolved
Hide resolved
628fb9c
to
34e358e
Compare
34e358e
to
cb931e8
Compare
…dSSD. It is thresholds in bytes, if data size less threshold it will be written to mixed channel and to merged channel in other case.
cb931e8
to
237b5ee
Compare
@@ -635,6 +635,9 @@ class TStorageConfig | |||
bool GetAutomaticallyEnableBufferCopyingAfterChecksumMismatch() const; | |||
[[nodiscard]] bool GetNonReplicatedVolumeDirectAcquireEnabled() const; | |||
[[nodiscard]] TDuration GetDestroyVolumeTimeout() const; | |||
|
|||
ui32 GetCompactionToMergedThreshold() const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это же про HDD? Может тогда так явно и написать?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По аналогии с отстальными барьерами, переназвать несложно. Если здесь переназывать, то и остальные не помешало бы, а то как-то странно получается.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если трешолд распространяется на все типы дисков то ок, но в данном случае он же только к HDD относится
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
я про такое GetThrottlingEnabled() - GetThrottlingEnabledSSD(), GetWriteBlobThreshold - GetWriteBlobThresholdSSD
@@ -635,6 +635,9 @@ class TStorageConfig | |||
bool GetAutomaticallyEnableBufferCopyingAfterChecksumMismatch() const; | |||
[[nodiscard]] bool GetNonReplicatedVolumeDirectAcquireEnabled() const; | |||
[[nodiscard]] TDuration GetDestroyVolumeTimeout() const; | |||
|
|||
ui32 GetCompactionToMergedThreshold() const; | |||
ui32 GetCompactionToMergedThresholdSSD() const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я вот не уверен что это вообще нужно. Фича про то что для HDD дисков маленькие блобы должны лежать на SSD. Для SSD они и так всегда на них лежат
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
точка проверки одна ... для SSD будет всегда выставлен в ноль и будет работать по-старому, оно так как-то понятнее
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем параметр который всегда выставлен в 0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
при компакшне мы параметр в любом случае проверим ... или можно конечно параметр убрать и в proto-helpers сразу возвращать ноль для не HDD, тоже вариант
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я все еще не понимаю, зачем нужны два параметра для фичи которая работает только для HDD
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я выше написал вариант решения.
У нас есть код компакшн, которому все равно какие у нас диски и он на основании параметра пишет либо в мержед либо в миксед ... можно добавить проверку на диск прямо туда, а можно сделать через возврат значения параметра ...
Может завтра захотим на SSD делить компакшн по каналам.
@@ -664,7 +690,7 @@ void TCompactionActor::AddBlobs(const TActorContext& ctx) | |||
auto request = std::make_unique<TEvPartitionPrivate::TEvAddBlobsRequest>( | |||
RequestInfo->CallContext, | |||
CommitId, | |||
TVector<TAddMixedBlob>(), | |||
std::move(mixedBlobs), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ты же проверил обработку TEvPartitionPrivate::TEvAddBlobsRequest? Раньше на компакшене мы не клали mixed блобы, теперь кладем. Там точно ничего менять не надо?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
обязательно проверил, он умеет так и этим пользуются Write акторы
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Write акторы не передают Mode = ADD_COMPACTION_RESULT. Ты уверен что при компакшене будут корректно обновлены счетчики?
https://github.com/ydb-platform/nbs/blob/main/cloud/blockstore/libs/storage/partition/part_actor_addblobs.cpp#L111
Этот код работает только для merged блобов, для mixed ничего делать не надо?
It is thresholds for the compaction process in bytes. If data size less threshold it will be written to mixed channel and to merged channel in other case.