cat /dev/random meh

It’s all about disaggregation

Why 分离

最近这个几年,网络基础设施有了长足的进步,短短的几年,主流的数据中心网卡从 1Gbps -> 10Gbps -> 25 GBps, 甚至 100 Gbps 的网卡也已经出现。从 IO 带宽的角度来说,基本上如果你的服务器是 SATA 接口的 SSD,网卡的吞吐已经肯定比磁盘的吞吐高,所以从存储引擎的角度,分层的架构是必然的选择。

(what about latency?)

除了存储,对于 CPU 密集型的操作来说分离同样也是划算的,将计算 offload 到远端的代价大致是:rpc + actual_CPU_work ,如果工作所需要的资源和处理时间要求远大于 rpc 的成本,那么这个操作就是划算的。这里需要扭转一个固有印象,在传统的分布式系统中,offload 的 rpc 代价是很大的,例如 RSM 的日志复制,rpc 需要携所有的数据和元数据,然后发送到目标的机器上,之后才能在远端进行计算。很多时候移动数据的代价远大于计算本身,但是在一个存算分离的架构下,不同的计算节点拥有对数据的统一 snapshot,rpc 的代价可能只有很小的元信息,这样将极大的提升计算 offload 的效率。

更多好处来自于

存算分离

算算分离

存存分离