[发明专利]一种数据复用方法、装置、电子设备及存储介质在审
申请号: | 201910695998.4 | 申请日: | 2019-07-30 |
公开(公告)号: | CN110413568A | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | 赖梓昌;田勇;李理 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/13;G06F16/172;G06F16/18;G06F16/182 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 写入数据 存储引擎 同步日志 存储介质 电子设备 数据复用 数据文件 索引信息 写入请求 影子文件 写入 分布式存储系统 存储设备 模块存储 模块复用 使用寿命 写入性能 用户发送 磁盘 硬链 存储 | ||
1.一种数据复用方法,其特征在于,所述方法包括:
通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;
若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
3.根据权利要求2所述的方法,其特征在于,所述将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下,包括:
若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;
若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;
根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
5.根据权利要求1所述的方法,其特征在于,所述第一索引信息包括至少一个起始编号start_id;各个start_id包括至少一个日志文件di_file;各个di_file包括至少一个日志项di_entry和全部di_entry的日志项索引index;各个di_entry包括:标记magic_num、类型type、日志项数据data、校验值crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个索引校验indexcrc;0-64个索引index;0-63个数据data;各个data对应设置一个影子文件;所述影子文件包括:影子文件名称filename、偏移offset和长度len。
6.一种数据复用装置,其特征在于,所述装置包括:第一存储模块、第二存储模块、第一建立模块和第二建立模块;其中,
所述第一存储模块,用于通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
所述第二存储模块,用于将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
所述第一建立模块,用于根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述第二建立模块,用于所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910695998.4/1.html,转载请声明来源钻瓜专利网。