CN112905614A - 数据更新方法及装置、电子设备、计算机可读存储介质 - Google Patents

数据更新方法及装置、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
CN112905614A
CN112905614A CN202110189554.0A CN202110189554A CN112905614A CN 112905614 A CN112905614 A CN 112905614A CN 202110189554 A CN202110189554 A CN 202110189554A CN 112905614 A CN112905614 A CN 112905614A
Authority
CN
China
Prior art keywords
data
update
version
current
updating
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.)
Granted
Application number
CN202110189554.0A
Other languages
English (en)
Other versions
CN112905614B (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.)
Postal Savings Bank of China Ltd
Original Assignee
Postal Savings Bank of China 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 Postal Savings Bank of China Ltd filed Critical Postal Savings Bank of China Ltd
Priority to CN202110189554.0A priority Critical patent/CN112905614B/zh
Publication of CN112905614A publication Critical patent/CN112905614A/zh
Application granted granted Critical
Publication of CN112905614B publication Critical patent/CN112905614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning

Landscapes

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

Abstract

本发明公开了一种数据更新方法及装置、电子设备、计算机可读存储介质。其中,该数据更新方法包括:读取对象数据,其中,对象数据被多个事务对象进行操作处理,之后检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值,若对象数据中存在更新数据,则将所有更新数据进行合并,最后将合并后的更新数据加载至数据当前值中。本发明解决了相关技术中在并发事务下进行数据更新时成功率低的技术问题。

Description

