[发明专利]一种基于RocksDB的预写日志方法及系统有效
| 申请号: | 202111453433.9 | 申请日: | 2021-12-01 |
| 公开(公告)号: | CN114138200B | 公开(公告)日: | 2023-10-13 |
| 发明(设计)人: | 王泽坤 | 申请(专利权)人: | 上海沄熹科技有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F16/13;G06F16/172;G06F16/178;G06F16/18;G06F16/23;G06F16/27;G06F11/14 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 郗艳荣 |
| 地址: | 200120 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 rocksdb 日志 方法 系统 | ||
1.一种基于RocksDB的预写日志方法,其特征在于:包括以下步骤:
第一步,预写日志异步写入
包括多线程写入、读取和统计任务管理与调度;通过启用固定数量且绑核的线程,对NVMe SSD设备的写入请求进行接受、管理、执行和返回,通过SPDK写入NVMe SSD设备;
第二步,预写日志文件管理
对高速的NVMe SSD存储设备直接写入,绕过文件系统,使用适合RocksDB和SPDK的自制文件系统对混合存储设备进行分区、管理和优化;
第三步,预写日志恢复
包括对日志文件的定位、读取和数据管理;由于预写日志系统的使用自制文件系统,文件结构与数据组织形式使用自制的文件和数据格式,并用SPDK读取高速的NVMe SSD设备的数据,以实现文件恢复;
第四步,预写日志同步机制
利用滑动窗口算法和/或位图算法,使用忙等待技术,实现预写文件系统的的同步机制。
2.根据权利要求1所述的基于RocksDB的预写日志方法,其特征在于:所述第一步中,创建专门用于后台的日志写入线程,对后台日志写入线程进行绑核,并将NVMe SSD设备绑定到数据库进程上;启动SPDK server,对存储设备进行读取,并更新预写日志系统信息;
后台的日志写入线程先申请一个区域,然后向申请的区域中进行写入,多个后台的日志写入线程并行执行;
后台的日志写入线程收到请求后,通过SPDK执行写入的请求,写入到NVMe SSD设备的对应区域。
3.根据权利要求2所述的基于RocksDB的预写日志方法,其特征在于:所述第一步中,使用SPDK的异步写入的方式对文件进行写入,将数据库的写入操作进行并行执行,采用CAS的无锁机制将RocksDB对NVMe SSD设备的写入请求传递到log队列中。
4.根据权利要求3所述的基于RocksDB的预写日志方法,其特征在于:所述第二步中,预写日志文件管理实现流程如下:
S1.从log请求队列中获取所有的队列请求,并将队列中所有的请求进行数据合并;
S2.对合并后的数据大小进行计算,并按页进行存储;
数据大小能够完整存入一个或多个页中,如果不足一页,则将页的未满数据区进行填充;原子性的申请页空间,并将每个请求所需页数以及数据的总大小,写入到记录和预写日志管理系统中;
S3.向记录中加入每个条目的校验和总和检验码Checksum,为每个条目添加对应的逻辑文件号,异步写入的逻辑文件号与Rocksdb中的文件号对应;
S4.当逻辑文件号下的文件写满时,在写满前的最后一条数据追加文件结束标记,以表示文件结束;
所述文件结束标记记录文件总大小、文件总条数、文件权限标记以及最后写入时间。
5.根据权利要求1所述的基于RocksDB的预写日志方法,其特征在于:所述第三步中,先通过自制文件系统进行文件定位和数据定位,然后通过预写日志系统的日志线程,并行恢复文件;具体实现流程如下:
S1.首先读取元数据页,,将元数据页的信息读入到数据库管理系统中;
所述元数据页的信息包括预写日志的位置、预写日志的文件数量、预写日志文件的文件描述符以及预写日志的写入时间;
S2.根据时间从前往后的找到各个预写日志文件,并将各个预写日志文件读取到数据库中,在读取前先做数据校验,以保证数据安全,直至读取到文件结束标志,结束文件读取;
S3.完成数据读取后,将数据落盘到银月服务器工具SST中,然后将对应的预写日志删除,以保证内存中全部是全新数据。
6.根据权利要求1所述的基于RocksDB的预写日志方法,其特征在于:所述第四步中,使用滑动窗口算法,找到并弹出与直接节点相邻的节点,根据弹出的节点读出对应的序号sequence number值进行发布;
滑动窗口算法内部利用红黑树机制进行数据排序,实际算法复杂度是log(n)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111453433.9/1.html,转载请声明来源钻瓜专利网。





