美文网首页
分布式系统-8-FaRM

分布式系统-8-FaRM

作者: 王谙然 | 来源:发表于2017-01-09 17:53 被阅读241次

    论文:FaRM

    前面我们聊到对于分布式事务来说,很难同时保证一致性,高并发和可用性(CAP 原则),核心的原因是资源竞争,这里的资源是指 master 的 CPU,内存和网络,由于要保证一致性就得对资源加锁,但要提高并发性就得减少锁的消耗,而要满足可用性就不得不对数据增加备份,每增加一个备份都会增加了一致性的负担。

    当然我们看整个系统不能只看上层的软件部分,因为我们最终的目的是让硬件处理我们的数据,而软件是对硬件一层一层的封装。所以上面所述的问题是当前计算机硬件基础设施所决定的。

    今天我们我讲的 FaRM(fast remote memory) 目标是挑战 CAP 原则,主要是针对新一代基础设施提出的设计方案。什么新新硬件?Non-Volatile DRAM 和 RMDA。

    RMDA (Remote Memory Direct Access),简单的说就是在 MDA 的基础上实现机器和机器之间的远程数据传输,而数据的读取复制都不需要 CPU 参与。

    Non-Volatile DRAM,可以理解为 SSD (固态硬盘)

    两个技术带来的好处是解放了 CPU 的 IO 负载。然后我们的真个事务处理流程变成四阶段提交:

    1. Lock:某个集群的 Primary 接受 client 请求,加锁,处理本地数据,更新版本号。
    2. Validation:FaRM 通过 RDMA 方式读写所有涉及到的数据版本号,判断失误是否冲突,此过程不需要服务器的 CPU 参与。
    3. Backup commit:备份服务器写入本次事务的操作 log,不需要 CPU 参与。
    4. Primary commit:以 RDMA 的方式向 Primary 写入 commit-primary 数据,Primary 的监听程序会释放锁。

    正所谓有得必有失,由于 IO 不经过 CPU,导致某些情况下 CPU 失去了对数据的控制,比如不能确定本次事务是否有足够的存储空间,所以需要在准备阶段需要预约足够的空间。

    相关文章

      网友评论

          本文标题:分布式系统-8-FaRM

          本文链接:https://www.haomeiwen.com/subject/vlncbttx.html