diff options
author | bazeltsev <bazeltsev@ydb.tech> | 2022-12-30 11:02:35 +0300 |
---|---|---|
committer | bazeltsev <bazeltsev@ydb.tech> | 2022-12-30 11:02:35 +0300 |
commit | 1a5a2b27e7c76da1d9e921121f480fad8989a961 (patch) | |
tree | b324e3cdcfe4155cdaba4514e581544b3ccf87fd | |
parent | bbb9ce84f6295f0ecdb2f124e861ab18a71aff16 (diff) | |
download | ydb-1a5a2b27e7c76da1d9e921121f480fad8989a961.tar.gz |
Improved clarity load actors
updated
-rw-r--r-- | ydb/docs/ru/core/_assets/load-actors.drawio | 1 | ||||
-rw-r--r-- | ydb/docs/ru/core/_assets/load-actors.svg | 4 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-key-value.md | 12 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-kqp.md | 82 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-load-stop.md | 45 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-memory.md | 36 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-overview.md | 70 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-pdisk-log.md | 12 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-pdisk-read.md | 12 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-pdisk-write.md (renamed from ydb/docs/ru/core/development/load-actors-pdisk.md) | 14 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-stop.md | 49 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-storage.md (renamed from ydb/docs/ru/core/development/load-actors-load-start.md) | 109 | ||||
-rw-r--r-- | ydb/docs/ru/core/development/load-actors-vdisk.md | 16 | ||||
-rw-r--r-- | ydb/docs/ru/core/toc_i.yaml | 26 |
14 files changed, 273 insertions, 215 deletions
diff --git a/ydb/docs/ru/core/_assets/load-actors.drawio b/ydb/docs/ru/core/_assets/load-actors.drawio new file mode 100644 index 0000000000..d99fd66831 --- /dev/null +++ b/ydb/docs/ru/core/_assets/load-actors.drawio @@ -0,0 +1 @@ +<mxfile host="Electron" modified="2022-12-29T12:00:29.606Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.7.4 Chrome/106.0.5249.199 Electron/21.3.3 Safari/537.36" etag="v5-aiSTWogSnbusoIV6B" version="20.7.4" type="device"><diagram id="ubN0F7Ct8m74YTRy8KRH" name="Page-1">5Vtde6I4FP41XnYf+ay9bLWd3R3nWbvd7dSrfSKkyhYJE+Io8+s3kQQliYUqIM7e+CQHOAlv3pycD+xZw+XmEwbx4gvyYdgz+/6mZ416pnnj2PSXCdJM4F5zwRwHfiYydoKn4Afkwj6XrgIfJoUbCUIhCeKi0ENRBD1SkAGM0bp42ysKi6PGYA4VwZMHQlX6NfDJIpMOnP5O/isM5gsxstHnV5ZA3MwFyQL4aL0nsu571hAjRLLWcjOEIcNO4JI993Dgaj4xDCNS5YFkfPcwXKcvj5Pp/T9mOnp4TV6uTCdT8x2EK/7GfLYkFRBgtIp8yLT0e9bdehEQ+BQDj11d0zWnsgVZhrRn0OYrighfRcNm/SAMhyhEmAoiFFH5XUIweoOSkE8DYgI3B1/QyGGjdINoCQlO6S3iAYH0erdQtstli71Fcm0uBJwc81zXDj/a4BB+BM6PoGlUQFNFrwagLAFUKvX3gMtpuw/coAbcXsHfky8/pm/j32e/PbqbB2uEn68MBbfJKEjeTgPvACwa8A4jZReRsm0VqYEGqDoIpgXKUoB67iRQlnNmoFS7NoLfAwqAjBQ1yzFremkYUMiwVY7XLAN3PMsFwHubbyH/Y0WoGsjlCTeETk0gO0WQHc2+1dm7xrbtTbm5g5F/y45hhnAIkiTwilgWiQo3AXlhB80vDu9N966MNvwM2nZS0fHpgc0HRJgs0BxFILzfSe8o4jjdU8u6U/E06+wUb3tC88ElS9AKe7B8m7KpFV0XgOeQlBlClQB7C+xoFljIMAwBCb4Xx9StOh9hggL6Zjm/XEPaxDcScbL35k/tuxqSIuvG0ZtNoSjDQVG0JWH+2iccJ+p5cg5iHkm7bW8CcUBhgLgyy49na1VyOlpWn4utdl8imXUkWxVFTstsHVRga+nyF/m6u2eMUMyF/0JCUu6cgxVBRcIfQ/ETOGdVtYh2RdZVptNpnqrqgX2G6VXWNd2QMHcA09actf4CsxCS83tnksNvuKrjcNOmdybmc27Kt+4YCDbv0/69SLIrrLeV9aJhB8HBbEXoApj9J4Iwy6SY/QlGm7RzjDc1gZs2xG2M8kYVZ7l5yp9AXedCLbYmFAQEMNIuAPY7a7Rtp2NG27i+dAa7VRlc1dNticGuAvzjCm4nQK2tB5ME4bPT1bou0nWgstVoyuBqT9AGU2UnZV/tM6bKtEBVKAFcfhZHScWUGJD3KFXqvLl6ArQTF8tZQrt/bFwsJ7+bi4sPo9hMUaDWDdxmUUALVJVz+YI3sDYfVuOu1ngF+pDsvNt6ILHu2ORsnicTVQSj3W0thqsQS36itIwVLtOdS4rs1VaUNbVTEAbziG0ByhHGpDtmBwIPhLf8wjLw/S1XdVakWAevwZBYTjHxqKvDGjpKyZnO2iyJJnH++Vs8RsA/zeo2U8fOI6KuuJyGqcIH02fWuxQMdVFmyyCqjju3CJeCoS7Z1DKGar5uG/xcCoK6mKhlBNWoaOt9fsUUngzGIYu/mexPCHxJNEbzS8E69wfKsHYbw7obiSXh9Yr2tOABl9V4Cx7tzsFtPigVZ3Z5VuuA/3pyHVY6QY6vw0qKrlt2TLtVh/0IDeukk9kIS/JUtVhcOeqo/G2JXMuUv25qmiXdqONcqrH6WNm/dhpaso0xj6WhXJ2RFTVMw65U0M9srBpiiVHTkaZ8FtvykWaq8fz/kSVOMyyRTyI5GDmWJbbsaTfNEjVtobJkl0DmoYgPkkVOioOp5KrLeLa0qnQguMdWS2RFzX3yql9DNWuSf9kgPmwQAvYfncLqut9WSFy4yj5av6U3GHa8yR7j14WiLLTtA48gnAitdNqZ4uJgVLw3AYlVP00q17iWUrnVvtVoLJFrqgmg5ugwHbEmWDJko1kSF1e/nBSZLIlBdNI0lBf00DKmbIlI8t64VJYN/bNz1HJLOZo7Ou2QVK3wduJPOqdVh9v7kw7t7v4+mh0ku//gWvf/AQ==</diagram></mxfile>
\ No newline at end of file diff --git a/ydb/docs/ru/core/_assets/load-actors.svg b/ydb/docs/ru/core/_assets/load-actors.svg new file mode 100644 index 0000000000..94ca021c11 --- /dev/null +++ b/ydb/docs/ru/core/_assets/load-actors.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than diagrams.net --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="461px" height="641px" viewBox="-0.5 -0.5 461 641" content="<mxfile host="Electron" modified="2022-12-29T11:51:36.536Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.7.4 Chrome/106.0.5249.199 Electron/21.3.3 Safari/537.36" etag="fmLuNjrHHU_9gJvZfuO-" version="20.7.4" type="device"><diagram id="ubN0F7Ct8m74YTRy8KRH" name="Page-1">5Vtde6I4FP41XnYf+ay9bLWd3R3nWbvd7dSrfSKkyhYJE+Io8+s3kQQliYUqIM7e+CQHOAlv3pycD+xZw+XmEwbx4gvyYdgz+/6mZ416pnnj2PSXCdJM4F5zwRwHfiYydoKn4Afkwj6XrgIfJoUbCUIhCeKi0ENRBD1SkAGM0bp42ysKi6PGYA4VwZMHQlX6NfDJIpMOnP5O/isM5gsxstHnV5ZA3MwFyQL4aL0nsu571hAjRLLWcjOEIcNO4JI993Dgaj4xDCNS5YFkfPcwXKcvj5Pp/T9mOnp4TV6uTCdT8x2EK/7GfLYkFRBgtIp8yLT0e9bdehEQ+BQDj11d0zWnsgVZhrRn0OYrighfRcNm/SAMhyhEmAoiFFH5XUIweoOSkE8DYgI3B1/QyGGjdINoCQlO6S3iAYH0erdQtstli71Fcm0uBJwc81zXDj/a4BB+BM6PoGlUQFNFrwagLAFUKvX3gMtpuw/coAbcXsHfky8/pm/j32e/PbqbB2uEn68MBbfJKEjeTgPvACwa8A4jZReRsm0VqYEGqDoIpgXKUoB67iRQlnNmoFS7NoLfAwqAjBQ1yzFremkYUMiwVY7XLAN3PMsFwHubbyH/Y0WoGsjlCTeETk0gO0WQHc2+1dm7xrbtTbm5g5F/y45hhnAIkiTwilgWiQo3AXlhB80vDu9N966MNvwM2nZS0fHpgc0HRJgs0BxFILzfSe8o4jjdU8u6U/E06+wUb3tC88ElS9AKe7B8m7KpFV0XgOeQlBlClQB7C+xoFljIMAwBCb4Xx9StOh9hggL6Zjm/XEPaxDcScbL35k/tuxqSIuvG0ZtNoSjDQVG0JWH+2iccJ+p5cg5iHkm7bW8CcUBhgLgyy49na1VyOlpWn4utdl8imXUkWxVFTstsHVRga+nyF/m6u2eMUMyF/0JCUu6cgxVBRcIfQ/ETOGdVtYh2RdZVptNpnqrqgX2G6VXWNd2QMHcA09actf4CsxCS83tnksNvuKrjcNOmdybmc27Kt+4YCDbv0/69SLIrrLeV9aJhB8HBbEXoApj9J4Iwy6SY/QlGm7RzjDc1gZs2xG2M8kYVZ7l5yp9AXedCLbYmFAQEMNIuAPY7a7Rtp2NG27i+dAa7VRlc1dNticGuAvzjCm4nQK2tB5ME4bPT1bou0nWgstVoyuBqT9AGU2UnZV/tM6bKtEBVKAFcfhZHScWUGJD3KFXqvLl6ArQTF8tZQrt/bFwsJ7+bi4sPo9hMUaDWDdxmUUALVJVz+YI3sDYfVuOu1ngF+pDsvNt6ILHu2ORsnicTVQSj3W0thqsQS36itIwVLtOdS4rs1VaUNbVTEAbziG0ByhHGpDtmBwIPhLf8wjLw/S1XdVakWAevwZBYTjHxqKvDGjpKyZnO2iyJJnH++Vs8RsA/zeo2U8fOI6KuuJyGqcIH02fWuxQMdVFmyyCqjju3CJeCoS7Z1DKGar5uG/xcCoK6mKhlBNWoaOt9fsUUngzGIYu/mexPCHxJNEbzS8E69wfKsHYbw7obiSXh9Yr2tOABl9V4Cx7tzsFtPigVZ3Z5VuuA/3pyHVY6QY6vw0qKrlt2TLtVh/0IDeukk9kIS/JUtVhcOeqo/G2JXMuUv25qmiXdqONcqrH6WNm/dhpaso0xj6WhXJ2RFTVMw65U0M9srBpiiVHTkaZ8FtvykWaq8fz/kSVOMyyRTyI5GDmWJbbsaTfNEjVtobJkl0DmoYgPkkVOioOp5KrLeLa0qnQguMdWS2RFzX3yql9DNWuSf9kgPmwQAvYfncLqut9WSFy4yj5av6U3GHa8yR7j14WiLLTtA48gnAitdNqZ4uJgVLw3AYlVP00q17iWUrnVvtVoLJFrqgmg5ugwHbEmWDJko1kSF1e/nBSZLIlBdNI0lBf00DKmbIlI8t64VJYN/bNz1HJLOZo7Ou2QVK3wduJPOqdVh9v7kw7t7v4+mh0ku//gWvf/AQ==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="0" y="0" width="460" height="640" fill="none" stroke="none" pointer-events="all"/><rect x="200" y="320" width="220" height="80" rx="12" ry="12" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="220" y="440" width="80" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 460px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PDisk</div></div></div></foreignObject><text x="260" y="464" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PDisk</text></switch></g><rect x="220" y="350" width="80" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 370px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">VDisk</div></div></div></foreignObject><text x="260" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">VDisk</text></switch></g><path d="M 230 535 C 230 526.72 243.43 520 260 520 C 267.96 520 275.59 521.58 281.21 524.39 C 286.84 527.21 290 531.02 290 535 L 290 585 C 290 593.28 276.57 600 260 600 C 243.43 600 230 593.28 230 585 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 290 535 C 290 543.28 276.57 550 260 550 C 243.43 550 230 543.28 230 535" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 573px; margin-left: 231px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Device</div></div></div></foreignObject><text x="260" y="576" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Device</text></switch></g><path d="M 260 390 L 260 433.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 260 438.88 L 256.5 431.88 L 260 433.63 L 263.5 431.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 260 480 L 260 513.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 260 518.88 L 256.5 511.88 L 260 513.63 L 263.5 511.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 245 200 L 245 210 Q 245 220 255 220 L 300 220 Q 310 220 310 226.82 L 310 233.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 310 238.88 L 306.5 231.88 L 310 233.63 L 313.5 231.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="200" y="160" width="90" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 180px; margin-left: 201px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Key-value<br />Tablet</div></div></div></foreignObject><text x="245" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Key-value...</text></switch></g><path d="M 310 280 L 310 313.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 310 318.88 L 306.5 311.88 L 310 313.63 L 313.5 311.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="200" y="240" width="220" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 260px; margin-left: 201px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Distributed Storage Proxy</div></div></div></foreignObject><text x="310" y="264" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Distributed Storage Proxy</text></switch></g><path d="M 375 200 L 375 210 Q 375 220 365 220 L 320 220 Q 310 220 310 226.82 L 310 233.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 310 238.88 L 306.5 231.88 L 310 233.63 L 313.5 231.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="330" y="160" width="90" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 180px; margin-left: 331px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data Shard<br />Tablet</div></div></div></foreignObject><text x="375" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Data Shard...</text></switch></g><path d="M 310 120 L 310 130 Q 310 140 320 140 L 365 140 Q 375 140 375 146.82 L 375 153.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 375 158.88 L 371.5 151.88 L 375 153.63 L 378.5 151.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="250" y="80" width="120" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Query Processor</div></div></div></foreignObject><text x="310" y="104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Query Processor</text></switch></g><rect x="320" y="350" width="80" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 370px; margin-left: 321px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">VDisk</div></div></div></foreignObject><text x="360" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">VDisk</text></switch></g><path d="M 360 390 L 360 433.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 360 438.88 L 356.5 431.88 L 360 433.63 L 363.5 431.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="320" y="440" width="80" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 460px; margin-left: 321px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PDisk</div></div></div></foreignObject><text x="360" y="464" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PDisk</text></switch></g><path d="M 360 480 L 360 513.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 360 518.88 L 356.5 511.88 L 360 513.63 L 363.5 511.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="235" y="320" width="150" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 335px; margin-left: 236px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Distributed Storage Group</div></div></div></foreignObject><text x="310" y="339" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Distributed Storage Group</text></switch></g><rect x="40" y="80" width="120" height="40" rx="6" ry="6" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 100px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">KqpLoad</div></div></div></foreignObject><text x="100" y="104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">KqpLoad</text></switch></g><rect x="40" y="160" width="120" height="40" rx="6" ry="6" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">KeyValueLoad</div></div></div></foreignObject><text x="100" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">KeyValueLoad</text></switch></g><rect x="40" y="240" width="120" height="40" rx="6" ry="6" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 260px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">StorageLoad</div></div></div></foreignObject><text x="100" y="264" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">StorageLoad</text></switch></g><rect x="40" y="350" width="120" height="40" rx="6" ry="6" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 370px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">VDiskLoad</div></div></div></foreignObject><text x="100" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">VDiskLoad</text></switch></g><rect x="40" y="430" width="120" height="60" rx="9" ry="9" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 460px; margin-left: 41px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PDiskWriteLoad, PDiskReadLoad, PDiskLogLoad</div></div></div></foreignObject><text x="100" y="464" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PDiskWriteLoad, PDis...</text></switch></g><path d="M 160 100 L 243.63 100" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 248.88 100 L 241.88 103.5 L 243.63 100 L 241.88 96.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 180 L 193.63 180" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.88 180 L 191.88 183.5 L 193.63 180 L 191.88 176.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 260 L 193.63 260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.88 260 L 191.88 263.5 L 193.63 260 L 191.88 256.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 370 L 213.63 370" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 218.88 370 L 211.88 373.5 L 213.63 370 L 211.88 366.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 460 L 213.63 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 218.88 460 L 211.88 463.5 L 213.63 460 L 211.88 456.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 180 600 L 180 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><rect x="55" y="30" width="90" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 45px; margin-left: 56px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b><font style="font-size: 14px;">Load actors</font></b></div></div></div></foreignObject><text x="100" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Load actors</text></switch></g><rect x="245" y="30" width="130" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 45px; margin-left: 246px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b><font style="font-size: 14px;">YDB </font></b><span style="font-size: 14px;"><b>components</b></span></div></div></div></foreignObject><text x="310" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">YDB components</text></switch></g><path d="M 330 535 C 330 526.72 343.43 520 360 520 C 367.96 520 375.59 521.58 381.21 524.39 C 386.84 527.21 390 531.02 390 535 L 390 585 C 390 593.28 376.57 600 360 600 C 343.43 600 330 593.28 330 585 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 390 535 C 390 543.28 376.57 550 360 550 C 343.43 550 330 543.28 330 535" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 573px; margin-left: 331px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Device</div></div></div></foreignObject><text x="360" y="576" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Device</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file diff --git a/ydb/docs/ru/core/development/load-actors-key-value.md b/ydb/docs/ru/core/development/load-actors-key-value.md index 94161a96f4..f5fa939cc7 100644 --- a/ydb/docs/ru/core/development/load-actors-key-value.md +++ b/ydb/docs/ru/core/development/load-actors-key-value.md @@ -1,9 +1,13 @@ -# Key-Value нагрузка +# KeyValueLoad -## Структура {#proto} +Нагружает Key-value таблетку. + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TKeyValueLoadStart { +message TKeyValueLoad { message TWorkerConfig { optional string KeyPrefix = 1; optional uint32 MaxInFlight = 2; @@ -17,5 +21,3 @@ message TKeyValueLoadStart { repeated TWorkerConfig Workers = 7; } ``` - -{% include notitle [addition](../_includes/addition.md) %} diff --git a/ydb/docs/ru/core/development/load-actors-kqp.md b/ydb/docs/ru/core/development/load-actors-kqp.md index 9ab7101d66..e89db74350 100644 --- a/ydb/docs/ru/core/development/load-actors-kqp.md +++ b/ydb/docs/ru/core/development/load-actors-kqp.md @@ -1,9 +1,18 @@ -# KQP нагрузка +# KqpLoad -## Структура {#proto} +Подает нагрузку на слой Query Processor и нагружает все компоненты кластера {{ ydb-short-name }}. Нагрузка, которую генерирует актор, аналогична нагрузке от подкоманды [workload](../reference/ydb-cli/commands/workload/index.md) {{ ydb-short-name }} CLI, но запускается изнутри кластера. Позволяет запускать два типа нагрузки: + +* **Stock** — симулирует работу склада интернет-магазина: создает заказы из нескольких товаров, получает список заказов по клиенту. +* **Key-value** — использует БД как key-value хранилище. + +Результатом теста является количество успешных транзакций в секунду, количество повторных попыток исполнения транзакций и количество ошибок. + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TKqpLoadStart { +message TKqpLoad { message TStockWorkload { optional uint64 ProductCount = 1 [default = 100]; optional uint64 Quantity = 2 [default = 1000]; @@ -24,6 +33,7 @@ message TKqpLoadStart { optional uint32 WindowDuration = 3; optional string WorkingDir = 4; optional uint32 NumOfSessions = 5; + optional bool IncreaseSessions = 11; optional bool DeleteTableOnFinish = 6; optional uint32 UniformPartitionsCount = 7; optional uint32 WorkloadType = 8; @@ -34,35 +44,31 @@ message TKqpLoadStart { } ``` -## Параметры {#options} - -### TKqpLoadStart +## Параметры актора {#options} Параметр | Описание --- | --- -`TStockWorkload[]` | [link](#stock-workload). -`TKvWorkload[]` | [link](#kv-workload). +`TStockWorkload[]` | [Параметры нагрузки stock](#stock-workload). +`TKvWorkload[]` | [Параметры нагрузки key-value](#kv-workload). `Tag` | Тег нагрузки. Если не задан, то тег будет присвоен автоматически.<br>Тип: `uint64`.<br>Необязательный. `DurationSeconds` | Длительность теста в секундах.<br>Тип: `uint32`.<br>Обязательный. `WindowDuration` | Размер окна для агрегации статистики.<br>Тип: `uint32`.<br>Обязательный. `WorkingDir` | Путь директории, в которой будут созданы тестовые таблицы.<br>Тип: `string`.<br>Обязательный. `NumOfSessions` | Количество параллельных потоков, подающих нагрузку. Каждый поток пишет в свою сессию.<br>Тип: `uint32`.<br>Обязательный. -`DeleteTableOnFinish` | обязательный. Удалять ли таблицы после завершения работы нагрузки. Неудаление полезно в сценарии долгого предварительного создания большой таблицы и последующими (читающими) тестами.<br>Тип: `bool`.<br>Обязательный. +`DeleteTableOnFinish` | Удалять ли таблицы после завершения работы нагрузки. Например, Оставлять таблицы может быть полезно в сценарии долгого предварительного создания большой таблицы и последующими (читающими) тестами.<br>Тип: `bool`.<br>Обязательный. `UniformPartitionsCount` | Количество партиций, создаваемых в тестовых таблицах.<br>Тип: `uint32`.<br>Обязательный. `WorkloadType` | Позволяет выбрать тип нагрузки.<br>Key-Value:<ul><li>`0` — UpsertRandom;</li><li>`1` — InsertRandom;</li><li>`2` — SelectRandom.</li></ul>Stok:<ul><li>`0` — InsertRandomOrder;</li><li>`1` — SubmitRandomOrder;</li><li>`2` — SubmitSameOrder;</li><li>`3` — GetRandomCustomerHistory;</li><li>`4` — GetCustomerHistory.</li></ul>Тип: `uint32`.<br>Обязательный. -`Workload` | Одно из значений:<ul><li>`TStockWorkload Stock` — ;</li><li>`TKvWorkload Kv` — .</li></ul> +`Workload` | Одно из значений:<ul><li>`TStockWorkload Stock` — тип нагрузки Stock;</li><li>`TKvWorkload Kv` — тип нагрузки key-value.</li></ul> ### TStockWorkload {#stock-workload} -<!-- Параметр | Описание --- | --- -optional uint64 ProductCount = 1 [default = 100]; -optional uint64 Quantity = 2 [default = 1000]; -optional uint64 OrderCount = 3 [default = 100]; -optional uint64 Limit = 4 [default = 10]; -optional bool PartitionsByLoad = 5 [default = true]; - --> +`ProductCount` | Количество видов товаров.<br>Тип: `uint64`.<br>Значение по умолчанию: `100`.<br>Необязательный. +`Quantity` | Количество товаров каждого вида на складе.<br>Тип: `uint64`.<br>Значение по умолчанию: `1000`.<br>Необязательный. +`OrderCount` | Первоначальное количество заказов в БД.<br>Тип: `uint64`.<br>Значение по умолчанию: `100`.<br>Необязательный. +`Limit` | Минимальное количество шардов для таблиц.<br>Тип: `uint64`.<br>Значение по умолчанию: `10`.<br>Необязательный. +`PartitionsByLoad` | Включение/выключение автошардирования.<br>Тип: `bool`.<br>Значение по умолчанию: `true`.<br>Необязательный. ### TKvWorkload {#kv-workload} @@ -77,24 +83,28 @@ optional bool PartitionsByLoad = 5 [default = true]; ## Примеры {#example} -Нагрузка базы `/slice/db` типа STOCK простыми UPSERT-запросами в 64 потока длительностью 30 секунд. До начала работы создает необходимые для работы таблицы, после нагрузки удаляет их. +Ниже приведена спецификация актора, который запускает stock-нагрузку БД `/slice/db`, выполняя простые UPSERT-запросы в 64 потока в течение 30 секунд. Перед началом работы создаются необходимые таблицы, после завершения они удаляются. -```proto -KqpLoadStart: { - DurationSeconds: 30 - WindowDuration: 1 - WorkingDir: "/slice/db" - NumOfSessions: 64 - UniformPartitionsCount: 1000 - DeleteTableOnFinish: 1 - WorkloadType: 0 - Stock: { - ProductCount: 100 - Quantity: 1000 - OrderCount: 100 - Limit: 10 - } -} -``` +{% list tabs %} -{% include notitle [addition](../_includes/addition.md) %} +- Embedded UI + + ```proto + KqpLoad: { + DurationSeconds: 30 + WindowDuration: 1 + WorkingDir: "/slice/db" + NumOfSessions: 64 + UniformPartitionsCount: 1000 + DeleteTableOnFinish: 1 + WorkloadType: 0 + Stock: { + ProductCount: 100 + Quantity: 1000 + OrderCount: 100 + Limit: 10 + } + } + ``` + +{% endlist %} diff --git a/ydb/docs/ru/core/development/load-actors-load-stop.md b/ydb/docs/ru/core/development/load-actors-load-stop.md deleted file mode 100644 index dc6eafc430..0000000000 --- a/ydb/docs/ru/core/development/load-actors-load-stop.md +++ /dev/null @@ -1,45 +0,0 @@ -# Остановка нагрузки - -С помощью актора LoadStop вы можете остановить нагрузку на указанной ноде. - -## Структура {#proto} - -```proto -message TLoadStop { - optional uint64 Tag = 1; - optional bool RemoveAllTags = 2; -} -``` - -## Параметры {#options} - -### TLoadStop - -Параметр | Описание ---- | --- -`Tag` | Тег нагрузки, может быть задан для остановки конкретной нагрузки. Тег можно посмотреть в UI load-actor `uint64`. -`RemoveAllTags` | Остановить все нагрузочные акторы на ноде `bool`. - -## Примеры {#examples} - -Остановить акторы с тегом `123` на ноде с идентификатором `1`: - -```proto -NodeId: 1 -Event: { - LoadStop: { - Tag: 123 - } -} -``` - -Остановить все нагрузочные акторы на ноде с идентификатором `1`: - -```proto -NodeId: 1 -Event: { - LoadStop: { - RemoveAllTags: true - } -} -``` diff --git a/ydb/docs/ru/core/development/load-actors-memory.md b/ydb/docs/ru/core/development/load-actors-memory.md index 942cbac1f6..5fed46bfb7 100644 --- a/ydb/docs/ru/core/development/load-actors-memory.md +++ b/ydb/docs/ru/core/development/load-actors-memory.md @@ -1,9 +1,13 @@ -# Проверка производительности памяти +# MemoryLoad -## Структура {#proto} +Тестирует производительность аллокаторов памяти. Аллоцирует блоки памяти указанного размера через заданные промежутки времени. Результатом теста + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TMemoryLoadStart { +message TMemoryLoad { optional uint64 Tag = 1; optional uint32 DurationSeconds = 2; optional uint64 BlockSize = 3; @@ -11,9 +15,7 @@ message TMemoryLoadStart { } ``` <!-- -## Параметры {#options} - -### MemoryLoadStart +## Параметры актора {#options} Параметр | Описание --- | --- @@ -25,13 +27,17 @@ message TMemoryLoadStart { ## Примеры {#examples} -```proto -NodeId: 1 -Event: { MemoryLoadStart: { - DurationSeconds: 120 - BlockSize: 4096 - IntervalUs: 1000 -}} -``` +{% list tabs %} -{% include notitle [addition](../_includes/addition.md) %} +- CLI + + ```proto + NodeId: 1 + Event: { MemoryLoad: { + DurationSeconds: 120 + BlockSize: 4096 + IntervalUs: 1000 + }} + ``` + +{% endlist %} diff --git a/ydb/docs/ru/core/development/load-actors-overview.md b/ydb/docs/ru/core/development/load-actors-overview.md index ef9a0ecf9d..4fe68b9964 100644 --- a/ydb/docs/ru/core/development/load-actors-overview.md +++ b/ydb/docs/ru/core/development/load-actors-overview.md @@ -1,24 +1,35 @@ # Обзор тестирования с помощью нагружающих акторов -Тестирование с помощью нагружающих акторов поможет вам понять, какое влияние на производительность системы оказало ваше изменение. +Тестирование производительности системы является важным этапом добавления изменений в ядро {{ ydb-short-name }}. С помощью [нагрузочного тестирования](https://ru.wikipedia.org/wiki/Нагрузочное_тестирование) вы можете: -Нагружающие акторы создаются на узлах кластера {{ ydb-short-name }}. Вы можете создать любое количество акторов на любом из узлов. Комбинация акторов разных [типов](#load-actor-type) позволяет запускать множество видов нагрузки. +* определить показатели производительности и сравнить их со значениями до изменений; +* проверить работоспособность системы на высоких или пиковых нагрузках. -## Типы акторов {#load-actor-type} +Сама по себе задача нагрузить высокопроизводительную распределенную систему является нетривиальной. Часто разработчику приходится запускать несколько инстансов клиента, чтобы добиться требуемой загрузки сервера. {{ ydb-short-name }} реализует простой и удобный механизм подачи нагрузки — нагружающие акторы. Акторы создаются и запускаются в самом кластере, таким образом не нужно привлекать дополнительные ресурсы для запуска клиентов. Нагружающие акторы могут быть запущены на произвольных узлах кластера — на одном, на всех или только на выбранных. Вы можете создать любое количество акторов на любом из узлов. + +Нагружающие акторы позволяют тестировать как систему в целом, так отдельные ее компоненты: + +<center> + +![load-actors](../_assets/load-actors.svg) + +</center> -С помощью различных типов акторов вы можете протестировать производительность как системы в целом, так и отдельных компонентов. +Например, вы можете подать [нагрузку на Distributed Storage](load-actors-storage.md) без задействования слоев таблеток и Query Processor. Таким образом можно изолированно тестировать отдельные слои системы и эффективно находить узкие места. Комбинация акторов разных типов позволяет запускать множество видов нагрузки. + +## Типы акторов {#load-actor-type} Тип | Описание --- | --- -[KqpLoadStart](load-actors-kqp.md) | Нагружающий актор для подачи нагрузки на KQP часть и, соответственно, на весь кластер в целом. Аналогичен подкоманде [workload {{ ydb-short-name }} CLI](../reference/ydb-cli/commands/workload/index.md), есть два подвида — stock и key-value. -[KeyValueLoadStart](load-actors-key-value.md) | Нагружающий актор для подачи нагрузки на KvTablet. -[LoadStart](load-actors-load-start.md) | Нагружающий актор, подающий нагрузку от лица таблетки. Имитирует таблетку, создает себе TabletId и пишет в указанные storage-группы. -[VDiskLoadStart](load-actors-vdisk.md) | Нагружающий актор для подачи нагрузки на VDisk. Имитирует DSProxy и пишет в локальный VDisk. -[PDiskLoadStart](load-actors-pdisk.md) | Нагружающий актор для подачи write-only нагрузки на PDisk. Имитирует VDisk. -[PDiskReadLoadStart](load-actors-pdisk-read.md) | Нагружающий актор для подачи read-only нагрузки на PDisk. Имитирует VDisk. -[PDiskLogLoadStart](load-actors-pdisk-log.md) | Специальный нагружающий актор, написанный для тестирования вырезания из середины лога PDisk. Имитирует VDisk. Не является нагружающим, в первую очередь направлен на тестирование корректности. -[MemoryLoadStart](load-actors-memory.md) | Специальный нагружающий актор, проверяет производительность работы памяти. Кажется, используется в math bench - иногда запускается на кластере и рисует график времени работы. -[LoadStop](load-actors-load-stop.md) | С помощью этого актора можно остановить нагрузку либо с конкретным тегом, либо со всеми. +[KqpLoad](load-actors-kqp.md) | Подает нагрузку на слой Query Processor и нагружает все компоненты кластера. +[KeyValueLoad](load-actors-key-value.md) | Нагружает Key-value таблетку. +[StorageLoad](load-actors-storage.md) | Нагружает Distributed Storage без задействования слоев таблеток и Query Processor. +[VDiskLoad](load-actors-vdisk.md) | Тестирует производительность записи на VDisk. +[PDiskWriteLoad](load-actors-pdisk-write.md) | Тестирует производительность записи на PDisk. +[PDiskReadLoad](load-actors-pdisk-read.md) | Тестирует производительность чтения с PDisk. +[PDiskLogLoad](load-actors-pdisk-log.md) | Тестирует корректность вырезания из середины лога PDisk. +[MemoryLoad](load-actors-memory.md) | Тестирует производительность аллокаторов памяти. +[Stop](load-actors-stop.md) | С помощью этого актора можно остановить все акторы, либо только указанные. ## Запуск нагрузки {load-actor-start} @@ -27,7 +38,7 @@ * Embedded UI кластера — позволяет создать по спецификации и запустить нагружающий актор либо на текущем узле, либо сразу на всех узлах тенанта. * Утилита `ydbd` — позволяет на любой узел кластера отправить спецификацию актора с указанием, на каких узлах необходимо создать и запустить актор. -В качестве примера рассмотрим создание и запуск актора KqpLoadStart. Актор обращается к БД `/slice/db` как к key-value хранилищу в 64 потока, длительность нагрузки — 30 секунд. Перед началом работы актор создает необходимые таблицы, после окончания удаляет их. Тег будет присвоен нагрузке автоматически. +В качестве примера рассмотрим создание и запуск актора KqpLoad. Актор обращается к БД `/slice/db` как к key-value хранилищу в 64 потока, длительность нагрузки — 30 секунд. Перед началом работы актор создает необходимые таблицы, после окончания удаляет их. При создании актору будет присвоен автоматически сгенерированный тег. Этот же тег будет присвоен и результату теста. {% list tabs %} @@ -37,7 +48,7 @@ 1. В поле ввода/вывода вставьте спецификацию актора: ```proto - KqpLoadStart: { + KqpLoad: { DurationSeconds: 30 WindowDuration: 1 WorkingDir: "/slice/db" @@ -56,15 +67,18 @@ } ``` - 1. Чтобы создать и запустить актор на всех нодах кластера, выберите опцию **Run on all nodes**. Иначе актор будет запущен только на текущей ноде. - 1. Нажмите кнопку **Start new load**. В поле ввода/вывода появится следующее сообщение: + 1. Чтобы создать и запустить актор, нажмите кнопку: + * **Start new load on current node** — нагрузка будет запущена на текущем узле. + * **Start new load on all tenant nodes** — нагрузка будет запущена на всех узлах тенанта. + + В поле ввода/вывода появится следующее сообщение: - ```text - {"status":"OK","tag":1} - ``` + ```text + {"status":"OK","tag":1} + ``` - * `status` — статус запуска нагрузки; - * `tag` — тег, который был присвоен нагрузке. + * `status` — статус запуска нагрузки; + * `tag` — тег, который был присвоен нагрузке. - CLI @@ -73,7 +87,7 @@ ```proto NodeId: 1 Event: { - KqpLoadStart: { + KqpLoad: { DurationSeconds: 30 WindowDuration: 1 WorkingDir: "/slice/db" @@ -93,7 +107,7 @@ } ``` - * `NodeId` — идентификатор ноды, на которой нужно запустить актор. Чтобы указать несколько нод, перечислите их в отдельных строках: + * `NodeId` — идентификатор узла, на котором нужно запустить актор. Чтобы указать несколько узлов, перечислите их в отдельных строках: ```proto NodeId: 1 @@ -109,14 +123,12 @@ 1. Запустите актор: ```bash - ydbd bs-load-test --server <endpoint> --protobuf "$(cat proto_file)" + ydbd load-test --server <endpoint> --protobuf "$(cat <proto_file>)" ``` - * `endpoint` — grpc-эндпоит ноды (наприме, `grpc://<address>:31021`, где `address` — адрес узла кластера). + * `endpoint` — grpc-эндпоит узла (например, `grpc://<address>:<port>`, где `address` — адрес узла, `port` — grpc-порт узла). * `proto_file` — путь к файлу со спецификацией актора. - Мы не узнаем тег. - {% endlist %} ## Просмотр результата тестирования {#view-results} @@ -127,7 +139,7 @@ - Embedded UI - 1. Откройте страницу управления нагружающими акторами на узле (например, `http://<address>:8765/actors/load`, где `address` — адрес узла кластера, на котором была запущена нагрузка). + 1. Откройте страницу управления нагружающими акторами на узле (например, `http://<address>:<port>/actors/load`, где `address` — адрес узла, `port` — http-порт мониторинга узла, на котором была запущена нагрузка). 1. Нажмите кнопку **Results**. Будут отображены результаты завершенных тестирований. Найдите результат с соответствующим тегом. diff --git a/ydb/docs/ru/core/development/load-actors-pdisk-log.md b/ydb/docs/ru/core/development/load-actors-pdisk-log.md index 494a17a8ff..0fcc5c33e5 100644 --- a/ydb/docs/ru/core/development/load-actors-pdisk-log.md +++ b/ydb/docs/ru/core/development/load-actors-pdisk-log.md @@ -1,9 +1,13 @@ -# PDisk нагрузка, пишущая в лог +# PDiskLogLoad -## Структура {#proto} +Тестирует вырезание из середины лога PDisk. Не является нагружающим, в первую очередь направлен на тестирование корректности. + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TPDiskLogLoadStart { +message TPDiskLogLoad { message TWorkerConfig { optional NKikimrBlobStorage.TVDiskID VDiskId = 1; optional uint32 MaxInFlight = 2; @@ -28,5 +32,3 @@ message TPDiskLogLoadStart { optional bool IsWardenlessTest = 8 [default = false]; } ``` - -{% include notitle [addition](../_includes/addition.md) %} diff --git a/ydb/docs/ru/core/development/load-actors-pdisk-read.md b/ydb/docs/ru/core/development/load-actors-pdisk-read.md index 30c1a68eed..a7bfb6467a 100644 --- a/ydb/docs/ru/core/development/load-actors-pdisk-read.md +++ b/ydb/docs/ru/core/development/load-actors-pdisk-read.md @@ -1,9 +1,13 @@ -# PDisk нагрузка на чтение +# PDiskReadLoad -## Структура {#proto} +Подает на PDisk нагрузку read-only. Имитирует VDisk. Актор создает на указанном PDisk чанки, записывает в них случайные данные и выполняет чтение из них с указанными параметрами. Результатом теста является производительность чтения в байтах в секунду. + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TPDiskReadLoadStart { +message TPDiskReadLoad { message TChunkInfo { optional uint32 Slots = 1; // number of slots per chunk optional uint32 Weight = 2; // probability weight @@ -23,5 +27,3 @@ message TPDiskReadLoadStart { optional bool IsWardenlessTest = 13 [default = false]; } ``` - -{% include notitle [addition](../_includes/addition.md) %} diff --git a/ydb/docs/ru/core/development/load-actors-pdisk.md b/ydb/docs/ru/core/development/load-actors-pdisk-write.md index 4af6f7ff54..9a31655663 100644 --- a/ydb/docs/ru/core/development/load-actors-pdisk.md +++ b/ydb/docs/ru/core/development/load-actors-pdisk-write.md @@ -1,8 +1,10 @@ -# PDisk нагрузка на запись +# PDiskWriteLoad -Представляется VDisk и пишет на PDisk данные, и в чанки, и в лог. Самостоятельно выделяет чанки для записи и освобождает в конце работы. +Подает на PDisk нагрузку write-only. Имитирует VDisk. Актор создает на указанном PDisk чанки и записывает в них случайные данные с указанными параметрами. Результатом теста является производительность записи в байтах в секунду. -## Структура {#proto} +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} <!-- ```proto @@ -11,7 +13,7 @@ enum ELogMode { LOG_SEQUENTIAL = 2; LOG_NONE = 3; } -message TPDiskLoadStart { +message TPDiskWriteLoad { message TChunkInfo { optional uint32 Slots = 1; // number of slots per chunk optional uint32 Weight = 2; // probability weight @@ -40,7 +42,7 @@ enum ELogMode { LOG_NONE = 3; } -message TPDiskLoadStart { +message TPDiskWriteLoad { message TChunkInfo { optional uint32 Slots = 1; // количество слотов в чанке. Фактически определяет размер записей/чтений, // которой можно расчитать, разделив размер чанка на количество слотов @@ -68,5 +70,3 @@ message TPDiskLoadStart { optional bool IsWardenlessTest = 13 [default = false]; // позволяет использовать в тестах, где нет NodeWarden } ``` - -{% include notitle [addition](../_includes/addition.md) %} diff --git a/ydb/docs/ru/core/development/load-actors-stop.md b/ydb/docs/ru/core/development/load-actors-stop.md new file mode 100644 index 0000000000..cf3e9db082 --- /dev/null +++ b/ydb/docs/ru/core/development/load-actors-stop.md @@ -0,0 +1,49 @@ +# Stop + +С помощью этого актора можно остановить все или только указанные акторы. + +## Спецификация актора {#proto} + +```proto +message TStop { + optional uint64 Tag = 1; + optional bool RemoveAllTags = 2; +} +``` + +## Параметры актора {#options} + +Параметр | Описание +--- | --- +`Tag` | Тег нагрузки, может быть задан для остановки конкретной нагрузки. Тег можно посмотреть в Embedded UI.<br>Тип: `uint64`. +`RemoveAllTags` | Остановить все нагрузочные акторы на узле.<br>Тип: `bool`. + +## Примеры {#examples} + +{% list tabs %} + +- CLI + + Спецификация актора для остановки нагрузки с тегом `123` на узле с идентификатором `1`: + + ```proto + NodeId: 1 + Event: { + Stop: { + Tag: 123 + } + } + ``` + + Спецификация актора для остановки всей нагрузки на узле с идентификатором `1`: + + ```proto + NodeId: 1 + Event: { + Stop: { + RemoveAllTags: true + } + } + ``` + +{% endlist %} diff --git a/ydb/docs/ru/core/development/load-actors-load-start.md b/ydb/docs/ru/core/development/load-actors-storage.md index 670ff9f735..7a5a91c1be 100644 --- a/ydb/docs/ru/core/development/load-actors-load-start.md +++ b/ydb/docs/ru/core/development/load-actors-storage.md @@ -1,16 +1,18 @@ -# DSProxy нагрузка +# StorageLoad -Представляется таблеткой и пишет в группу. +Нагружает Distributed Storage без задействования слоев таблеток и Query Processor. Результатом теста является производительность записи на Distributed Storage в блобах в секунду. -## Структура {#proto} +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TLoadStart { +message TStorageLoad { message TRequestInfo { optional float SendTime = 1; optional uint64 Type = 2; optional uint32 Size = 3; - optional EPutHandleClass PutHandleClass = 4; + optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 4; } message TTabletInfo { optional uint64 TabletId = 1; @@ -27,14 +29,14 @@ message TLoadStart { optional uint32 MaxInFlightRequests = 4; optional uint32 MaxInFlightBytes = 5; repeated TIntervalInfo FlushIntervals = 6; - optional EPutHandleClass PutHandleClass = 7; + optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 7; optional bool Soft = 8; optional uint32 MaxInFlightReadRequests = 9; optional uint32 MaxInFlightReadBytes = 10; repeated TIntervalInfo ReadIntervals = 11; repeated TSizeInfo ReadSizes = 12; optional uint64 MaxTotalBytesWritten = 13; - optional EGetHandleClass GetHandleClass = 14; + optional NKikimrBlobStorage.EGetHandleClass GetHandleClass = 14; }; optional uint64 Tag = 1; optional uint32 DurationSeconds = 2; @@ -44,7 +46,7 @@ message TLoadStart { optional uint64 ScheduleRoundingUs = 6; } ``` - +<!-- ## Примеры {#example} **Читающая нагрузка** @@ -53,49 +55,60 @@ message TLoadStart { Вторая часть основная, читающая. Читает запросами размера `$SIZE`, запросы отправляет каждые `${INTERVAL}` микросекунд. Можно его задать в 0, тогда этот параметр не будет играть роли. Конфигурация ограничивает количество запросов в полете числом `${IN_FLIGHT}`. -```proto -NodeId: ${NODEID} -Event: { LoadStart: { - DurationSeconds: ${DURATION} - ScheduleThresholdUs: 0 - ScheduleRoundingUs: 0 - Tablets: { - Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 } - Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } - WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 50000 MaxUs: 50000 } } - MaxInFlightRequests: 1 - - ReadSizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } - ReadIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } } - MaxInFlightReadRequests: ${IN_FLIGHT} - FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } } - PutHandleClass: ${PUT_HANDLE_CLASS} - GetHandleClass: ${GET_HANDLE_CLASS} - Soft: true - } -}} -``` +{% list tabs %} + +- CLI + + ```proto + NodeId: ${NODEID} + Event: { StorageLoad: { + DurationSeconds: ${DURATION} + ScheduleThresholdUs: 0 + ScheduleRoundingUs: 0 + Tablets: { + Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 } + Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } + WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 50000 MaxUs: 50000 } } + MaxInFlightRequests: 1 + + ReadSizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } + ReadIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } } + MaxInFlightReadRequests: ${IN_FLIGHT} + FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } } + PutHandleClass: ${PUT_HANDLE_CLASS} + GetHandleClass: ${GET_HANDLE_CLASS} + Soft: true + } + }} + ``` + +{% endlist %} **Пишущая нагрузка** Пишет в группу `$GROUPID` нагрузку длительностью `$DURATION` секунд. Пишет размерами `$SIZE`, ограничивая количество запросов в полете числом `$IN_FLIGHT`. -```proto -NodeId: ${NODEID} -Event: { LoadStart: { - DurationSeconds: ${DURATION} - ScheduleThresholdUs: 0 - ScheduleRoundingUs: 0 - Tablets: { - Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 } - Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } - WriteIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } } - MaxInFlightRequests: ${IN_FLIGHT} - FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } } - PutHandleClass: ${PUT_HANDLE_CLASS} - Soft: true - } -}} -``` +{% list tabs %} -{% include notitle [addition](../_includes/addition.md) %} +- CLI + + ```proto + NodeId: ${NODEID} + Event: { StorageLoad: { + DurationSeconds: ${DURATION} + ScheduleThresholdUs: 0 + ScheduleRoundingUs: 0 + Tablets: { + Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 } + Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} } + WriteIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } } + MaxInFlightRequests: ${IN_FLIGHT} + FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } } + PutHandleClass: ${PUT_HANDLE_CLASS} + Soft: true + } + }} + ``` + +{% endlist %} + --> diff --git a/ydb/docs/ru/core/development/load-actors-vdisk.md b/ydb/docs/ru/core/development/load-actors-vdisk.md index c7bfc89bee..b592230b0b 100644 --- a/ydb/docs/ru/core/development/load-actors-vdisk.md +++ b/ydb/docs/ru/core/development/load-actors-vdisk.md @@ -1,9 +1,13 @@ -# VDisk нагрузка +# VDiskLoad -## Структура {#proto} +Подает на VDisk нагрузку write-only. Имитирует Distributed Storage Proxy. Результатом теста является производительность записи в операциях в секунду. + +{% include notitle [addition](../_includes/addition.md) %} + +## Спецификация актора {#proto} ```proto -message TVDiskLoadStart { +message TVDiskLoad { optional uint64 Tag = 1; // full VDisk identifier @@ -11,7 +15,7 @@ message TVDiskLoadStart { reserved 3; // obsolete field reserved 4; // obsolete field - optional TGroupInfo GroupInfo = 16; + optional NKikimrBlobStorage.TGroupInfo GroupInfo = 16; // tablet id, channel and generation used in blob ids and barriers optional uint64 TabletId = 5; @@ -34,7 +38,7 @@ message TVDiskLoadStart { optional uint64 InFlightPutBytesMax = 12; // put handle class - optional EPutHandleClass PutHandleClass = 13; + optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 13; // a distribution of intervals between barrier advances repeated TIntervalInfo BarrierAdvanceIntervals = 14; @@ -43,5 +47,3 @@ message TVDiskLoadStart { optional uint32 StepDistance = 15; } ``` - -{% include notitle [addition](../_includes/addition.md) %} diff --git a/ydb/docs/ru/core/toc_i.yaml b/ydb/docs/ru/core/toc_i.yaml index d11c8e33c2..c22620d747 100644 --- a/ydb/docs/ru/core/toc_i.yaml +++ b/ydb/docs/ru/core/toc_i.yaml @@ -21,7 +21,7 @@ items: - { name: Работа с YDB CLI, include: { mode: link, path: reference/ydb-cli/toc_p.yaml } } - { name: Работа с YDB SDK, include: { mode: link, path: reference/ydb-sdk/toc_p.yaml } } - name: Разработка - hidden: true + # hidden: true items: - name: Ядро items: @@ -29,24 +29,24 @@ items: items: - name: Обзор href: development/load-actors-overview.md - - name: KqpLoadStart + - name: KqpLoad href: development/load-actors-kqp.md - - name: KeyValueLoadStart + - name: KeyValueLoad href: development/load-actors-key-value.md - - name: LoadStart - href: development/load-actors-load-start.md - - name: VDiskLoadStart + - name: StorageLoad + href: development/load-actors-storage.md + - name: VDiskLoad href: development/load-actors-vdisk.md - - name: PDiskLoadStart - href: development/load-actors-pdisk.md - - name: PDiskReadLoadStart + - name: PDiskWriteLoad + href: development/load-actors-pdisk-write.md + - name: PDiskReadLoad href: development/load-actors-pdisk-read.md - - name: PDiskLogLoadStart + - name: PDiskLogLoad href: development/load-actors-pdisk-log.md - - name: MemoryLoadStart + - name: MemoryLoad href: development/load-actors-memory.md - - name: LoadStop - href: development/load-actors-load-stop.md + - name: Stop + href: development/load-actors-stop.md # Footer - { name: Вопросы и ответы, include: { mode: link, path: faq/toc_p.yaml } } |