数据的强一致性读取方法及终端设备技术

技术编号:19692251 阅读:28 留言:0更新日期:2018-12-08 11:17
本发明专利技术适用于计算机技术领域,提供了一种数据的强一致性读取方法及终端设备,其中,所述方法包括:根据IO请求确定待读取数据的数据块,重定向读操作到本地缓存;若本地缓存中有该数据块,则添加读锁锁定;若数据块中数据状态为第一预设状态,则从本地缓存中读取MD5值;重定向读操作到对象存储单元,对比该MD5值与对象存储单元中MD5值,若不同,从对象存储单元中读取数据,更新数据块中数据,设置数据状态为第二预设状态,并更新本地缓存中MD5值,解除读锁锁定,可以通过添加读锁,确保缓存中数据强一致性,通过MD5值校验,保证缓存中数据初次使用时,与对象存储中数据一致,使对象存储服务应用于对数据一致性要求较高的应用中。

【技术实现步骤摘要】
数据的强一致性读取方法及终端设备
本专利技术属于计算机
,尤其涉及一种数据的强一致性读取方法及终端设备。
技术介绍
随着云计算技术的迅猛发展与大数据时代的到来,具有安全可靠、容量弹性伸缩、简单易用、高性能、低成本等特点的分布式对象存储服务得到企业应用系统的广泛使用。当前对象存储服务提供商为了增强用户体验,通过数据的多副本异步复制实现系统的高可用和数据的最终一致性,保障了用户感知到的一致性。但是对于部分需要提供强一致性的企业(例如医疗领域、金融领域等)来说,仅仅依靠云对象存储服务自身的数据管理机制并不能满足强一致性的需要。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数据的强一致性读取方法及终端设备,以解决现有对于部分需要提供强一致性的企业来说,仅仅依靠云对象存储服务自身的数据管理机制并不能满足强一致性需要的问题。本专利技术实施例的第一方面提供了一种数据的强一致性读取方法,包括:根据对对象存储单元读取数据的输入/输出(Input/Output,IO)请求重定确定待读取数据的数据块,向读操作到本地缓存,并检测所述本地缓存中是否有所述数据块;若所述本地缓存中有所述数据块,则对所述数据块添加读锁锁定,并获取所述数据块中数据的状态;若所述数据块中数据的状态为第一预设状态,则从所述本地缓存中读取消息摘要算法(MessageDigestAlgorithm,MD)5值;根据所述IO请求重定向读操作到所述对象存储单元,若读取的MD5值与所述对象存储单元中的MD5值不同,则根据重定向的读操作从所述对象存储单元中读取数据,根据读取的数据更新所述数据块中的数据,将更新后的数据的状态设置为第二预设状态,并根据所述对象存储单元中的MD5值更新所述本地缓存中的MD5值,解除所述读锁锁定。可选的,上述的数据的强一致性读取方法还包括:若所述数据块中数据的状态为所述第二预设状态,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。可选的,上述的数据的强一致性读取方法还包括:若读取的MD5值与所述对象存储单元中的MD5值相同,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。可选的,在所述根据重定向的读操作从所述对象存储单元中读取数据之后,还包括:将读取的MD5值加入超文本传输协议(HyperTextTransferProtocol,HTTP)请求,对加入MD5值的HTTP请求添加If-Match标签,并将添加If-Match标签的HTTP请求发送至所述对象存储单元。可选的,上述的数据的强一致性读取方法还包括:若所述本地缓存中没有所述数据块,则根据所述IO请求重定向读操作到所述对象存储单元,根据重定向的读操作从所述对象存储单元中读取数据,将读取的数据保存到所述本地缓存中,并将保存的数据的状态设置为所述第二预设状态。本专利技术实施例的第二方面提供了一种数据的强一致性读取装置,包括:第一读操作重定向单元,用于根据对对象存储单元读取数据的IO请求确定待读取数据的数据块,重定向读操作到本地缓存,并检测所述本地缓存中是否有所述数据块;数据状态获取单元,用于若所述本地缓存中有所述数据块,则对所述数据块添加读锁锁定,并获取所述数据块中数据的状态;MD5值读取单元,用于若所述数据块中数据的状态为第一预设状态,则从所述本地缓存中读取MD5值;第一数据读取单元,用于根据所述IO请求重定向读操作到所述对象存储单元,若读取的MD5值与所述对象存储单元中的MD5值不同,则根据重定向的读操作从所述对象存储单元中读取数据,根据读取的数据更新所述数据块中的数据,将更新后的数据的状态设置为第二预设状态,并根据所述对象存储单元中的MD5值更新所述本地缓存中的MD5值,解除所述读锁锁定。可选的,上述的数据的强一致性读取装置还包括:第二数据读取单元,用于若所述数据块中数据的状态为所述第二预设状态,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。可选的,上述的数据的强一致性读取装置还包括:第三数据读取单元,用于若读取的MD5值与所述对象存储单元中的MD5值相同,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。本专利技术实施例的第三方面提供了一种数据的强一致性读取终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。本专利技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例在读取数据时,先读取本地缓存中数据,若缓存中不存在,则说明在缓存范围内未进行该块的读写操作,有充足的时间保证对象存储中数据块的最终一致性,而且通过在本地缓存中添加读锁,同一数据块不允许并发读写操作,允许并发读操作,确保缓存中数据的强一致性,通过数据块的MD5值校验,保证缓存中的数据在初次使用时,与对象存储中数据一致,可以使客户端在并发读数据时,得到的都是最新的数据,避免对象存储的最终一致性对数据可能造成的损失,扩大了对象存储的应用范围,增加了对象存储运营商的资源销售收入,使对象存储服务可以应用于对数据一致性要求较高的应用中,如金融行业、医疗行业,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种数据的强一致性读取方法的示意流程图;图2是本专利技术另一实施例提供的一种数据的强一致性读取方法的示意流程图;图3是本专利技术再一实施例提供的一种数据的强一致性读取方法的示意流程图;图4是本专利技术又一实施例提供的一种数据的强一致性读取方法的示意流程图;图5是本专利技术又一实施例提供的一种数据的强一致性读取方法的示意流程图;图6是本专利技术实施例提供的一种数据的强一致性读取装置的示意性框图;图7是本专利技术另一实施例提供的一种数据的强一致性读取装置示意性框图;图8是本专利技术实施例提供的一种数据的强一致性读取终端设备的示意性框图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。参见图1,图1是本专利技术实施例提供的一种数据的强一致性读取方法的示意流程图,在该实施例中,以终端的角度触发为例进行说明,这里,终端可以为智能手机、平板电脑等移动终端。如图1所示,在该实施例中,终端的处理过程可以包括以下步骤:S101:根据对对象存储单元读取数据的IO请求确定待读取数据的数据块,重定向读操作到本地缓存,并检测所述本地缓存中是本文档来自技高网...

