ISIS to 2PC: an analog
The ISIS algorithm, which can maintain total ordering multicast, is similar with 2PC in that:
- In first phase of ISIS, the sender multicast first message (message, mssg_id), and this message is not ready to be delivered; while in 2PC, the sender asks all nodes whether to commit message.
- In second phase, peer nodes reply with their proposed sequence number, which means ‘commit’ similarly if sequence number is small, and means ‘commit later’ when is large; in 2PC, the reply message is ‘commit’ or not (which includes less information).
- In third phase, sender multicast agreed sequence number, which is similar with the ‘commit agreed’ message in later stage (while the time to deliver may be in the future); in 2PC, the leader node broadcast ‘commit’ or not.
Some Important Latency Number
| Operation | ns |
|---|---|
| L1 cache reference | 0.5 |
| Branch mispredict | 5 |
| L2 cache reference | 7 |
| Mutex lock/unlock | 25 |
| Main memory reference | 100 |
| Compress 1K bytes with Zippy | 3,000 |
| Send 2K bytes over 1 Gbps network | 20,000 |
| Read 1 MB sequentially from memory | 250,000 |
| Round trip within same datacenter | 500,000 |
| Disk seek | 10,000,000 |
| Read 1 MB sequentially from disk | 20,000,000 |
| Send packet CA->Netherlands->CA | 150,000,000 |