aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/netliba/socket/stdafx.cpp
diff options
context:
space:
mode:
authordanilalexeev <danilalexeev@yandex-team.com>2024-11-01 12:14:42 +0300
committerdanilalexeev <danilalexeev@yandex-team.com>2024-11-01 12:36:12 +0300
commit069b63effd588adb2c58c4c79ebfdb6f204f3d1b (patch)
treeaeb76489525e9d8cbbc7db5fd2053f5c87348d21 /library/cpp/netliba/socket/stdafx.cpp
parent822b193dc57ac0f38537808e4e935c7bccb476ba (diff)
downloadydb-069b63effd588adb2c58c4c79ebfdb6f204f3d1b.tar.gz
YT-22261: Add distributed throttler to Cypress Proxies
To moderate user’s request load on Cypress we use throttlers. Request rate is measured per-user and per-workload-type (read, write). At non Sequoia cluster, such throughput to individual Cypress-shards is managed locally by each master respectively. In case of Sequoia, throttling is distributed between multiple Cypress Proxies and configurable user rate limits are fetched periodically from master. \ In detail, each `TObjectService.Execute` request at Cypress Proxy is appended to a single `TRequestQueue`. User requests are dispatched into queues by using . Requests are dispatched by *user* and *workload category* using a `TPerUserAndWorkloadRequestQueueDispatcher` object, which is inherited from the template `TPerKeyRequestQueueDispatcher<T>` with `T = std::pair<std::string, EUserWorkloadType>`.\ At Sequoia, each said `TRequestQueue` is assigned a distributed throttler by weight with an ‘adaptive’ mode. Bytes throttling is not supported. commit_hash:f31713e095652c978eb05c7f9743b07fc1eede08
Diffstat (limited to 'library/cpp/netliba/socket/stdafx.cpp')
0 files changed, 0 insertions, 0 deletions