数据更新方法及装置、电子设备、计算机可读存储介质
技术领域
本发明涉及数据更新技术领域,具体而言,涉及一种数据更新方法及装置、电子设备、计算机可读存储介质。
背景技术
“锁”是用于“并发控制”的,其目的是为了在不同用户对同一个数据进行操作时,不会产生不合理的现象,目前,主要有悲观锁和乐观锁,其中,悲观锁的特点是独占和排他,典型的悲观锁主要是共享锁或排他锁;乐观锁会假设数据一般情况下不会造成冲突,所以在对数据进行提交更新时,才会对数据是否发生冲突进行检测,如果发现冲突,则返回给用户错误的信息,让用户决定如何去做,其本质上解决了在并发事务下读取数据的问题,但对于数据读取后,进行数据的更新,仅对数据版本(Version)进行校验,如果不发生冲突则进行更新,否则拒绝更新,所以并没有解决高并发事务下的数据更新问题,即乐观锁的乐观体现在只有一个事务读取和更新,而没有其他事务对数据进行更新的情况,所以一旦在一个事务读取和更新期间,有其他事务也对数据进行更新,那么乐观锁就失去了作用。
相关技术中,在并发事务下使用乐观锁的步骤为:1,从数据源中读取数据,包括数据的版本;2,根据需要对数据进行加工,并准备好需要更新的数据;3,更新前进行数据版本判断;4,若版本一致,则将加工后的数据更新到数据源;5,若版本不一致,则不进行数据更新。那么,如果版本不一致,则将无法进行数据更新,即对数据的变化是零容忍的,一旦发生数据变化,所有的数据更新都会失败,那么在大量并发更新的场景下,将导致大量更新操作要进行重试,也就是再次读取数据、再次进行数据处理、再次进行版本判断,一旦版本再次不一致,将再次重复以上步骤,很可能导致事务超时失败,即便最终更新成功,也会浪费大量的***资源进行重复计算。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据更新方法及装置、电子设备、计算机可读存储介质,以至少解决相关技术中在并发事务下进行数据更新时成功率低的技术问题。
根据本发明实施例的一个方面,提供了一种数据更新方法,包括:读取对象数据,其中,所述对象数据被多个事务对象进行操作处理;检测所述对象数据中是否存在更新数据,其中,所述更新数据是指在当前数据版本的基础上出现变更的数据,所述当前数据版本对应有数据当前值;若所述对象数据中存在所述更新数据,将所有更新数据进行合并;将合并后的所述更新数据加载至所述数据当前值中。
可选地,检测所述对象数据中是否存在更新数据的步骤,包括:以所述数据当前值为基础,检测是否有另一事务对象对所述当前数据版本中的数据当前值进行变更操作,并确定所述对象数据中是否存在更新数据。
可选地,在检测所述对象数据中是否存在更新数据之后,所述数据更新方法还包括:检测所述对象数据中不存在更新数据,记录已读取的所有对象数据;将所有对象数据存储在事务数据库中。
可选地,若所述对象数据中存在更新数据,将所有更新数据进行合并的步骤,包括:若所述对象数据中存在更新数据,计算所述更新数据与数据当前值中保存的原始数据之间的差值;若所述差值在预设差值范围内,将所有更新数据进行合并。
可选地,若所述对象数据中存在更新数据,将所有更新数据进行合并的步骤,还包括:若所述对象数据中存在更新数据,判断所述当前数据版本与历史记录版本是否一致;若所述当前数据版本与所述历史记录版本不一致,对所述当前数据版本中的所有更新数据进行合并;将合并后的所有更新数据加载至所述数据当前值。
可选地,在判断所述当前数据版本与历史记录版本是否一致之后,所述数据更新方法还包括:若所述当前数据版本与历史记录版本一致,记录所述当前数据版本。
根据本发明实施例的另一方面,还提供了一种数据更新装置,包括:读取单元,用于读取对象数据,其中,所述对象数据被多个事务对象进行操作处理;检测单元,用于检测所述对象数据中是否存在更新数据,其中,所述更新数据是指在当前数据版本的基础上出现变更的数据,所述当前数据版本对应有数据当前值;合并单元,用于若所述对象数据中存在所述更新数据时,将所有更新数据进行合并;加载单元,用于将合并后的所述更新数据加载至所述数据当前值中。
可选地,所述检测单元包括:第一检测模块,用于以所述数据当前值为基础,检测是否有另一事务对象对所述当前数据版本中的数据当前值进行变更操作,并确定所述对象数据中是否存在更新数据。
可选地,所述数据更新装置还包括:第二检测模块,用于在检测所述对象数据中是否存在更新数据之后,检测所述对象数据中不存在更新数据,记录已读取的所有对象数据;第一存储模块,用于将所有对象数据存储在事务数据库中。
可选地,所述合并单元包括:第一计算模块,用于若所述对象数据中存在更新数据时,计算所述更新数据与数据当前值中保存的原始数据之间的差值;第一合并模块,用于若所述差值在预设差值范围内时,将所有更新数据进行合并。
可选地,所述合并单元还包括:第一判断模块,用于若所述对象数据中存在更新数据时,判断所述当前数据版本与历史记录版本是否一致;第二合并模块,用于若所述当前数据版本与所述历史记录版本不一致时,对所述当前数据版本中的所有更新数据进行合并;第一加载模块,用于将合并后的所有更新数据加载至所述数据当前值。
可选地,所述数据更新装置还包括:第一记录模块,用于在判断所述当前数据版本与历史记录版本是否一致之后,若所述当前数据版本与历史记录版本一致,记录所述当前数据版本。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的数据更新方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述的数据更新方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的数据更新方法。
在本发明实施例中,通过读取对象数据,其中,对象数据被多个事务对象进行操作处理,之后检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值,若对象数据中存在更新数据,则将所有更新数据进行合并,最后将合并后的更新数据加载至数据当前值中。在该实施例中,通过在现有乐观锁的基础上,对乐观锁在数据更新方面进行增强,使得在一个或多个事务读取和更新期间,即使有其他事务更新数据,也可以在一定容忍范围内完成部分或全部并发事务的数据更新,从而提高并发事务数据更新的成功率,进而解决了相关技术中在并发事务下进行数据更新时成功率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据更新方法的流程图;
图2是根据本发明实施例的另一种可选的数据更新方法的流程图;
图3是根据本发明实施例的一种可选的数据更新装置的示意图;
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
乐观锁,是一种采取更加宽松的加锁机制,为了避免数据库幻读、业务处理时间过长等原因引起数据处理错误的一种机制。
容忍机制,指在一定范围内,能够接受数据变化的程度,即对数据变化的容忍程度,并基于此,尽可能地完成数据更新的机制。
仲裁记录机制,用于判断是否进行数据记录的规则条件。
仲裁更新机制,用于判断是否进行数据更新的规则条件。
本发明下述各实施例可应用于各种行业事务处理中,包括但不限于:银行财务处理、高校学生信息事务管理、各公司事务(例如,人员、工资等)管理等,对数据的操作可以为增删改查四类基本操作,本发明通过在现有乐观锁的基础上,增加了容忍机制,在并发更新时间方面的容忍,可以在需要时(即必须要更新时)才对之前发生的更新数据做合并处理,减少了修改数据当前值的次数,使对同一字段的并发数据更新成为可能,同时,在并发更新数据方面的容忍,可以通过仲裁机制处理尽可能的促成数据更新,提高了并发事务处理的成功率。
下面结合各实施例对本发明进行详细说明。
实施例一
根据本发明实施例,提供了一种数据更新方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的数据更新方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,读取对象数据,其中,对象数据被多个事务对象进行操作处理;
步骤S104,检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值;
步骤S106,若对象数据中存在更新数据,将所有更新数据进行合并;
步骤S108,将合并后的更新数据加载至数据当前值中。
通过上述步骤,可以通过读取对象数据,其中,对象数据被多个事务对象进行操作处理,之后检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值,若对象数据中存在更新数据,则将所有更新数据进行合并,最后将合并后的更新数据加载至数据当前值中。在该实施例中,通过在现有乐观锁的基础上,对乐观锁在数据更新方面进行增强,使得在一个或多个事务读取和更新期间,即使有其他事务更新数据,也可以在一定容忍范围内完成部分或全部并发事务的数据更新,从而提高并发事务数据更新的成功率,进而解决了相关技术中在并发事务下进行数据更新时成功率低的技术问题。
下面结合上述各实施步骤对本发明实施例进行详细说明。
步骤S102,读取对象数据,其中,对象数据被多个事务对象进行操作处理。
在本实施例中,读取的对象数据一般是在对象数据同时被多个事务对象进行操作处理的情况下进行的,数据类型包括但不限于:数字类型(例如,整型、浮点型等)、字符串类型、集合、字典等,多个事务对象可以是多个普通用户、多个管理员,也可以是多个普通用户和管理员,对数据进行的操作处理可以为增、删、改、查四类操作。
以银行账务处理为例,数据类型为数字类型,“增”在账户签约时完成,“删”在账户解约时完成,因此基本上都是一次性的;“查”是四类操作中发生次数最多的,但由于并不对数据本身产生改变,因此多个事务对象在同时操作时是无影响的(但会受其他三类操作的影响);“改”(即数据更新),虽然发生次数没有“查”多,但在数据整个生命周期中(从增到删),是对数据影响最大,也是相对频繁的数据操作。
步骤S104,检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值。
由于在并发事务处理过程,当前一个事务调取对象数据时,可能有另一个事务也同步调取对象数据,并对该对象数据进行查询、修改等操作,因此,在对该对象数据进行操作之前,需要确定对象数据是否发生更新。
在本实施例中,一个事务A如果涉及数据更新,那么可以是“查”-逻辑处理-“改”的过程,而“改”的方向(即数据变化方向)可以是增加(简称方向W)或者减少(简称方向M),由于本实施例应用于并发事务场景中,因此在事务A发生的同时还会伴有其他事务,以两个事务并发为例,另一个事务B会涉及数据更新,那么除了事务自身对数据“改”的方向外,也关心其他事务“改”的方向,也就是数据更新会受其他并发事务对数据“改”的方向的影响,可以表示为一个事务对另一个事务在数据修改方向上的影响,称为“数据变化允许方向”(即数据变化的“容忍度”),可以分为“允许增”(简称方向Z)、“允许减”(简称方向J),方向Z具体细化为允许无限制增(简称方向Z1)和允许一定幅度限制增(简称方向Z2),同理,方向J具体细化为允许无限制减(简称方向J1)和允许一定幅度限制减(简称方向J2)。
本实施例中建立的“仲裁机制”是基于乐观锁,并依据“数据变化方向”和“数据变化允许方向”及相关参数,对多事务并发时的数据更新进行仲裁,决定各事务能否数据更新成功。本实施例中涉及的数据结构如表1所示(针对一个确定账户的):
表1
Figure BDA0002944835450000061
Figure BDA0002944835450000071
如果基于现有的乐观锁,表1中TransOrder为2、3、5的事务均失败,而采取本实施例中基于容忍机制强化后的乐观锁,仅TransOrder为2的事务失败,TransOrder为3、5的事务成功。
可选的,检测对象数据中是否存在更新数据的步骤,包括:以数据当前值为基础,检测是否有另一事务对象对当前数据版本中的数据当前值进行变更操作,并确定对象数据中是否存在更新数据。
在本实施例中,在读取数据的同时,检查在当前版本基础上,是否有其他事务进行了数据更新(例如,“改”),如果有数据更新,则触发“仲裁更新机制”,否则触发“仲裁记录机制”。
作为本实施例可选的实施方式,在检测对象数据中是否存在更新数据之后,数据更新方法还包括:检测对象数据中不存在更新数据,记录已读取的所有对象数据;将所有对象数据存储在事务数据库中。
在本实施例中,当检测对象数据中不存在更新数据时,触发“仲裁记录机制”,在获取数据的同时,直接记录相关数据,并存储在务数据库中。
步骤S106,若对象数据中存在更新数据,将所有更新数据进行合并。
在本实施例中,当检测对象数据中存在更新数据时,则触发“仲裁更新机制”,说明需要对当前版本的数据做合并更新,此时将所有需要更新数据的数据进行合并,并更新到数据当前值。
可选的,若对象数据中存在更新数据,将所有更新数据进行合并的步骤,包括:若对象数据中存在更新数据,计算更新数据与数据当前值中保存的原始数据之间的差值;若差值在预设差值范围内,将所有更新数据进行合并。
上述可选的实施方式,即体现了在乐观锁的基础上,增加容忍机制,即对差值在预设差值范围的数据可以继续进行处理,无需排除这些不会对结果造成影响的对象数据。
如果触发“仲裁更新机制”,说明需要对当前版本的数据做合并更新,此时将所有需要更新数据的数据进行合并,并更新到数据当前值,这是与现有乐观锁的不同点,乐观锁是在每个更新数据时均修改数据当前值,而本发明创造,是在需要时(不得不更新)才对之前发生的更新数据做合并处理,因此,本申请可通过容忍机制减少了修改数据当前值的次数。
另一种可选的,若对象数据中存在更新数据,将所有更新数据进行合并的步骤,还包括:若对象数据中存在更新数据,判断当前数据版本与历史记录版本是否一致;若当前数据版本与历史记录版本不一致,对当前数据版本中的所有更新数据进行合并;将合并后的所有更新数据加载至数据当前值。
另一种可选的,在判断当前数据版本与历史记录版本是否一致之后,数据更新方法还包括:若当前数据版本与历史记录版本一致,记录当前数据版本。
在本实施例中,当更新数据时,需要判断数据版本是否一致,如果一致,触发“仲裁记录机制”,否则,触发“仲裁更新机制”。如果触发“仲裁记录机制”,在数据更新场景下,需要按照在获取数据时记录的相关数据进行仲裁,如果满足仲裁条件,则完成数据记录,作为后续数据更新的依据,否则拒绝;如果触发“仲裁更新机制”,说明需要对当前版本的数据做合并更新,此时将所有需要更新数据的数据进行合并,并更新到数据当前值,这也是与现有乐观锁的不同之处,现有乐观锁一旦发现数据版本不一致便直接拒绝,而本实施例,是通过仲裁机制处理尽可能的促成数据更新,提高了数据更新的成功率。
步骤S108,将合并后的更新数据加载至数据当前值中。
在本实施例中,当数据需要更新时,将所有需要更新数据的数据进行合并,并更新到数据当前值。
图2是根据本发明实施例的另一种可选的数据更新方法的流程图,如图2所示,该方法包括如下步骤:
1,事务进行数据读取操作(例如,“查”),可以基于类似乐观锁的方式进行数据读取;
2,在读取数据的同时,检查在当前版本基础上,是否有其他事务进行了数据更新(例如,“改”),如果有数据更新,则触发“仲裁更新机制”,否则触发“仲裁记录机制”;
3.1,如果触发“仲裁更新机制”,说明需要对当前版本的数据做合并更新,此时将所有需要更新数据的数据进行合并,并更新到数据当前值。与现有的乐观锁在每个更新数据时均修改数据当前值相比,本实施例在需要时(即必须要更新时)才对之前发生的更新数据做合并处理,减少了修改数据当前值的次数;
3.2,如果触发“仲裁记录机制”,在数据读取时,直接记录相关数据;
4,事务读取完数据后,进行各种逻辑处理,并申请更新数据;
5,更新数据时需要判断数据版本是否一致,如果一致,触发“仲裁记录机制”,否则,触发“仲裁更新机制”;
6.1,如果触发“仲裁记录机制”,在数据更新时,需要按照读取数据时记录的相关数据进行仲裁,如果满足仲裁条件,则完成数据记录,作为后续数据更新的依据,否则拒绝;
6.2,如果触发“仲裁更新机制”,则需要对当前版本的数据做合并更新,此时将所有需要更新数据的数据进行合并,并更新到数据当前值。与现有的乐观锁一旦发现数据版本不一致便直接拒绝相比,本实施例通过仲裁机制处理尽可能的促成数据更新,提高了数据更新的成功率。
基于本实施例中的容忍机制,在大量并发数据更新的场景下,允许对同一数据进行并发更新,有效提高了更新成功率,从而提高了处理效率。
下面结合另一种可选的实施例来说明本发明。
实施例二
本发明实施例提出一种数据更新装置,该处理装置中包含的各个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的数据更新装置的示意图,如图3所示,该数据更新装置包括:读取单元30,检测单元32,合并单元34,加载单元36,其中,
读取单元30,用于读取对象数据,其中,对象数据被多个事务对象进行操作处理;
检测单元32,用于检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值;
合并单元34,用于若对象数据中存在更新数据时,将所有更新数据进行合并;
加载单元36,用于将合并后的更新数据加载至数据当前值中。
上述数据更新装置,可以通过读取单元30读取对象数据,其中,对象数据被多个事务对象进行操作处理,之后通过检测单元32检测对象数据中是否存在更新数据,其中,更新数据是指在当前数据版本的基础上出现变更的数据,当前数据版本对应有数据当前值,若对象数据中存在更新数据,则通过合并单元34将所有更新数据进行合并,最后通过加载单元36将合并后的更新数据加载至数据当前值中。在该实施例中,通过在现有乐观锁的基础上,对乐观锁在数据更新方面进行增强,使得在一个或多个事务读取和更新期间,即使有其他事务更新数据,也可以在一定容忍范围内完成部分或全部并发事务的数据更新,从而提高并发事务数据更新的成功率,进而解决了相关技术中在并发事务下进行数据更新时成功率低的技术问题。
可选地,检测单元包括:第一检测模块,用于以数据当前值为基础,检测是否有另一事务对象对当前数据版本中的数据当前值进行变更操作,并确定对象数据中是否存在更新数据。
可选地,数据更新装置还包括:第二检测模块,用于在检测对象数据中是否存在更新数据之后,检测对象数据中不存在更新数据,记录已读取的所有对象数据;第一存储模块,用于将所有对象数据存储在事务数据库中。
可选地,合并单元包括:第一计算模块,用于若对象数据中存在更新数据时,计算更新数据与数据当前值中保存的原始数据之间的差值;第一合并模块,用于若差值在预设差值范围内时,将所有更新数据进行合并。
可选地,合并单元还包括:第一判断模块,用于若对象数据中存在更新数据时,判断当前数据版本与历史记录版本是否一致;第二合并模块,用于若当前数据版本与历史记录版本不一致时,对当前数据版本中的所有更新数据进行合并;第一加载模块,用于将合并后的所有更新数据加载至数据当前值。
可选地,数据更新装置还包括:第一记录模块,用于在判断当前数据版本与历史记录版本是否一致之后,若当前数据版本与历史记录版本一致,记录当前数据版本。
上述的数据更新装置还可以包括处理器和存储器,上述读取单元30,检测单元32,合并单元34,加载单元36等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来用于若对象数据中存在更新数据时,将所有更新数据进行合并,之后用于将合并后的更新数据加载至数据当前值中。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述的数据更新方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的数据更新方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的数据更新方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:读取对象数据,之后检测对象数据中是否存在更新数据,若对象数据中存在更新数据,则将所有更新数据进行合并,最后将合并后的更新数据加载至数据当前值中。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据更新方法,其特征在于,包括:
读取对象数据,其中,所述对象数据被多个事务对象进行操作处理;
检测所述对象数据中是否存在更新数据,其中,所述更新数据是指在当前数据版本的基础上出现变更的数据,所述当前数据版本对应有数据当前值;
若所述对象数据中存在所述更新数据,将所有更新数据进行合并;
将合并后的所述更新数据加载至所述数据当前值中。
2.根据权利要求1所述的方法,其特征在于,检测所述对象数据中是否存在更新数据的步骤,包括:
以所述数据当前值为基础,检测是否有另一事务对象对所述当前数据版本中的数据当前值进行变更操作,并确定所述对象数据中是否存在更新数据。
3.根据权利要求2所述的方法,其特征在于,在检测所述对象数据中是否存在更新数据之后,所述数据更新方法还包括:
检测所述对象数据中不存在更新数据,记录已读取的所有对象数据;
将所有对象数据存储在事务数据库中。
4.根据权利要求1所述的方法,其特征在于,若所述对象数据中存在更新数据,将所有更新数据进行合并的步骤,包括:
若所述对象数据中存在更新数据,计算所述更新数据与数据当前值中保存的原始数据之间的差值;
若所述差值在预设差值范围内,将所有更新数据进行合并。
5.根据权利要求4所述的方法,其特征在于,若所述对象数据中存在更新数据,将所有更新数据进行合并的步骤,还包括:
若所述对象数据中存在更新数据,判断所述当前数据版本与历史记录版本是否一致;
若所述当前数据版本与所述历史记录版本不一致,对所述当前数据版本中的所有更新数据进行合并;
将合并后的所有更新数据加载至所述数据当前值。
6.根据权利要求4所述的方法,其特征在于,在判断所述当前数据版本与历史记录版本是否一致之后,所述数据更新方法还包括:
若所述当前数据版本与历史记录版本一致,记录所述当前数据版本。
7.一种数据更新装置,其特征在于,包括:
读取单元,用于读取对象数据,其中,所述对象数据被多个事务对象进行操作处理;
检测单元,用于检测所述对象数据中是否存在更新数据,其中,所述更新数据是指在当前数据版本的基础上出现变更的数据,所述当前数据版本对应有数据当前值;
合并单元,用于若所述对象数据中存在所述更新数据时,将所有更新数据进行合并;
加载单元,用于将合并后的所述更新数据加载至所述数据当前值中。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6中任意一项所述的数据更新方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的数据更新方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的数据更新方法。
CN202110189554.0A 2021-02-19 2021-02-19 数据更新方法及装置、电子设备、计算机可读存储介质 Active CN112905614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110189554.0A CN112905614B (zh) 2021-02-19 2021-02-19 数据更新方法及装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110189554.0A CN112905614B (zh) 2021-02-19 2021-02-19 数据更新方法及装置、电子设备、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112905614A true CN112905614A (zh) 2021-06-04
CN112905614B CN112905614B (zh) 2024-04-12

