Evaluate if the priority for remote tLog to peek data from log router is correct
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
In Log Router (LR), the task priority for remote tLog to peek data from log router is normal priority, lower than LR’s pullAsyncData() priority.
It seems that LR should use peek priority for remote tLog’s peek. Otherwise, when LR is busy, LR's buffered data will be blocked by other operations, especially the pullAsyncData(),
If LR's data cannot be timely peeked and popped by remote tLog, LR will have to throttle itself due to memory pressure and 5-second limitation.
Changing the priority is easy. Evaluating the change to confirm it won't cause any harm is the majority of the work.
https://github.com/apple/foundationdb/blob/7e2a6ee35899edb6a17636a6f8a5e91fb6c46cd2/fdbserver/LogRouter.actor.cpp#L406
Contributor guide
Research direction
Start in LogRouter.actor.cpp around line 406 and inspect the remote tLog peek priority alongside LR’s pullAsyncData() priority. Evaluate the scheduling change under a busy Log Router, including whether buffered data can be peeked and popped promptly without causing harmful effects. Done means the priority change is supported by sufficient evidence or its risks are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100