Chain Replication
将replicated server组织成chain样式,如S1, S2, S3, S4。其中,S1为head node,S4为tail node。
Chain Replication处理写操作的机制如下:
- Client sends to head
- Forwarded down the chain, in order
- Each server overwrites old data with new data
- Tail responds to client
Chain Replication处理读操作的机制如下:
- Client sends to tail
- Tail responds (no other nodes involved)
CR的强一致性
当没有出现failure时,整个系统的reply都由tail node来完成,保证了强一致性。head node将requets按照一定的顺序向下传递,tail node按照该顺序对client进行回复。
当出现failure时,CR的恢复机制也比较简单:
- If head fails, successor takes over as head, no commited writes lost.
- If tail fails, predecessor takes over as tail, no writes lost.
- If intermediate fails, drop from chain, predecessor may need to re-send recent writes.