apple / apple/foundationdb

Evaluate if the priority for remote tLog to peek data from log router is correct

Open
#4,154 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.