MetaKV: A Key-Value Store for Metadata Management of Distributed Burst Buffers——论文泛读

IPDPS 2017 Paper 分布式元数据论文汇总

问题

分布式突发缓冲区是处理异构计算 I/O 工作负载的一种有前途的存储架构,其总体存储带宽随系统节点数量线性增长。科学应用可以将每个进程的数据写入其本地节点的突发缓冲区,来实现可扩展的写入带宽,但元数据方面仍然存在巨大挑战,特别是对于跨多个进程共享的文件。在 N-N 模式下,每个进程将一个单独的文件写入其节点本地的突发缓冲区,文件的元数据只需要在本地管理。在 N-1 模式下,所有进程同时将共享文件的各个段写入其节点本地的突发缓冲区,这导致共享文件的各个段分布在不同的缓冲区中,为了让进程在后续访问中能够定位共享文件的段,我们需要一个全局索引来跟踪段的位置。

由于科学应用中可能同时由数千个或更多进程访问该全局索引,元数据管理的可扩展性是一个严重限制性能的因素。

挑战

分布式突发缓冲区所需的两种主要元数据类型是索引和文件属性,两种元数据有不同的挑战。

对于文件属性元数据,挑战来自于对共享文件的许多相同的并发请求。例如,如果所有进程同时创建一个共享文件,则所有进程都会同时向元数据服务器发送文件属性信息。当所有进程同时请求或更新元数据信息时,也会出现类似的情况,例如,使用stat或关闭操作。

对于索引元数据,主要的挑战是由于大量并发的I/O请求。由于HPC I/O操作的性质,共享文件访问可能会生成许多小的并发写和读请求,然后是大量的索引操作,以将这些操作记录在元数据服务器上。

MetaKV: A Key-Value Store for Metadata Management of Distributed Burst Buffers——论文泛读_第1张图片

现有方法缺陷

一些团队已经研究了使用分布式键值存储来管理HPC系统上的元数据[10],[16],[24],[28]。

MDHIM [10] 是为HPC系统开发的键值存储之一,具有增强性能的几个特点:将索引工作负载分摊到多个键值服务器上;使用MPI实现,以实现可移植性和利用本地的高速传输层;使用LevelDB [3],一种快速的持久性键值存储,用于管理键值对,并允许在故障后快速重建。然而,在突发和并发的元数据工作负载下,MDHIM的性能受到限制,主要原因是MDHIM缺乏对请求的空间和时间局部性的感知,导致在同一文件上进行大量小的元数据操作。

突发写入工作负载通常涉及所有进程并发发出写入请求,从而导致大量并发索引put请求。这些索引通常具有强的空间局部性[8]、[18]、[33],这意味着文件的连续段的索引一起写入同一键值服务器。然而,由于索引放置请求是从多个进程发出的,当它们到达MDHIM时,空间上连续的索引与不同位置的其他索引交错,导致索引布局混乱。为了恢复索引布局,MDHIM引入了额外的压缩开销,这会显著延长索引放置时间。

在突发读取工作负载期间,连续的索引get请求被定向到相同的键值服务器,并与其他get请求交错。MDHIM没有实现空间局部性,而是发出单独的读取来检索每个请求的索引,从而引入了限制读取性能的大量小型冗余读取操作。

对共享文件的并发文件操作,例如打开、统计或关闭,通常涉及所有客户端同时将属性发送到同一密钥值服务器,并从同一密钥价值服务器接收属性。这种多对一/一对多的通信模式可能会严重阻碍系统的大规模可扩展性。

本文方法

提出了 MetaKV:为分布式突发缓冲区上的高性能计算(HPC)元数据工作负载,提供快速可扩展元数据管理的键值存储。MetaKV是在MDHIM之上构建的键值存储,通过几个增强功能提高了MDHIM的性能:

  • 提供了具有快速写入的有序索引布局,引入了一种新颖的压缩存储管理框架,在不引起频繁压缩操作的情况下重塑索引布局

  • 设计了一种高效的读取集群算法,通过受监督的读取聚类减少了读取服务时间

  • 为解决对共享文件的高度并发的文件属性请求问题,在服务器之间建立了一个基于日志环的覆盖网络,以优化在这些共享文件的元数据操作中使用的常见的全对一和一对多通信模式。

实验证明,MetaKV在性能上优于最先进的键值存储方法。它分别提高了 put 和 get 元数据操作,性能分别提高了 2.66 倍和 6.29 倍,并且随着元数据工作负载需求的增加,MetaKV的优势也在增加。

总结

针对HPC场景中共享文件元数据的突发负载,在N-1场景下元数据写入和读取性能低。作者将元数据划分为索引元数据和文件属性元数据,分别针对读写场景优化。通过压缩存储的方法减少重构索引布局;通过有监督的读取聚类优化读取性能;通过基于日志环的覆盖网络优化通信。

你可能感兴趣的:(论文阅读,论文阅读)