一种数据读取方法、装置、设备以及存储介质制造方法及图纸

技术编号:30828482 阅读:13 留言:0更新日期:2021-11-18 12:34
本公开提供了一种数据读取方法、装置、设备以及存储介质,涉及数据处理技术领域,尤其涉及分布式数据存储技术领域。具体实现方案为:获取目标应用针对目标复制组生成的第一读请求;确定所述目标复制组对应于所述目标应用的最新提交索引,所述最新提交索引用于表示所述目标应用最后一次在所述目标复制组写入数据后所述目标复制组的提交索引;向所述目标复制组所属的存储端发送携带有所述最新提交索引的第二读请求,第二读请求用于驱动所述存储端从应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;获取所述存储端所读取的数据。可以提高数据读取效率。可以提高数据读取效率。可以提高数据读取效率。

【技术实现步骤摘要】
一种数据读取方法、装置、设备以及存储介质


[0001]本公开涉及数据处理
,尤其涉及分布式数据存储技术。

技术介绍

[0002]基于分布式一致性算法构建的分布式存储系统能够保持元数据的一致性,因此被广泛地应用于各种应用场景中对数据进行分布式的存储。

技术实现思路

[0003]本公开提供了一种用于提高数据读取效率的方法、装置、设备以及存储介质。
[0004]根据本公开的一方面,提供了一种数据读取方法,包括:
[0005]获取目标应用针对目标复制组生成的第一读请求;
[0006]确定所述目标复制组对应于所述目标应用的最新提交索引,所述最新提交索引用于表示所述目标应用最后一次在所述目标复制组写入数据后所述目标复制组的提交索引;
[0007]向所述目标复制组所属的存储端发送携带有所述最新提交索引第二读请求,所述第二读请求用于驱动所述存储端从应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;
[0008]获取所述存储端所读取的数据。
[0009]根据本公开的第二方面,提供了一种数据读取方法,包括:
[0010]接收客户端发送的携带有最新提交索引的第二读请求,所述最新提交索引用于表示所述客户端的目标应用最后一次在目标复制组写入数据后所述目标复制组的提交索引,所述目标复制组为所述目标应用生成的第一读请求所针对的复制组,且属于所述存储端;
[0011]从目标复制组中应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;
[0012]将所读取的数据发送至所述客户端。
[0013]根据本公开的第三方面,提供了一种数据读取装置,包括:
[0014]第一请求获取模块,用于获取目标应用针对目标复制组生成的第一读请求;
[0015]提交索引确定模块,用于确定所述目标复制组对应于所述目标应用的最新提交索引,所述最新提交索引用于表示所述目标应用最后一次在所述目标复制组写入数据后所述目标复制组的提交索引;
[0016]第一请求发送模块,用于向所述目标复制组所属的存储端发送携带有所述最新提交索引第二读请求,所述第二读请求用于驱动所述存储端从应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;
[0017]数据获取模块,用于获取所述存储端所读取的数据。
[0018]根据本公开的第四方面,提供了一种数据读取装置,包括:
[0019]第二请求获取模块,用于接收客户端发送的携带有最新提交索引的第二读请求,所述最新提交索引用于表示所述客户端的目标应用最后一次在目标复制组写入数据后所
述目标复制组的提交索引,所述目标复制组为所述目标应用生成的第一读请求所针对的复制组,且属于所述存储端;
[0020]第一数据读取模块,用于从目标复制组中应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;
[0021]数据发送模块,用于将所读取的数据发送至所述客户端。
[0022]根据本公开提供的第五方面,提供了一种客户端设备,包括:
[0023]至少一个处理器;以及
[0024]与所述至少一个处理器通信连接的存储器;其中,
[0025]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面中任一项所述的方法。
[0026]根据本公开提供的第六方面,提供了一种存储端设备,包括:
[0027]至少一个处理器;以及
[0028]与所述至少一个处理器通信连接的存储器;其中,
[0029]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第二方面中任一项所述的方法。
[0030]根据本公开提供的第七方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行根据上述第一方面或第二方面中任一项所述的方法。
[0031]根据本公开提供的第八方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述第一方面或第二方面中任一项所述的方法。
[0032]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0033]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0034]图1是根据本公开提供的基于Raft的分布式存储系统的一种结构示意图;
[0035]图2是根据本公开提供的应用于主副本的数据写入方法的一种示意图;
[0036]图3是根据本公开提供的应用于从副本的数据写入方法的一种示意图;
[0037]图4是根据本公开提供的应用于客户端的数据读取方法的一种示意图;
[0038]图5是根据本公开提供的客户端与存储端的一种交互示意图;
[0039]图6是根据本公开提供的应用于客户端的数据读取方法的另一种示意图;
[0040]图7是根据本公开提供的应用于存储端的数据读取方法的一种流程示意图;
[0041]图8是根据本公开提供的应用于客户端的数据读取装置的一种结构示意图;
[0042]图9是根据本公开提供的应用于存储端的数据读取装置的一种流程示意图;
[0043]图10是用来实现本公开实施例的数据读取方法的电子设备的框图。
具体实施方式
[0044]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0045]本公开提供了一种数据读取方法,应用于客户端,可以如图1所示,包括:
[0046]S101,获取目标应用针对目标复制组生成的第一读请求。
[0047]S102,确定目标复制组对应于目标应用的最新提交索引。
[0048]S103,向目标复制组所属的存储端发送携带有最新提交索引的第二读请求,第二读请求用于驱动存储端从应用索引不小于最新提交索引的副本中读取第一读请求所请求的数据。
[0049]S104,获取存储端所读取的数据。
[0050]选用该实施例,可以利用最新提交索引从存储端读取数据,由于最新提交索引为目标应用最后一次在目标复制组写入数据后目标复制组的提交索引,因此如前述说明,最新提交索引可以视为目标应用最后一次向目标复制组发送的写请求的日志的日志索引,并且由于日志的提交与应用是逐一进行的,因此如果一个副本的应用索引不小于该日志的日志索引,则可以认为该副本已经将目标应用每次向目标复制组发送本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据读取方法,包括:获取目标应用针对目标复制组生成的第一读请求;确定所述目标复制组对应于所述目标应用的最新提交索引,所述最新提交索引用于表示所述目标应用最后一次在所述目标复制组写入数据后所述目标复制组的提交索引;向所述目标复制组所属的存储端发送携带有所述最新提交索引的第二读请求,所述第二读请求用于驱动所述存储端从应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;获取所述存储端所读取的数据。2.根据权利要求1所述的方法,还包括:当接收到所述存储端发送的复制组针对应用生成的写应答请求,在所述应用对应的专属映射表中,将所述复制组对应的提交索引更改为所述写应答请求所携带的提交索引,所述写应答请求为在所述应用在所述复制组中写入数据后生成的,并且携带有所述应用在所述复制组中写入数据后所述复制组的提交索引;所述确定所述目标复制组对应于所述目标应用的最新提交索引,包括:将所述目标应用对应的专属映射表中所述目标复制组对应的提交索引确定为最新提交索引。3.根据权利1所述的方法,还包括:当接收到所述存储端发送的复制组针对应用生成的写应答请求,并且所述写应答请求所携带的提交索引大于共享映射表中所述复制组对应的提交索引;则在所述共享映射表中将所述复制组对应的提交索引更新为所述写应答请求所携带的提交索引;如果未成功确定所述目标复制组对应于所述目标应用的最新提交索引,将所述共享映射表中所述目标复制组对应的提交索引确定为目标提交索引;向所述目标复制组所属的存储端发送携带有所述目标提交索引的第三读请求,所述第三读请求用于驱动所述存储端从应用索引不小于所述目标提交索引的副本中读取所述第一读请求所请求的数据。4.根据权利要求1所述的方法,还包括:如果未成功确定所述目标复制组对应于所述目标应用的最新提交索引,向所述存储端发送未携带最新提交索引的第四读请求,所述第四读请求用于驱动所述存储端从所述目标复制组的主副本中读取所述第一读请求所请求的数据。5.一种数据读取方法,包括:接收客户端发送的携带有最新提交索引的第二读请求,所述最新提交索引用于表示所述客户端的目标应用最后一次在目标复制组写入数据后所述目标复制组的提交索引,所述目标复制组为所述目标应用生成的第一读请求所针对的复制组,且属于所述存储端;从目标复制组中应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;将所读取的数据发送至所述客户端。6.根据权利要求5所述的方法,还包括:接收所述客户端发送的未携带有提交索引的第四读请求;从所述目标复制组的主副本中读取所述第一读请求所请求的数据。
7.一种数据读取装置,包括:第一请求获取模块,用于获取目标应用针对目标复制组生成的第一读请求;提交索引确定模块,用于确定所述目标复制组对应于所述目标应用的最新提交索引,所述最新提交索引用于表示所述目标应用最后一次在所述目标复制组写入数据后所述目标复制组的提交索引;第一请求发送模块,用于向所述目标复制组所属的存储端发送携带有所述最新提交索引第二读请求,所述第二读请求用于驱动所述存储端从应用索引不小于所述最新提交索引的副本中读取所述第一读请求所请求的数据;数据获取模块,用于获取所述存储端所读取的数据。8.根据权利要求7所述的装置,所述装置还包括专属映射表更新模块,用于每当接收到所述存储端发送的复制组针...

【专利技术属性】
技术研发人员:易正利
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1