Family

ID=76123808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110189554.0A Active CN112905614B (zh) 2021-02-19 2021-02-19 数据更新方法及装置、电子设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112905614B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020127806A1 (en) * 2018-12-20 2020-06-25 Amadeus S.A.S. Updating multiple data records in a database
CN111444199A (zh) * 2019-01-17 2020-07-24 阿里巴巴集团控股有限公司 数据处理方法及装置、存储介质和处理器
CN111694853A (zh) * 2020-06-02 2020-09-22 北京北大软件工程股份有限公司 基于世系的数据增量采集方法、装置、存储介质和电子设备
CN112199391A (zh) * 2020-09-30 2021-01-08 深圳前海微众银行股份有限公司 一种数据加锁检测方法、设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020127806A1 (en) * 2018-12-20 2020-06-25 Amadeus S.A.S. Updating multiple data records in a database
CN111444199A (zh) * 2019-01-17 2020-07-24 阿里巴巴集团控股有限公司 数据处理方法及装置、存储介质和处理器
CN111694853A (zh) * 2020-06-02 2020-09-22 北京北大软件工程股份有限公司 基于世系的数据增量采集方法、装置、存储介质和电子设备
CN112199391A (zh) * 2020-09-30 2021-01-08 深圳前海微众银行股份有限公司 一种数据加锁检测方法、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN112905614B (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
US6772155B1 (en) Looking data in a database system
KR101343212B1 (ko) 온라인 저장 볼륨 축소를 위한 컴퓨터 판독가능 매체,시스템, 및 방법
CN112669155B (zh) 基于区块链的交易分发执行方法、装置服务器及存储介质
US20220171754A1 (en) Method for indexing data in storage engine and related apparatus
US20210326359A1 (en) Compare processing using replication log-injected compare records in a replication environment
CN112084161A (zh) 基于数据库的数据处理方法、装置以及可读存储介质
CN112037058B (zh) 数据验证方法、装置及存储介质
US20080270407A1 (en) System for ensuring referential integrity in highly concurrent database environments
US6718349B2 (en) Intelligent, optimistic concurrency database access scheme
CN115145943B (zh) 多数据源元数据快速比对方法、***、设备和存储介质
JP6877435B2 (ja) データベース動作方法及び装置
CN112052264A (zh) 业务数据查询方法、装置、电子设备及可读存储介质
US11150993B2 (en) Method, apparatus and computer program product for improving inline pattern detection
CN114331440A (zh) 一种冲突检测及性能优化方法和装置
CN112597762B (zh) 一种具有智能合约数据监管功能的区块链***及监管方法
US20160275134A1 (en) Nosql database data validation
CN112559496A (zh) 一种分布式数据库事务原子性实现方法及装置
US7051051B1 (en) Recovering from failed operations in a database system
CN110377614B (zh) 一种分布式环境下的订单处理锁***
CN112732427A (zh) 一种基于Redis集群的数据处理方法、***和相关装置
CN112905614A (zh) 数据更新方法及装置、电子设备、计算机可读存储介质
WO2023206926A1 (zh) 一种恢复用户配置数据的方法、装置及介质
CN116401229A (zh) 数据库的数据校验方法、装置及设备
CN115956240B (zh) 基于增量克隆的数据库升级
CN115203217A (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