[发明专利]一种数据复用方法、装置、电子设备及存储介质在审
申请号: | 201910695998.4 | 申请日: | 2019-07-30 |
公开(公告)号: | CN110413568A | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | 赖梓昌;田勇;李理 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/13;G06F16/172;G06F16/18;G06F16/182 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 写入数据 存储引擎 同步日志 存储介质 电子设备 数据复用 数据文件 索引信息 写入请求 影子文件 写入 分布式存储系统 存储设备 模块存储 模块复用 使用寿命 写入性能 用户发送 磁盘 硬链 存储 | ||
本发明实施例公开了一种数据复用方法、装置、电子设备及存储介质。所述方法包括:通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号;将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件;根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息。本发明实施例可以实现同步日志模块和存储引擎模块复用一份数据,同等的每秒写入QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据复用方法、装置、电子设备及存储介质。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式存储系统中通常涉及到同步日志模块和存储引擎模块,同步日志模块用于保证多副本数据的一致性,而存储引擎模块则提供副本数据的持久化存储及读写服务。目前大部分的分布式存储系统,同步日志模块和存储引擎模块是单独分开存储的,写入请求需要分别发送至同步日志模块和存储引擎模块,数据需要进行两次磁盘IO,导致较大数据量的场景下,磁盘IO往往成为整个分布式存储系统的瓶颈,同时持续较大的落盘压力会严重影响磁盘寿命。
为了解决两次磁盘IO问题,部分产品采用把写入数据缓存在内存的方式,只保留最新固定条目的写入数据,如果从副本请求的写入数据不在缓存中,则重新触发一次全量同步。通过把写入数据缓存在内存的方式,可以解决读写请求数据两次磁盘IO问题,但相应的也带来更大的内存开销。同时如果遇到主从副本网络分区、从副本机器宕机等异常情况下很大概率需要触发一次全量同步来保证主从之间数据一致,额外带来了网络带宽开销。
发明内容
有鉴于此,本发明实施例提供一种数据复用方法、装置、电子设备及存储介质,可以实现同步日志模块和存储引擎模块复用一份数据,同等的每秒写入QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命。
第一方面,本发明实施例提供了一种数据复用方法,所述方法包括:
通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
在上述实施例中,所述方法还包括:
根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;
若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
在上述实施例中,所述将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910695998.4/2.html,转载请声明来源钻瓜专利网。