foundationdb icon indicating copy to clipboard operation
foundationdb copied to clipboard

DD: Build teams in batches to avoid slow task from DD

Open xumengpanda opened this issue 5 years ago • 2 comments

The current DD build all required teams in one big atomic block.

When there are a lot of teams to build, say over 6000 teams, DD will take tens of seconds (say 20 seconds) to build all teams without yield. This leads to slow task which makes DD non-responsive to other requests, such as heart beat. Slow tasks can lead to problems: such as cluster controller can mark a live DD as dead, and data balance can be blocked.

The solution to this issue is to break the non-stopping block of buildTeams() into smaller asynchronous blocks. When a lot of teams are to build, buildTeams() will build some of them (say 100 teams) and yield. Later, buildTeams() build another batch of teams.

This issue is related to Issue #2096.

xumengpanda avatar Sep 12 '19 23:09 xumengpanda

I might give this a try (if you think it's doable). I am a first time contributor

rlintott avatar Apr 28 '20 02:04 rlintott

I might give this a try (if you think it's doable). I am a first time contributor

Hi, sorry for replying late. Have you tried to compile FDB from source by following the manual: https://github.com/apple/foundationdb/wiki/FoundationDB-Development-Setup ?

xumengpanda avatar May 16 '20 04:05 xumengpanda