-
Notifications
You must be signed in to change notification settings - Fork 0
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
-
Proxy broadcasts to all TLog groups due to private mutations
- Move private mutation generation to Resolvers PR 5969
- Assign private mutations to TLog groups and track group versions at Resolvers. Then sending these private mutations to commit proxies along with TLogGroup's Previous Commit Versions (TPCVs). Note if there are shard changes, then we fall back to broadcast, because proxy's pre-computed (before resolution) TLog Group set is no longer accurate.
-
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
- SS tag is mapped to a team at
-
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.
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"