随着存储媒介的发展,我们逐渐可以以网络的速度去存取存储媒介里的内容,而网络和程序的开销可能会成为分布式文件系统的瓶颈。RDMA可以加速传输,但处理storage policies目前还是靠存储节点的CPU。文章提出将分布式文件系统的storage policies卸载到智能网卡上,storage policies包括authentication, replication, erasure coding等。这篇文章是SC22的best paper finalist,这种文章看起来和jin xin老师的netcache,netchain有点像,都是找到了很适合in-network computing的点。

Untitled

作者对比了其他一些对数据包处理的方法,RDMA、eBPF、DPDK等没有办法同时做到:1. 不需要在存储节点上中断CPU和保存额外数据结构的单向请求;2. 编程的灵活性;3. 用户态更新storage policies,且只处理自己的数据包(隔离)。

作者用一个叫PsPIN的硬件设计去实现可以满足以上要求的数据包处理方法,文章的创新主要是将sPIN这个新的编程模型用在分布式文件系统的领域。sPIN的优势主要是可以对数据流中的数据包应用处理函数,可以直接运行C++(而不是P4)且没有太多限制,并且可以将指定数据包映射到用户态应用指定的上下文中而不是统一处理所有数据包。

sPIN的处理函数叫handler,可以为第一个包,中间的payload包和最后一个包分别指定handler。后面的内容就是authentication, replication, erasure coding三种类型policy的应用和模拟下的性能。文字部分大概就是一些状态要怎么存储和传递,没有特别值得提的idea。

Untitled

Untitled

erasure coding这部分有点复杂,不太了解文中的TriEC的校验块的生成过程,所以看不太懂。

Untitled

我比较喜欢这个工作的风格,但不确定是否应该投入到这个方向,即分布式系统+RDMA+INC。