Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
serbel324 committed Dec 25, 2024
1 parent d47baec commit fca432e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ In addition to user requests, the distributed storage is also loaded by the back

### Available disk time {#diskTimeAvailable}

The PDisk scheduler manages the requests execution order from its client VDisks. PDisk fairly divides the device's time among its VDisks, ensuring that each of the $N$ VDisks is guaranteed $1/N$ seconds of the physical device's working time each second. Based on the information about the number of neighboring VDisks for each VDisk, denoted as $N$, and the configurable parameter `DiskTimeAvailableScale` an estimate of the operation time with the physical device that the PDisk scheduler allocates to the client VDisk is calculated. This estimate is called DiskTimeAvailable and is calculated using the formula:
The PDisk scheduler manages the execution order of requests from its client VDisks. PDisk fairly divides the device's time among its VDisks, ensuring that each of the $N$ VDisks is guaranteed $1/N$ seconds of the physical device's working time each second. We estimate the available time of the physical device that the PDisk scheduler allocates to the client VDisk based on the information about the number of neighboring VDisks for each VDisk, denoted as $N$, and the configurable parameter `DiskTimeAvailableScale`. This estimate is called DiskTimeAvailable and is calculated using the formula:

$$
DiskTimeAvailable = \dfrac{1000000000}{N} \cdot \dfrac{DiskTimeAvailableScale}{1000}
Expand Down Expand Up @@ -60,7 +60,7 @@ The {{ ydb-short-name }} distributed storage can ensure low response times only

### Performance metrics configuration

Since the coefficients for the request cost formula were measured on specific physical devices from development clusters, and the performance of other devices may vary, the metrics may require additional adjustments to be used as a source of guarantees for Distributed Storage. Performance metric parameters can be managed via [dynamic cluster configuration](../../../maintenance/manual/dynamic-config.md) and the Immediate Controls mechanism without restarting {{ ydb-short-name }} processes.
Since the coefficients for the request cost formula were measured on specific physical devices from development clusters, and the performance of other devices may vary, the metrics may require additional adjustments to be used as a source of Distributed Storage low response time guarantees. Performance metric parameters can be managed via [dynamic cluster configuration](../../../maintenance/manual/dynamic-config.md) and the Immediate Controls mechanism without restarting {{ ydb-short-name }} processes.

| Parameter Name | Description | Units | Default Value |
|---------------------------------------|-----------------------------------------------------------------------------------------------|-------------------|---------------|
Expand Down Expand Up @@ -95,4 +95,8 @@ D = \frac{UserDiskCost + InternalDiskCost + CompactionDiskCost + DefragDiskCost
$$
Set the `disk_time_available_scale_<used-device-type>` configuration parameter to the calculated rounded value of $D$, multiplied by 1000. We assume that the physical devices in the user cluster are comparable in performance to the baseline. So the `disk_time_available_scale_<used-device-type>` parameter is set to 1000 by default.

Such a load can be created, for example, using [Storage LoadActor](../../../contributor/load-actors-storage.md).
{% note tip %}

You can use [Storage LoadActor](../../../contributor/load-actors-storage.md) to generate the load.

{% endnote %}
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ Performance metrics for Distributed Storage. For more information, see [{#T}](di

| Name | Description | Units |
|---|---|---|
| DiskTimeAvailable and total Cost relation | The relation of the request flow total cost to the available disk time. If the TotalCost line is above the DiskTimeAvailable line, then the load flow exceeds the allowed limit | arbitrary units |
| Cost by source | The total cost of the request flow by load source | arbitrary units |
| DiskTimeAvailable and total Cost relation | The relation of the total cost of the requests to the available disk time. If the TotalCost line is above the DiskTimeAvailable line, then the load exceeds the allowed limit | arbitrary units |
| Cost by source | The total cost of the requests by load source | arbitrary units |
| Total burst duration | The total duration during which VDisks were in the [underflow state](distributed-storage-performance.md#burstDetection). If the value is greater than 0, load bursts are present in the system | ms |

For convenience, cost and available disk time metrics on the graphs are presented in nanoseconds.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,8 @@ D = \frac{UserDiskCost + InternalDiskCost + CompactionDiskCost + DefragDiskCost
$$
Далее надо задать параметр `disk_time_available_scale_<тип используемых устройств>` конфигурации равным рассчитанному значению $D$, умноженному на 1000 и округленному. Предполагается, что физические устройства на пользовательском кластере по производительности сравнимы с эталоном, поэтому по умолчанию параметр `disk_time_available_scale_<тип используемых устройств>` равен 1000.

{% note tip %}

Создать подобную нагрузку можно, например, с помощью [Storage LoadActor](../../../contributor/load-actors-storage.md).

{% endnote %}

0 comments on commit fca432e

Please sign in to comment.