TON 2023 Paper 分布式元数据论文阅读笔记整理
问题
当今分布式元数据管理方案面临的一个主要挑战是,如何有效地将元数据节点映射和迁移到不同的元数据服务器(MDS)来满足各种应用程序的动态需求。
-
传统的元数据管理方案,包括基于哈希的映射[7]、[8]、[9]和子树分区[10],采用了静态策略,无法适应不断变化的访问模式。
-
最近的工作[2]、[11]、[12]、[13]、[14]设计动态方案。然而,这些方案主要采用基于历史的粗粒度更新策略。例如,DROP[14]根据历史访问频率重新计算每个MDS管理的哈希值范围来重新分配节点。DeepHash[15]通过迁移虚拟节点来重新平衡系统。这种设计有两个主要局限性。首先,分布更新基于定期的历史统计数据,将落后于访问模式的变化。其次,粗粒度迁移必然会导致冗余迁移成本,一些非热节点会频繁地与热节点一起移动。
本文方法
本文提出利用深度强化学习实现细粒度分布式元数据管理,称为AdaM。(在AdaM论文基础上增加了后两种技术)
-
根据当前状态(即访问模式、名称空间树、MDS上节点的分布),训练actor-critic网络,将热元数据节点迁移到不同的MDS,同时保持元数据的局部性。
-
提出了自适应元数据缓存策略,动态结合了服务器端和客户端管理缓存的两种策略,以获得更好的查询性能。基于服务端的策略中,MDS管理一个表,该表将缓存的元数据与相应的客户端相关联,每当元数据更新时,会发送无效消息通知客户端。基于客户端的策略中,客户端向目标MDS发送验证消息,以验证其缓存中元数据在租期内的新鲜度。本文将两种缓存策略结合,基于服务器的策略应用于非热元数据,而热元数据在迁移时切换其策略。
-
设计了分布式元数据处理2PC协议,称为基于MST的2PC,结合了本地消息状态表(MST)和面向消息的中间件来实现高性能,并确保数据的一致性。
在真实世界数据集上的实验证明了本文提出的方法优于其他方案。
总结
针对分布式元数据管理方法,本文提出基于深度强化学习的细粒度元数据管理方案AdaM。包括三个技术:(1)根据当前状态(访问模式、名称空间树、MDS节点分布),训练actor-critic网络,在服务器之间自动迁移热元数据节点。(2)自适应元数据缓存策略,动态结合服务器端和客户端管理缓存,以提高查询效率,降低网络开销。(3)分布式处理协议,称为基于MST的2PC,以保证分布式元数据事务的一致性。