SoCC 2015 Paper 分布式元数据论文汇总
问题
云存储系统的快速增长要求进行快速且可扩展的命名空间处理,但很少有商业文件系统提供比分散非可扩展的命名空间服务器更好的解决方案。最近的IndexFS展示了基于客户端缓存目录条目和权限(目录查找状态)的可扩展命名空间处理,而服务器中没有每个客户端的状态。
现有方法局限性
现代分布式存储系统通常使用一种将元数据访问与文件读写操作解耦的体系结构[21,25,46]。在这样的文件系统中,客户端在访问文件内容之前从元数据服务器获取权限和文件位置信息,因此较慢的元数据服务可能会降低数据路径的性能。
HDFS[25]和谷歌文件系统[21],使用了集中式单节点元数据服务,并专注于仅扩展数据路径。但单节点元数据服务器的设计在存储的对象数量和对文件系统的并发访问方面限制了文件系统的可扩展性[40]。
通过网络联合独立的元数据服务的存储系统(如NFS、CIFS),使用多个服务器节点,但不能确保它们之间的负载平衡。
本文方法
我们探讨了在所有服务器中显式复制目录查找状态,作为将此信息缓存在所有客户端中的替代方案。两者都消除了为解决分层权限测试而向不同服务器重复发出的大多数RPC。我们对服务器复制的目录查找状态的实现,ShardFS,采用了一种新颖的文件系统特定的混合乐观和悲观并发控制,倾向于单个对象事务而不是分布式事务。
实验表明,如果目录查找状态修改是操作的固定部分(元数据的强扩展),那么服务器复制的规模效果不如客户端缓存,但如果目录查找状态修改与作业的数量成正比,而不是每个作业的进程数量(元数据的弱扩展),那么服务器复制可以比客户端缓存更线性地扩展,并提供更低的70百分位响应时间。
总结
对不同类型的元数据工作负载应该采用不同的优化方法。如果目录查找状态修改是操作的固定部分,那么客户端缓存效果更优。如果目录查找状态修改与作业的数量成正比,那么服务器复制效果更优。