【技术保护点】
1.一种数据的强一致性读取方法,其特征在于,包括:根据对对象存储单元读取数据的输入/输出IO请求确定待读取数据的数据块,重定向读操作到本地缓存,并检测所述本地缓存中是否有所述数据块;若所述本地缓存中有所述数据块,则对所述数据块添加读锁锁定,并获取所述数据块中数据的状态;若所述数据块中数据的状态为第一预设状态,则从所述本地缓存中读取消息摘要算法MD5值;根据所述IO请求重定向读操作到所述对象存储单元,若读取的MD5值与所述对象存储单元中的MD5值不同,则根据重定向的读操作从所述对象存储单元中读取数据,根据读取的数据更新所述数据块中的数据,将更新后的数据的状态设置为第二预设状态,并根据所述对象存储单元中的MD5值更新所述本地缓存中的MD5值,解除所述读锁锁定。

【技术特征摘要】
1.一种数据的强一致性读取方法,其特征在于,包括:根据对对象存储单元读取数据的输入/输出IO请求确定待读取数据的数据块,重定向读操作到本地缓存,并检测所述本地缓存中是否有所述数据块;若所述本地缓存中有所述数据块,则对所述数据块添加读锁锁定,并获取所述数据块中数据的状态;若所述数据块中数据的状态为第一预设状态,则从所述本地缓存中读取消息摘要算法MD5值;根据所述IO请求重定向读操作到所述对象存储单元,若读取的MD5值与所述对象存储单元中的MD5值不同,则根据重定向的读操作从所述对象存储单元中读取数据,根据读取的数据更新所述数据块中的数据,将更新后的数据的状态设置为第二预设状态,并根据所述对象存储单元中的MD5值更新所述本地缓存中的MD5值,解除所述读锁锁定。2.如权利要求1所述的数据的强一致性读取方法,其特征在于,还包括:若所述数据块中数据的状态为所述第二预设状态,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。3.如权利要求1所述的数据的强一致性读取方法,其特征在于,还包括:若读取的MD5值与所述对象存储单元中的MD5值相同,则根据重定向的读操作从所述数据块中读取数据,并在读取完成后,解除所述读锁锁定。4.如权利要求1所述的数据的强一致性读取方法,其特征在于,还包括:将读取的MD5值加入超文本传输协议HTTP请求,对加入MD5值的HTTP请求添加If-Match标签,并将添加If-Match标签的HTTP请求发送至所述对象存储单元;接收所述对象存储单元返回的响应结果,根据所述响应结果确定读取的MD5值与所述对象存储单元中的MD5值是否相同。5.如权利要求1所述的数据的强一致性读取方法,其特征在于,还包括:若所述本地缓存中没有所述数据块,则根据所述IO请求重定向读操作到所述对象存储单元,根据重定向的读操作从所述对象存储单元中读取数据,...

【专利技术属性】
技术研发人员:邹海锋
申请(专利权)人:深圳市远行科技股份有限公司
类型:发明
国别省市:广东,44

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

1