apple / apple/foundationdb

Improve performance of storage server rollbacks

Open
#1,548 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.