Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSS: delaying writes in a more granular way #19

Closed
2 tasks done
isaac-io opened this issue Jun 21, 2022 · 2 comments
Closed
2 tasks done

OSS: delaying writes in a more granular way #19

isaac-io opened this issue Jun 21, 2022 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@isaac-io
Copy link
Contributor

isaac-io commented Jun 21, 2022

Objectives

  • Slow down writes gradually to prevents stalls
  • Stable performance over time

Product Requirements

Existing

The delayed write option in RocksDB is used to slow down writes when flush or compaction can’t keep up with the incoming write rate. This mechanism ensures the write rate will be aligned with the HW capabilities. This mechanism monitors three parameters to identify stalls (number of unflushed memtables, number of files in L0, and the urgency level of pending flushes). In case a threshold of one of them is exceeded, the delayed write limits the write rate to the constant delayed_write_rate value.

New

When delayed write is enabled and active, the write rate is decreased gradually to moderate the write stalls. It currently does not take memory limitation under consideration and does not stop writes when a memory limit is reached. This might cause OOM error, which can be fixed with a memory monitoring feature.

Tests

  • High write workload vs. RocksDB
  • See decreased performance instead of stalls
  • We can test in on HDD on smaller tests
  • Look at the memory consumption during the test

Tracked Tasks

@isaac-io isaac-io changed the title OSS: OSS: delaying writes in a more granular way Jun 21, 2022
@Yuval-Ariel
Copy link
Contributor

needs_flush_speedup_ also needs to be fixed - SPDB-655

@Yuval-Ariel Yuval-Ariel self-assigned this Jun 22, 2022
@bosmatt bosmatt added the enhancement New feature or request label Jun 22, 2022
@isaac-io
Copy link
Contributor Author

isaac-io commented Jun 22, 2022

Updated to reflect needs_flush_speedup. I opened child issues and referenced them in the issue descriptions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants