咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于存算分离的分布式RocksDB的研究与应用 收藏
基于存算分离的分布式RocksDB的研究与应用

基于存算分离的分布式RocksDB的研究与应用

作     者:吴迪 

作者单位:华东师范大学 

学位级别:硕士

导师姓名:赵慧

授予年度:2022年

学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 

主      题:计算与存储分离 RocksDB RDMA&SPDK 键值数据库 OptanceDC 

摘      要:目前,大部分开源的分布式数据库采用了计算和存储耦合的架构模式,存在计算和存储不均衡、CPU和内存配比更新困难、扩展需要迁移大量数据等缺点。在数据并发量和使用量高速增长的互联网时代,数据库的CPU和内存配比、存储容量需要不断更新,计算和存储耦合的缺陷越来越明显。随着网络延迟降低,计算与存储分离的架构模式成为了新的发展方向。本文以RocksDB为例,研究了计算与存储分离的键值数据库的改造方法,设计与实现了分布式RocksDB数据库。RocksDB采用了Write Append Log(WAL)和Compact内存机制,没有更新数据文件的操作。因此,其数据文件(如SST,WAL,MANIFEST等文件)比较适合使用Append Only模式的高性能分布式文件系统(High Performance Distributed File System,HPDFS)作为底层文件持久化存储系统。本文基于计算与存储分离的架构模式改造RocksDB数据库,并利用异构存储、RDMA(Remote Direct Memory Access)与SPDK(Storage Performance Development Kit)等技术加快存取速度,消除数据库端远程存储对性能的影响。论文主要完成以下几项工作:(1)改造RocksDB为分布式数据库,采用一主多从的模式,在Zookeeper组件上注册选主。同时,在HPDFS上设计分布式文件锁,利用分布式文件锁确认主服务器的唯一性,确保RocksDB不会双写。主服务节点提供读写能力,从服务节点提供写的能力。主服务节点故障后,从服务节点可以推选为新的主服务节点提供服务,实现高可用。(2)改造了RocksDB底层文件存储的接口,通过HPDFS提供的SDK访问远程的分布式文件系统,将数据灾备、副本恢复、冗余压缩等特性集成到分布式文件系统中。同时,不同RocksDB实例的数据存在到HPDFS的不同文件目录中,实现数据隔离。(3)针对RocksDB写WAL、MANIFEST两种文件速度影响RocksDB整体写性能的特性。研究中创新性的提出了对RocksDB的数据进行异构介质存储,综合性能和成本的需求,系统能够同时使用持久化内存(Persistent Memory,PM)、固态硬盘(Solid State Disk,SSD)两种存储介质。使用PM存储数据量较少的WAL、MANIFEST文件,使用SSD等相对廉价设备来存储SST文件。此外,本文针对读取频繁且对读性能较高的业务,提出在计算节点端利用PM缓存访问读取频繁的、数据量相对较少的索引文件。(4)RocksDB的写操作瓶颈主要在于WAL日志的追加写,所有写请求都会堵塞等待WAL日志持久化完成。针对RocksDB原生的批量写存在锁等待、堵塞的缺陷。本研究通过队列及异步化写的模式,写线程将请求封装成Context放在Pending队列中,再由轮询线程从队列中批量取出数据组装发送到远程分布式文件系统,通过异步的模式提升系统的吞吐能力。针对远程存储网络延迟的问题,本研究采用RDMA技术的数据旁路、用户空间和操作系统内核空间的复制等特性降低网络延迟,采用SPDK技术提升SSD磁盘的读取速度。RDMA和SPDK两种技术能够有效帮助降低延迟的影响。(5)论文通过实验,对比批量写、PM、RDMA&SPDK等技术优化前后的效果。并通过机器故障、磁盘故障、网络故障、增加计算节点、增加存储节点等实验验证了分布式RocksDB系统的可靠性、可扩展性、负载均衡性。通过实验表明,本研究设计与实现的计算与存储分离的分布式RocksDB数据库具有较强的可靠性和扩展性。综合IO优化效果能够让分布式RocksDB存储性能接近RocksDB在本地SSD文件系统的存储性能。目前,分布式RocksDB存储系统被试运行应用到对象存储系统的元数据灾备存储中,并通过Grafana监控工具对线上的实例进行监控,系统整体运行稳定。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分