this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add implementation plan

garrison 5e6847ec b43032ff

+14
+14
rfds/0004_tlog_copysets.md
··· 100 100 a log will only be GC'd once all storage servers in the team have popped past a particular version. 101 101 102 102 Copysets also naturally solve the fault-tolerance issue, by their nature. 103 + 104 + ## Implementation 105 + 106 + - In manager, always spawn TLogs in sets of `replication_factor`. 107 + The TLog copysets are stored implicitly as each N TLogs in the list: 108 + `[1, 2, 3, 4, 5, 6]` -> `[{1, 2, 3}, {4, 5, 6}]` 109 + - In the Manager/Distributor, shards point to a team id directly instead of to a set of storage server ids 110 + - In the CommitBuffer, mutations are tagged with a team id as above and then sent to the corresponding TLog team. 111 + The TLog team for a storage team can be computed using the same mod trick, i.e. `rem(storage_team_id, length(tlog_teams))` 112 + - Storage servers can now safely read from any TLog in their corresponding team for a given generation. 113 + - During recovery, the Manager needs to hear from at least one TLog from every copyset in order to proceed. 114 + - The Distributor can *only* move shards between storage teams. 115 + Storage servers can not be added to or removed from teams; teams can only be created and destroyed. 116 + (Note that the current implementation does not do this anyway, because this was planned.)