前言
因为时间原因,有些分布式论文在看到后没法立即阅读。因此将这些论文和里面有意思的点记录下来,等待日后实践过程中发现需要突破的点时重新阅读来找寻思路。
论文
No compromises: distributed transactions with consistency, availability, and performance(Farm)
sharding over many servers (90 in the evaluation) data must fit in total RAM (so no disk reads) non-volatile RAM (so no disk writes) one-sided RDMA (fast cross-network access to RAM) fast user-level access to NIC transaction+replication protocol that exploits one-sided RDMA
充分利用了硬件的性能来加快运行速度
Q: What is RDMA? One-sided RDMA? A: RDMA is a special feature implemented in some modern NICs (network interface cards). The NIC looks for special command packets that arrive over the network, and executes the commands itself (and does not give the packets to the CPU). The commands specify memory operations such as write a value to an address or read from an address and send the value back over the network. In addition, RDMA NICs allow application code to directly talk to the NIC hardware to send the special RDMA command packets, and to be notified when the "hardware ACK" packet arrives indicating that the receiving NIC has executed the command. "One-sided" refers to a situation where application code in one computer uses these RDMA NICs to directly read or write memory in another computer without involving the other computer's CPU. FaRM's "Validate" phase in Section 4 / Figure 4 uses only a one-sided read.
Don’t Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS
之前都是本地读,还是到一个master节点上进行写操作,这篇论文则主要探讨如何支持多中心写。
使用lamport时钟进行同步。
COPS uses Lamport clocks to assign v# each server implements a "Lamport clock" or "logical clock" Tmax = highest v# seen (from self and others) T = max(Tmax + 1, wall-clock time) v# for a new put() is current T so: if some server has a fast clock, everyone who sees a version from that server will advance their Lamport clock