CN108959407B - 数据的强一致性写入方法及终端设备 - Google Patents

数据的强一致性写入方法及终端设备 Download PDF

Info

Publication number
CN108959407B
CN108959407B CN201810575082.0A CN201810575082A CN108959407B CN 108959407 B CN108959407 B CN 108959407B CN 201810575082 A CN201810575082 A CN 201810575082A CN 108959407 B CN108959407 B CN 108959407B
Authority
CN
China
Prior art keywords
data
write operation
data block
writing
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810575082.0A
Other languages
English (en)
Other versions
CN108959407A (zh
Inventor
邹海锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Vispractice Technology Co ltd
Original Assignee
Shenzhen Vispractice Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Vispractice Technology Co ltd filed Critical Shenzhen Vispractice Technology Co ltd
Priority to CN201810575082.0A priority Critical patent/CN108959407B/zh
Publication of CN108959407A publication Critical patent/CN108959407A/zh
Application granted granted Critical
Publication of CN108959407B publication Critical patent/CN108959407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于计算机技术领域,提供了一种数据的强一致性写入方法及终端设备,其中,所述方法包括:根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对数据块添加写锁锁定;将数据写入数据块,并在写入本地缓存后,解除写锁锁定;重定向写操作到对象存储单元,获取对数据块最近一次写操作的时间戳;若根据时间戳判定对数据块的写操作未超时,则对写操作进行延时;若延时时间达到预设时间阈值,则停止延时,根据写操作将数据块中的数据写入对象存储单元,可以通过写锁保证缓存文件本身的强一致性,通过写延迟,确保多线程写对象存储的有序操作,使对象存储服务应用于对数据一致性要求较高的应用中。

Description

数据的强一致性写入方法及终端设备
技术领域
本发明属于计算机技术领域,尤其涉及一种数据的强一致性写入方法及终端设备。
背景技术
随着云计算技术的迅猛发展与大数据时代的到来,具有安全可靠、容量弹性伸缩、简单易用、高性能、低成本等特点的分布式对象存储服务得到企业应用系统的广泛使用。当前对象存储服务提供商为了增强用户体验,通过数据的多副本异步复制实现系统的高可用和数据的最终一致性,保障了用户感知到的一致性。但是对于部分需要提供强一致性的企业(例如医疗领域、金融领域等)来说,仅仅依靠云对象存储服务自身的数据管理机制并不能满足强一致性的需要。
发明内容
有鉴于此,本发明实施例提供了一种数据的强一致性写入方法及终端设备,以解决现有对于部分需要提供强一致性的企业来说,仅仅依靠云对象存储服务自身的数据管理机制并不能满足强一致性需要的问题。
本发明实施例的第一方面提供了一种数据的强一致性写入方法,包括:
根据对对象存储单元写入数据的输入/输出(Input/Output,IO)请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定;
根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定;
根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳;
若根据所述时间戳判定对所述数据块的写操作未超时,则对重定向的写操作进行延时;
若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
可选的,上述数据的强一致性写入方法还包括:
若所述本地缓存为持久化设备,则计算所述数据块的消息摘要算法(MessageDigest Algorithm,MD)5值;
将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
可选的,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:
将所述时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中。
可选的,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:
在写入所述对象存储单元后,将所述数据块中数据的状态设置为预设状态,并将设置的状态保存到所述本地缓存。
可选的,上述数据的强一致性写入方法还包括:
根据所述时间戳确定对所述数据块最近一次写操作的时刻;
根据所述时刻和当前时刻确定对所述数据块的写操作时间间隔,若所述写操作时间间隔未达到预设时间间隔阈值,则判定对所述数据块的写操作未超时。
本发明实施例的第二方面提供了一种数据的强一致性写入装置,包括:
第一写操作重定向单元,用于根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定;
第一数据写入单元,用于根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定;
第二写操作重定向单元,用于根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳;
写操作延时单元,用于若根据所述时间戳判定对所述数据块的写操作未超时,则对重定向的写操作进行延时;
第二数据写入单元,用于若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
可选的,所述第一数据写入单元,还用于若所述本地缓存为持久化设备,则计算所述数据块的MD5值;将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
可选的,上述数据的强一致性写入装置还包括:
时间戳更新单元,用于在所述第二数据写入单元根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,将所述时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中。
本发明实施例的第三方面提供了一种数据的强一致性写入终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例在写入数据时,先写入本地缓存,再写入对象存储中,通过写锁保证缓存文件本身的强一致性,通过写延迟,确保多线程写对象存储的有序操作,避免后一个IO请求先到达,前一个IO请求覆盖数据内容,可以使客户端在并发写数据时,得到的都是最新的数据,避免对象存储的最终一致性对数据可能造成的损失,扩大了对象存储的应用范围,增加了对象存储运营商的资源销售收入,使对象存储服务可以应用于对数据一致性要求较高的应用中,如金融行业、医疗行业,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据的强一致性写入方法的示意流程图;
图2是本发明另一实施例提供的一种数据的强一致性写入方法的示意流程图;
图3是本发明再一实施例提供的一种数据的强一致性写入方法的示意流程图;
图4是本发明又一实施例提供的一种数据的强一致性写入方法的示意流程图;
图5是本发明实施例提供的一种数据的强一致性写入装置的示意性框图;
图6是本发明另一实施例提供的一种数据的强一致性写入装置示意性框图;
图7是本发明实施例提供的一种数据的强一致性写入终端设备的示意性框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例提供的一种数据的强一致性写入方法的示意流程图,在该实施例中,以终端的角度触发为例进行说明,这里,终端可以为智能手机、平板电脑等移动终端。如图1所示,在该实施例中,终端的处理过程可以包括以下步骤:
S101:根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定。
这里,当客户端写入数据到对象存储单元时,截取写入数据的IO请求,确定待写入数据的数据块,重定向写操作到本地缓存。具体地,终端可以预存写入方式,在上述截取写入数据的IO请求,确定待写入数据的数据块,根据预存的写入方式重定向写操作到本地缓存,这里预存的写入方式可以为先写入本地缓存,再写入对象存储单元。其中,重定向就是通过各种方法将各种网络请求重新定个方向转到其它位置。
在上述根据预存的写入方式重定向写操作到本地缓存之后,对该数据块添加写锁锁定,其中,写锁,在数据库管理上,是锁的基本类型之一,若事务T对数据对象A加上X锁,则只允许T修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁,保证了其他事务在T释放A上的锁之前不能再修改A,可以确保上述缓存中数据的强一致性。
本地缓存是指将客户机本地的物理内存划分出一部分空间用来缓冲客户机回写到服务器的数据,作用:该技术将客户机回写的数据不再先写入服务器硬盘,而是将回写数据先写入本地缓存,当缓存空间达到一定的阈值时,再将数据回写到服务器,可大大降低服务器读写压力和网络负载。这里,本地缓存可以是内存或持久化设备。对象存储也就是键值存储,一般提供使用HTTP协议通过简单的PUT、GET等接口,适合在云环境中进行大规模的非结构化数据存储使用。
S102:根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定。
具体地,如果未完成写入所述本地缓存,可以经过预设时间间隔重新执行上述根据重定向的写操作将数据写入所述数据块的步骤,直到写入所述本地缓存。
S103:根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳。
这里,同上述,终端可以预存写入方式,在上述将数据写入本地缓存,解除上述写锁锁定之后,根据预存的写入方式重定向写操作到对象存储单元,这里预存的写入可以方式为先写入本地缓存,再写入对象存储单元。
具体地,重定向IO请求写入对象存储,并比较对上述数据块最近一次写操作的时间戳是否超时,其中,对上述数据块最近一次写操作为距离当前时刻最近的对上述数据块成功进行的一次写操作。时间戳,一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
S104:若根据所述时间戳判定对所述数据块的写操作未超时,则对重定向的写操作进行延时。
这里,首先可以根据上述获取的对上述数据块最近一次写操作的时间戳,确定对上述数据块最近一次写操作的时刻,然后根据当前时刻和上述确定的时刻,计算对上述数据块的写操作时间间隔,将该时间间隔与预设时间间隔阈值进行比较,如果该时间间隔未达到预设时间间隔阈值,判定对上述数据块的写操作未超时,写操作暂时休眠,即对上述重定向的写操作进行延时,可以等到达预设延时时间后自动唤醒并执行写操作。上述通过写延迟,确保多线程写对象存储的有序操作,避免后一个IO请求先到达,前一个IO请求覆盖数据内容,可以使客户端在并发写数据时,得到的都是最新的数据,其中,上述预设时间间隔阈值和预设延时时间可以根据实际情况设置。
上述对写操作进行延时是针对同一个对象,不同对象之间不存在写延迟。
S105:若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
具体地,如果延时时间达到预设时间阈值,停止延时,根据上述重定向的写操作将上述数据块中的数据写入对象存储单元,如果未完成写入,可以经过预设时间间隔重新执行上述根据重定向的写操作将上述数据块中的数据写入所述对象存储单元的步骤,直到写入对象存储单元。
从以上描述可知,本发明实施例数据的强一致性写入方法,在写入数据时,先写入本地缓存,再写入对象存储中,通过写锁保证缓存文件本身的强一致性,通过写延迟,确保多线程写对象存储的有序操作,避免后一个IO请求先到达,前一个IO请求覆盖数据内容,可以使客户端在并发写数据时,得到的都是最新的数据,避免对象存储的最终一致性对数据可能造成的损失,扩大了对象存储的应用范围,增加了对象存储运营商的资源销售收入,使对象存储服务可以应用于对数据一致性要求较高的应用中,如金融行业、医疗行业,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。
请参阅图2,图2为本发明另一实施例提供的一种数据的强一致性写入方法的示意流程图。本实施例与上述实施例的区别在于S202~S203,其中S201与上一实施例中的S101相同,S204~S206与上一实施例中的S103~S105相同,具体请参阅上述实施例中S101和S103~S105的相关描述,此处不赘述。本实施例中的数据的强一致性写入方法还可以包括:
S202:根据重定向的写操作将数据写入所述数据块,在写入所述本地缓存后,若所述本地缓存为持久化设备,则计算所述数据块的MD5值。
这里,在本地缓存写入数据时,计算上述数据块的MD5值并保存,这样,在读取本地缓存缓存的数据时,可以通过数据块的MD5值校验缓存中的数据是否合法,适合应用,其中,MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
S203:将所述MD5值保存到所述本地缓存,解除所述写锁锁定。
具体地,若所述本地缓存为持久化设备,除上述计算所述数据块的MD5值外,还可以对所述数据块中的数据进行加密,将加密结果保存到本地缓存,在读取上述数据块中的数据时,对读取的上述加密结果进行解密,可以防止数据被篡改,适合应用。
请参阅图3,图3为本发明再一实施例提供的一种数据的强一致性写入方法的示意流程图。本实施例与上述实施例的区别在于S306,其中S301~S305与上一实施例中的S101~S105相同,具体请参阅上述实施例中S101~S105的相关描述,此处不赘述。本实施例中的数据的强一致性写入方法还可以包括:
S306:将所述时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中。
这里,在上述根据重定向的写操作将上述数据块中的数据写入所述对象存储单元之后,如果写入对象存储单元,将获取的对上述数据块最近一次写操作的时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中,开始新一轮对上述数据块的写操作计时,如果未完成写入,可以经过预设时间间隔重新执行上述根据重定向的写操作将上述数据块中的数据写入所述对象存储单元的步骤,直到写入完成,然后执行上述步骤。
可选的,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:在写入所述对象存储单元后,将所述数据块中数据的状态设置为预设状态,并将设置的状态保存到所述本地缓存。
具体地,在对对象存储单元写入数据时,如果写入完成,将上述数据块中数据的状态设置为预设状态,并将该状态保存到所述本地缓存,这样,在读取上述数据块中的数据时,如果数据的状态为预设状态,说明缓存中数据需要与对象存储中数据进行MD5校验,若校验成功,从缓存中读取内容到目标并返回;若校验不成功,则从对象存储中读取数据,并更新缓存中的数据块。
请参阅图4,图4为本发明又一实施例提供的一种数据的强一致性写入方法的示意流程图。本实施例与上述实施例的区别在于S404~S405,其中S401~S403与上一实施例中的S101~S103相同,S406与上一实施例中的S105相同,具体请参阅上述实施例中S101~S103和S105的相关描述,此处不赘述。本实施例中的数据的强一致性写入方法还可以包括:
S404:根据所述时间戳确定对所述数据块最近一次写操作的时刻。
S405:根据所述时刻和当前时刻确定对所述数据块的写操作时间间隔,若所述写操作时间间隔未达到预设时间间隔阈值,则判定对所述数据块的写操作未超时,对重定向的写操作进行延时。
这里,若所述写操作时间间隔达到预设时间间隔阈值,则判定对上述数据块的写操作超时,可以直接根据重定向的写操作将上述数据块中的数据写入所述对象存储单元。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的数据的强一致性写入方法,图5示出了本发明实施例提供的一种数据的强一致性写入装置的示意性框图。本实施例的数据的强一致性写入装置500包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的数据的强一致性写入装置500包括第一写操作重定向单元501、第一数据写入单元502、第二写操作重定向单元503、写操作延时单元504和第二数据写入单元505。
其中,第一写操作重定向单元501,用于根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定。第一数据写入单元502,用于根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定。第二写操作重定向单元503,用于根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳。写操作延时单元504,用于若根据所述时间戳判定对所述数据块的写操作未超时,则对重定向的写操作进行延时。第二数据写入单元505,用于若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
从以上描述可知,本发明实施例数据的强一致性写入装置,使对象存储服务可以应用于对数据一致性要求较高的应用中,如金融行业、医疗行业,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。
参见图6,图6是本发明另一实施例提供的另一种数据的强一致性写入装置的示意性框图。本实施例的数据的强一致性写入装置600包括第一写操作重定向单元601、第一数据写入单元602、第二写操作重定向单元603、写操作延时单元604、第二数据写入单元605、时间戳更新单元606、状态设置单元607和写操作时刻确定单元608。
其中,第一写操作重定向单元601、第一数据写入单元602、第二写操作重定向单元603、写操作延时单元604和第二数据写入单元605具体请参阅图5及图5对应的实施例中第一写操作重定向单元501、第一数据写入单元502、第二写操作重定向单元503、写操作延时单元504和第二数据写入单元505的相关描述,此处不赘述。
进一步的,所述第一数据写入单元602,还用于若所述本地缓存为持久化设备,则计算所述数据块的MD5值;将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
进一步的,时间戳更新单元606,用于在所述第二数据写入单元根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,将所述时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中。
进一步的,状态设置单元607,用于在写入所述对象存储单元后,将所述数据块中数据的状态设置为预设状态,并将设置的状态保存到所述本地缓存。
进一步的,写操作时刻确定单元608,用于根据所述时间戳确定对所述数据块最近一次写操作的时刻。所述写操作延时单元604,还用于根据所述时刻和当前时刻确定对所述数据块的写操作时间间隔,若所述写操作时间间隔未达到预设时间间隔阈值,则判定对所述数据块的写操作未超时,对重定向的写操作进行延时。
从以上描述可知,本发明实施例在写入数据时,先写入本地缓存,再写入对象存储中,通过写锁保证缓存文件本身的强一致性,通过写延迟,确保多线程写对象存储的有序操作,避免后一个IO请求先到达,前一个IO请求覆盖数据内容,可以使客户端在并发写数据时,得到的都是最新的数据,避免对象存储的最终一致性对数据可能造成的损失,扩大了对象存储的应用范围,增加了对象存储运营商的资源销售收入,使对象存储服务可以应用于对数据一致性要求较高的应用中,如金融行业、医疗行业,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。
参见图7,图7是本发明一个实施例提供的一种数据的强一致性写入终端设备的示意框图。如图7所示,该实施例的数据的强一致性写入终端设备70包括:处理器700、存储器701以及存储在所述存储器701中并可在所述处理器700上运行的计算机程序702,例如数据的强一致性写入程序。所述处理器700执行所述计算机程序702时实现上述各个数据的强一致性写入方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器700执行所述计算机程序702时实现上述各装置实施例中各单元的功能,例如图6所示单元601至608的功能。
所述计算机程序702可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器701中,并由所述处理器700执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序702在所述数据的强一致性写入终端设备70中的执行过程。例如,所述计算机程序702可以被分割成第一写操作重定向单元、第一数据写入单元、第二写操作重定向单元、写操作延时单元、第二数据写入单元、时间戳更新单元、状态设置单元和写操作时刻确定单元,各单元具体功能如下:
根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定;
根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定;
根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳;
若根据所述时间戳判定对所述数据块的写操作未超时,则对重定向的写操作进行延时;
若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
进一步的,各单元具体功能还包括:
若所述本地缓存为持久化设备,则计算所述数据块的MD5值;
将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
进一步的,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:
将所述时间戳更新为重定向的写操作的时间戳,并将更新后的时间戳保存到内存中。
进一步的,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:
在写入所述对象存储单元后,将所述数据块中数据的状态设置为预设状态,并将设置的状态保存到所述本地缓存。
进一步的,各单元具体功能还包括:
根据所述时间戳确定对所述数据块最近一次写操作的时刻;
根据所述时刻和当前时刻确定对所述数据块的写操作时间间隔,若所述写操作时间间隔未达到预设时间间隔阈值,则判定对所述数据块的写操作未超时。
上述方案,在写入数据时,先写入本地缓存,再写入对象存储中,通过写锁保证缓存文件本身的强一致性,通过写延迟,确保多线程写对象存储的有序操作,避免后一个IO请求先到达,前一个IO请求覆盖数据内容,可以使客户端在并发写数据时,得到的都是最新的数据,确保了需要强一致性的企业能够使用对象存储服务而不用承担数据不一致带来的风险。
所述数据的强一致性写入终端设备70可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据的强一致性写入终端设备可包括,但不仅限于,处理器700、存储器701。本领域技术人员可以理解,图7仅仅是数据的强一致性写入终端设备70的示例,并不构成对数据的强一致性写入终端设备70的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据的强一致性写入终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器700可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器701可以是所述数据的强一致性写入终端设备70的内部存储单元,例如数据的强一致性写入终端设备70的硬盘或内存。所述存储器701也可以是所述数据的强一致性写入终端设备70的外部存储设备,例如所述数据的强一致性写入终端设备70上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器701还可以既包括所述数据的强一致性写入终端设备70的内部存储单元也包括外部存储设备。所述存储器701用于存储所述计算机程序以及所述数据的强一致性写入终端设备所需的其他程序和数据。所述存储器701还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据的强一致性写入方法,其特征在于,包括:
根据对对象存储单元写入数据的输入/输出IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定;
根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定;
根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳;其中,对所述数据块最近一次写操作为距离当前时刻最近的对所述数据块成功进行的一次写操作;
若根据所述时间戳判定对所述数据块的最近一次写操作未超时,则对重定向的写操作进行延时;
若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
2.如权利要求1所述的数据的强一致性写入方法,其特征在于,还包括:
若所述本地缓存为持久化设备,则计算所述数据块的消息摘要算法MD5值;
将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
3.如权利要求2所述的数据的强一致性写入方法,其特征在于,在所述根据重定向的写操作将所述数据块中的数据写入所述对象存储单元之后,还包括:
在写入所述对象存储单元后,将所述数据块中数据的状态设置为预设状态,并将设置的状态保存到所述本地缓存。
4.如权利要求1所述的数据的强一致性写入方法,其特征在于,还包括:
根据所述时间戳确定对所述数据块最近一次写操作的时刻;
根据所述时刻和当前时刻确定对所述数据块的写操作时间间隔,若所述写操作时间间隔未达到预设时间间隔阈值,则判定对所述数据块的写操作未超时。
5.一种数据的强一致性写入装置,其特征在于,包括:
第一写操作重定向单元,用于根据对对象存储单元写入数据的IO请求确定待写入数据的数据块,重定向写操作到本地缓存,并对所述数据块添加写锁锁定;
第一数据写入单元,用于根据重定向的写操作将数据写入所述数据块,并在写入所述本地缓存后,解除所述写锁锁定;
第二写操作重定向单元,用于根据所述IO请求重定向写操作到所述对象存储单元,获取对所述数据块最近一次写操作的时间戳;其中,对所述数据块最近一次写操作为距离当前时刻最近的对所述数据块成功进行的一次写操作;
写操作延时单元,用于若根据所述时间戳判定对所述数据块的最近一次写操作未超时,则对重定向的写操作进行延时;
第二数据写入单元,用于若延时时间达到预设时间阈值,则停止延时,根据重定向的写操作将所述数据块中的数据写入所述对象存储单元。
6.如权利要求5所述的数据的强一致性写入装置,其特征在于,所述第一数据写入单元,还用于若所述本地缓存为持久化设备,则计算所述数据块的MD5值;将所述MD5值保存到所述本地缓存,执行所述解除所述写锁锁定的步骤。
7.一种数据的强一致性写入终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述方法的步骤。
CN201810575082.0A 2018-06-06 2018-06-06 数据的强一致性写入方法及终端设备 Active CN108959407B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810575082.0A CN108959407B (zh) 2018-06-06 2018-06-06 数据的强一致性写入方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810575082.0A CN108959407B (zh) 2018-06-06 2018-06-06 数据的强一致性写入方法及终端设备

Publications (2)

Publication Number Publication Date
CN108959407A CN108959407A (zh) 2018-12-07
CN108959407B true CN108959407B (zh) 2020-08-11

Family

ID=64493144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810575082.0A Active CN108959407B (zh) 2018-06-06 2018-06-06 数据的强一致性写入方法及终端设备

Country Status (1)

Country Link
CN (1) CN108959407B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413413A (zh) * 2019-07-26 2019-11-05 北京蜜莱坞网络科技有限公司 一种数据写入方法、装置、设备及存储介质
CN110597838A (zh) * 2019-09-20 2019-12-20 中国银行股份有限公司 一种基于时间的信息系统并发控制方法、设备以及系统
CN110765634B (zh) * 2019-11-01 2023-11-03 新奥数能科技有限公司 一种能效曲线获取方法及装置
CN112860715A (zh) * 2019-11-28 2021-05-28 北京沃东天骏信息技术有限公司 数据处理方法、装置、系统及存储介质
CN112988039B (zh) * 2019-12-18 2024-01-30 中国电信股份有限公司 数据上传方法和装置、云存储网关和系统以及存储介质
CN112596677B (zh) * 2020-12-24 2023-04-18 潍柴动力股份有限公司 电子控制单元的数据存储方法、装置及存储介质
CN115826880B (zh) * 2023-02-14 2023-05-12 北京大道云行科技有限公司 对象存储系统的本地缓存方法、装置、系统、介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577716A (zh) * 2009-06-10 2009-11-11 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
CN103853671A (zh) * 2012-12-07 2014-06-11 北京百度网讯科技有限公司 一种数据写入控制方法及装置
CN107273056A (zh) * 2017-06-30 2017-10-20 郑州云海信息技术有限公司 一种Ceph文件系统的数据存储方法及装置
CN107807797A (zh) * 2017-11-17 2018-03-16 北京联想超融合科技有限公司 数据写入的方法、装置及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577716A (zh) * 2009-06-10 2009-11-11 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
CN103853671A (zh) * 2012-12-07 2014-06-11 北京百度网讯科技有限公司 一种数据写入控制方法及装置
CN107273056A (zh) * 2017-06-30 2017-10-20 郑州云海信息技术有限公司 一种Ceph文件系统的数据存储方法及装置
CN107807797A (zh) * 2017-11-17 2018-03-16 北京联想超融合科技有限公司 数据写入的方法、装置及服务器

Also Published As

Publication number Publication date
CN108959407A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108959407B (zh) 数据的强一致性写入方法及终端设备
CN111344706B (zh) 管理区块链上的交易的方法和系统
CN108037946B (zh) 一种应用程序热更新的方法、系统及服务器
US9589153B2 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
CN106716335B (zh) 映射信息的异步处理
CN112035472B (zh) 数据处理方法、装置、计算机设备和存储介质
CN110543448A (zh) 数据同步方法、装置、设备及计算机可读存储介质
US20170161313A1 (en) Detection and Resolution of Conflicts in Data Synchronization
US20230052935A1 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
CN111144926B (zh) 业务请求处理方法、装置、系统、电子设备及可读介质
WO2020055413A1 (en) Blockchain for audit
WO2022048358A1 (zh) 数据处理方法、装置及存储介质
CN111338834B (zh) 数据存储方法和装置
CN110442601B (zh) 一种Openstack镜像数据并行加速的方法和装置
CN110347750B (zh) 基于区块链的数据处理方法和装置
CN109743179B (zh) 一种电子证照按需签发方法
US10127270B1 (en) Transaction processing using a key-value store
CN113282589A (zh) 一种数据获取方法和装置
CN108959405B (zh) 数据的强一致性读取方法及终端设备
CN108491160B (zh) 一种数据写入方法及装置
US11288140B2 (en) Point in time blob restore
CN110311789B (zh) 数据安全传输方法及装置
US20210044589A1 (en) Access control
CN112559547A (zh) 确定多存储对象副本之间一致性的方法及装置
CN111722946A (zh) 分布式事务处理方法、装置、计算机设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Strong consistency writing method of data and terminal equipment

Effective date of registration: 20220322

Granted publication date: 20200811

Pledgee: Bank of Jiangsu Limited by Share Ltd. Shenzhen branch

Pledgor: SHENZHEN VISPRACTICE TECHNOLOGY CO.,LTD.

Registration number: Y2022440020025

PE01 Entry into force of the registration of the contract for pledge of patent right