另一个坑就是,跨 NUMA Node 访问时,效率受到比较大的影响。在我们的测试中发现,跨 NUMA Node 的访问,单线程只提供不到 1GB/s 的带宽。所以一定要注意保证数据访问是 Local 的。

关于 PMem 的使用场景,其实有很多,例如:

作为容量更大,价格更便宜的主存,在这种情况下,PMem 实际上并不 Persitent。这里又有两种模式:

OS 不感知,由硬件负责将 DRAM 作为 Cache,PMem 作为主存

OS 感知,将 PMem 作为一个独立的 memory-only NUMA Node,目前已经被 Linux Kernel 支持,Patchset

作为真正的 PMem,提供可持久化存储能力

关于 PMem 的其他部分,我们后续还会有专门的文章介绍。

顺便剧透一下,我们即将在今年上半年发布的 SMTX ZBS 4.5 版本中,包含了针对 PMem 的大量优化工作,和上一个版本相比,整体延迟可以降低超过 80%~

Distributed Consensus and Consistency

Distributed Consensus 在过去十年已经被大家研究的比较透彻了,目前各种 Paxos,Raft 已经的实现已经被广泛应用在各种生产环境了,各种细节的优化也层出不穷。

如果你想系统性的学习一下 Distributed Consensus 的话,那么推荐你看一篇剑桥女博士 Heidi Howard 的毕业论文“Distributed consensus revised”。这篇论文可以说是把过去几十年大家在 Distributed Consensus 上的工作做了一个大而全总结。通过总结前人的工作,整理出了一个 Distributed Consensus 的模型,并且逐个调节模型中的约束条件,从而遍历了几乎所有可能的优化算法,可以说是庖丁解牛,非常适合作为 Distributed Consensus 的入门文章。

说到 Distributed Consensus,就离不开 Consistency。Distributed Consensus 是实现 Strong Consistency 的非常经典的做法,但是,并不是唯一的做法。

Distributed Consensus 只是手段,Strong Consistency 才是目的。

实现 Strong Consistency 的方法还有很多。在过去一段时间里面,我认为最经典的要数 Amazon 的 Aurora。

Amazon Aurora 目前共发表了两篇文章。第一篇是 2017 年在 SIGMOD 上发表的 “Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases”,另一篇是在 2018 年的 SIGMOD 上发表了一篇论文 “Amazon Aurora: On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes”。第二篇论文主要讲述了他们如何在不使用 Distributed Consensus 的情况下,达到 Strong Consistency 的效果。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查