Skip to content
Jingyu Zhou edited this page Nov 17, 2021 · 9 revisions

Demo Steps

TOML -> shards (PR #4843)

[configuration]
config = 'triple'
storageEngineType = 3
processesPerMachine = 3
coordinators = 3
machineCount = 15
splits = "a:b:c"

=> TestConfig => SimulationConfig => DatabaseConfiguration: shards

newSeedServers() add shard info into InitializeStorageRequest

storageServer() adds req.storageTeamId and req.shardInfo

modify storage server by adding req.shardInfo

Demo limitations

  • 1 SS : 1 team (1 TLog group)

    • SS tag is mapped to a team at ApplyMetadataMutation: git commit
    • 1 SS : n teams -- needs merge cursor support
  • Recruit SS with teamID, and shard info Team can be dynamically assigned

  • 1 TLog group : 1 or many? TLog

Proxy -> TLog TLogCommitRequest req.reply.send(logData->durableKnownCommittedVersion);

Proxy

Proxy -> master ReportRawCommittedVersionRequest max()

Note "keySplits" was introduced for demo purpose and predefining splits can become a feature in the future, so that loading data into DB can be faster----without load balancing across storage servers later.

Seed

r -r simulation --crash --logsize 1024MB --knob_tlog_new_interface=1 -f src/foundationdb/tests/ptxn/CycleTest.toml -s 100 -b off

cmr | grep -E 'SSTeam' | s | less cmr | grep StorageMetrics | s | sed -e 's/Elapse.BytesInput=/Input=/' -e 's/BytesFetche.//' | less TestSetupComplete|TestComplete|CheckingResults|TestFetchingMetrics

Type="ServerTag" Machine="2.0.1.3:1:tls" ID="98995bbcca0a0877" Server="345ac520e5ba8396" Tag="0:4"