tikv / rocksdb

A library that provides an embeddable, persistent key-value store for fast storage.
http://rocksdb.org
GNU General Public License v2.0
120 stars 93 forks source link

Add write amp rate limiter #368

Closed v01dstar closed 2 months ago

v01dstar commented 2 months ago

This PR are following PRs combined:

The WriteAmpBasedRateLimiter automatically adjusts rate limiting by predicting I/O trends using heuristic methods based on the write amplification factor. e.g. a high write throughput with HIGH priority (flush) implies, highly likely, there will be LOW priority write throughput soon, because RocksDB needs to compact the L0 files to lower levels, it is better to provision in advance. Compared to the default rate limiter, it reduces the likelihood of triggering write stalls and helps prevent I/O jitter.

Comments:

v01dstar commented 2 months ago

/run-all-test

purelind commented 2 months ago

/run-all-tests

purelind commented 2 months ago

/run-all-tests

v01dstar commented 2 months ago

/run-all-tests

v01dstar commented 2 months ago

/run-all-tests

v01dstar commented 2 months ago

@hbisheng

ti-chi-bot[bot] commented 2 months ago

@LykxSassinator: adding LGTM is restricted to approvers and reviewers in OWNERS files.

In response to [this](https://github.com/tikv/rocksdb/pull/368#pullrequestreview-2321051558): >overall LGTM Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
ti-chi-bot[bot] commented 2 months ago

@SpadeA-Tang: adding LGTM is restricted to approvers and reviewers in OWNERS files.

In response to [this](https://github.com/tikv/rocksdb/pull/368#pullrequestreview-2323908008): > Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
wuhuizuo commented 2 months ago

wait for merging of #376.

wuhuizuo commented 2 months ago

/lgtm

refresh

ti-chi-bot[bot] commented 2 months ago

@wuhuizuo: adding LGTM is restricted to approvers and reviewers in OWNERS files.

In response to [this](https://github.com/tikv/rocksdb/pull/368#issuecomment-2370459178): >/lgtm > >refresh Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
ti-chi-bot[bot] commented 2 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: LykxSassinator, SpadeA-Tang, wuhuizuo

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files: - ~~[OWNERS](https://github.com/tikv/rocksdb/blob/8.10.tikv/OWNERS)~~ [LykxSassinator,SpadeA-Tang] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
ti-chi-bot[bot] commented 2 months ago

[LGTM Timeline notifier]

Timeline:

ti-chi-bot[bot] commented 2 months ago

New changes are detected. LGTM label has been removed.

v01dstar commented 1 month ago

Merge https://github.com/tikv/rocksdb/pull/381 with this for future cherry-pick.