summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralextarazanov <[email protected]>2023-04-03 12:32:13 +0300
committeralextarazanov <[email protected]>2023-04-03 12:32:13 +0300
commit0813fea18a4670f4a98cea7c42a766d61fabcf02 (patch)
tree7d1efb239b94bb7155e689f00c074565079cff6b
parent7af8ba98bad602c669b4cabc3b38924064aca8ca (diff)
translation
Перевод для https://st.yandex-team.ru/ Локальная сборка без ошибок.
-rw-r--r--ydb/docs/en/core/_includes/load-actors-interval.md7
-rw-r--r--ydb/docs/en/core/development/load-actors-storage.md10
-rw-r--r--ydb/docs/en/core/development/load-actors-vdisk.md57
3 files changed, 33 insertions, 41 deletions
diff --git a/ydb/docs/en/core/_includes/load-actors-interval.md b/ydb/docs/en/core/_includes/load-actors-interval.md
new file mode 100644
index 00000000000..13e9175ac82
--- /dev/null
+++ b/ydb/docs/en/core/_includes/load-actors-interval.md
@@ -0,0 +1,7 @@
+An interval written as a repeated `TIntervalInfo` field is calculated by the following algorithm:
+
+* An element from the `TIntervalInfo` array is selected at random with the probability proportionate to its weight.
+* For an element of the `TIntervalUniform` type, the value is chosen with equal probability in the range Min-Max. `Min-Max` (if `MinMs/MaxMs` is used, the value is in milliseconds; if `MinUs/MaxUs` is used, the value is in microseconds).
+* For an element of the `TIntervalPoisson` type, the interval is selected using the formula `Min(log(-x / Frequency), MaxIntervalMs)`, where `x` is a random value in the interval `[0, 1]`. As a result, the intervals follow the Poisson distribution with the given `Frequency`, but with the interval within `MaxIntervalMs`.
+
+A similar approach is used for the probabilistic distribution of the size of the written data. However, in this case, only the data size follows a uniform probability distribution, within the interval `[Min, Max]`.
diff --git a/ydb/docs/en/core/development/load-actors-storage.md b/ydb/docs/en/core/development/load-actors-storage.md
index 25d7e71fe65..e9bb087121f 100644
--- a/ydb/docs/en/core/development/load-actors-storage.md
+++ b/ydb/docs/en/core/development/load-actors-storage.md
@@ -16,15 +16,19 @@ You can generate two types of load:
| ` DurationSeconds` | Load duration. |
| ` Tablets` | The load is generated on behalf of a tablet with the following parameters:<ul><li>` TabletId`: Tablet ID. It must be unique for each load actor.</li><li>` Channel`: Tablet channel.</li><li>` GroupId`: ID of the VDisk group to get loaded.</li><li>` Generation`: Tablet generation.</li></ul> |
| ` WriteSizes` | Size of the data to write. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `WriteSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
-| ` WriteIntervals` | Interval between requests under interval load, in microseconds. It is selected randomly for each request from the `MinUs`-`MaxUs` range. You can set multiple `WriteIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
+| ` WriteIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the records loaded at intervals (in milliseconds). You can set multiple `WriteIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
| ` MaxInFlightWriteRequests` | Maximum number of simultaneously processed write requests. |
| ` ReadSizes` | Size of the data to read. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `ReadSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
-| ` ReadIntervals` | Interval between requests under interval load, in microseconds. It is selected randomly for each request from the `MinUs`-`MaxUs` range. You can set multiple `ReadIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
+| ` ReadIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the queries loaded by intervals (in milliseconds). You can set multiple `ReadIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
| ` MaxInFlightReadRequests` | Maximum number of simultaneously processed read requests. |
-| ` FlushIntervals` | Interval between the requests to flush the data written by the StorageLoad actor, in microseconds. It is selected randomly from the `MinUs`-`MaxUs` range. You can set multiple `FlushIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
+| ` FlushIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals (in microseconds) between the queries used to delete data written by the StorageLoad actor. You can set multiple `FlushIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
| ` PutHandleClass` | Class of data writes to the disk subsystem. If the `TabletLog` value is set, the write operation has the highest priority. |
| ` GetHandleClass` | Class of data reads from the disk subsystem. If the `FastRead` is set, the read operation is performed with the highest speed possible. |
+### Parameters of probabilistic distribution {#params}
+
+{% include [load-actors-params](../_includes/load-actors-interval.md) %}
+
## Examples {#examples}
### Write load {#write}
diff --git a/ydb/docs/en/core/development/load-actors-vdisk.md b/ydb/docs/en/core/development/load-actors-vdisk.md
index ba4a1cee932..d63fe9dbdf0 100644
--- a/ydb/docs/en/core/development/load-actors-vdisk.md
+++ b/ydb/docs/en/core/development/load-actors-vdisk.md
@@ -1,49 +1,30 @@
# VDiskLoad
-Generates a write-only load on the VDisk. Simulates a Distributed Storage Proxy. The test outputs the write performance in operations per second.
+Generates a write-only load on the VDisk. Simulates a Distributed Storage Proxy. The test outputs the VDisk write performance in operations per second.
{% include notitle [addition](../_includes/addition.md) %}
## Actor parameters {#options}
-```proto
-message TVDiskLoad {
- optional uint64 Tag = 1;
+{% include [load-actors-params](../_includes/load-actors-params.md) %}
- // full VDisk identifier
- optional NKikimrBlobStorage.TVDiskID VDiskId = 2;
+| Parameter | Description |
+--- | ---
+| `VDiskId` | Parameters of the VDisk used to generate load.<ul><li>`GroupID`: Group ID.</li><li>`GroupGeneration`: Group generation.</li><li>`Ring`: Group ring ID.</li><li>`Domain`: Ring fail domain ID.</li><li>`VDisk`: Index of the VDisk in the fail domain.</li></ul> |
+| `GroupInfo` | Description of the group hosting the loaded VDisk (of the appropriate generation). |
+| `TabletId` | ID of the tablet that generates the load. It must be unique for each load actor. |
+| `Channel` | ID of the channel inside the tablet that will be specified in the BLOB write and garbage collection commands. |
+| `DurationSeconds` | The total test time in seconds; when it expires, the load stops automatically. |
+| `WriteIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the records. |
+| `WriteSizes` | Size of the data to write. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `WriteSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. |
+| `InFlightPutsMax` | Maximum number of concurrent BLOB write queries against the VDisk (TEvVPut queries); if omitted, the number of queries is unlimited. |
+| `InFlightPutBytesMax` | Maximum number of bytes in the concurrent BLOB write queries against the VDisk (TEvVPut-requests). |
+| `PutHandleClass` | Class of data writes to the disk subsystem. If the `TabletLog` value is set, the write operation has the highest priority. |
+| `BarrierAdvanceIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the advance of the garbage collection barrier and the write step. |
+| `StepDistance` | Distance between the currently written step `Gen:Step` of the BLOB and its currently collected step. The higher is the value, the more data is stored. Data is written from `Step = X` and deleted from all the BLOBs where `Step = X - StepDistance`. The `Step` is periodically incremented by one (with the `BarrierAdvanceIntervals` period). |
- reserved 3; // obsolete field
- reserved 4; // obsolete field
- optional NKikimrBlobStorage.TGroupInfo GroupInfo = 16;
+### Parameters of probabilistic distribution {#params}
- // tablet id, channel and generation used in blob ids and barriers
- optional uint64 TabletId = 5;
- optional uint32 Channel = 6;
- optional uint32 Generation = 7;
+{% include [load-actors-params](../_includes/load-actors-interval.md) %}
- // duration of the test in seconds
- optional uint32 DurationSeconds = 8;
-
- // a distribution of intervals between adjacent writes
- repeated TIntervalInfo WriteIntervals = 9;
-
- // a distribution of write block sizes (expressed in bytes of BlobSize; i.e. PartSize bytes are actually written)
- repeated TSizeInfo WriteSizes = 10;
-
- // maximum number of unconfirmed parallel writes
- optional uint32 InFlightPutsMax = 11;
-
- // soft maximum of total in flight put bytes
- optional uint64 InFlightPutBytesMax = 12;
-
- // put handle class
- optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 13;
-
- // a distribution of intervals between barrier advances
- repeated TIntervalInfo BarrierAdvanceIntervals = 14;
-
- // minimum distance kept between current Step of written blobs and CollectStep of barriers
- optional uint32 StepDistance = 15;
-}
-```
+<!-- ## Примеры {#examples} -->