# Scaling Replicated State Machines with Compartmentalization

## Scaling Replicated State Machines with Compartmentalization

### 0x01 Compartmentalization MultiPaxos

Bottleneck: leader
Scale: the number of command broadcasters


Compartmentalization 2: Acceptor Grids

Bottleneck: acceptors
Decouple: read quorums and write quorums
Scale: the number of write quorums


Paper这里的一个思路是使用grid的方式，将acceptors分为read quorums (the rows {a1,a2,a3} and {a4,a5,a6})和write quorums (the columns {a1,a4}, {a2,a5}, {a3,a6})。这里有3组的write quorums，每组只需要处理1/3的command即可。这里增加write quorums的机器数量也会导致需要增加read quorums的机器的数量，

Also note that increasing the number of write quorums increases the size of read quorums which increases the number of acceptors that a leader has to contact in Phase 1. We believe this is a worthy trade-off since Phase 2 is executed in the normal case and Phase 1 is only run in the event of a leader failure


Compartmentalization 3: More Replicas

Bottleneck: replicas
Scale: the number of replicas


Bottleneck: leader and replicas
Decouple: read path and write path
Scale: the number of read quorums


### 0x02 Batching

Bottleneck: leader
Decouple: batch formation and batch sequencing
Scale: the number of batchers


Bottleneck: replicas