Improve performance of storage server rollbacks
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
When a storage server does a rollback, it must through away its existing data structures (like the byte sample). This take enough time to cause significant slow tasks.
We should add yields in the destructor of the storage server to break up this work into smaller chunks.
In addition, we should investigate the relative speeds of storage server recovery after a rollback compared to a full restart of the process, to look for other optimizations.
Contributor guide
Research direction
Start by locating the storage server rollback path and its destructor, then compare recovery after rollback with a full process restart. Measure where existing data structures such as the byte sample are discarded and identify whether yielding would reduce slow tasks. Done means the rollback cleanup is measurably improved and any additional recovery optimizations are documented or implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases, distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100