HotStorage 2021 Paper 分布式元数据论文阅读笔记整理
问题
文件系统服务对于用户之间的数据共享和协作至关重要。这些服务必须提供低响应时间,在网络分区的情况下保持可用,并支持离线工作负载[5]。为了实现这些目标,文件系统通常在地理位置较远的站点之间复制数据,并从距离用户较近的复制副本为每个用户请求提供服务,而无需与其他复制副本协调。
挑战
构建可扩展且高度可用的地理复制文件系统非常困难,需要处理复制的副本接受相互冲突的并发操作。这些系统需要维护文件系统不变量、且不偏离传统文件系统接口的方式,解决并发操作中出现的冲突。
现有系统中的冲突解决往往会导致意外或不一致的结果。这使得用户很难直观地了解这些服务的行为,从而导致对其预期行为的误解[9]。一种方法是是设计更灵活的冲突解决机制,例如在冲突解决过程中需要用户输入。然而,在通过POSIX合规性来保持对遗留应用程序的支持的同时,启用这样的功能是具有挑战性的。
本文方法
本文提出了ElmerFS,一个地理复制的、并发的文件系统。基于两个关键思想:
-
使用无冲突复制数据类型(CRDT)来表示文件系统结构:inode、符号链接块、目录,确保复制收敛到正确的状态,同时保留传统POSIX文件系统的语义。
-
冲突解决规则由CRDT类型及其组成的选择决定,以用户直观的原则设计。该规则:尽可能多地保留冲突操作的效果;不引入冲突操作未明确表示的更改。其思想是,如果解决冲突后的文件系统状态以直观的方式向用户传达已解决的冲突,则用户可以使用传统的文件系统操作来补充或逆转冲突。
总结
针对弱一致性下设计真正并发的共享地理复制文件系统的挑战。提出了ElmerFS,基于CRDT的文件系统。确保文件系统副本在存在冲突操作的情况下最终收敛到一个通用的、正确的状态。冲突解决方案旨在避免产生意外结果,使用户能够通过传统的文件系统操作来补充或逆转冲突解决的结果。