CN115237444A - 基于版本号的并发控制方法、装置、设备及存储介质 - Google Patents
基于版本号的并发控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115237444A CN115237444A CN202210897516.5A CN202210897516A CN115237444A CN 115237444 A CN115237444 A CN 115237444A CN 202210897516 A CN202210897516 A CN 202210897516A CN 115237444 A CN115237444 A CN 115237444A
- Authority
- CN
- China
- Prior art keywords
- data
- version number
- concurrent
- template
- control
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机技术领域,提供一种基于版本号的并发控制方法、装置、设备及存储介质,对待并发控制数据与预设的初始并发版本号模板中的运算位建立对应关系,对待并发控制数据分别进行控制,可以更灵活控制数据,当初始并发版本号模板中的运算位对应的待并发控制数据变化时,同时更新对应运算位中的数据,得到目标版本号模板数据,根据待并发控制数据中数据对应的目标版本号模板数据,通过位运算,判断待并发控制数据中数据是否多次更新,当版本号增加时,可以根据待并发控制数据中数据是否多次更新,使版本号可以及时更新。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于版本号的并发控制方法、装置、计算机设备及存储介质。
背景技术
随着大数据时代的来临,并发控制是现今互联网保证数据同步的一种常用手段,并发控制是指对多个正在运行的程序进行协调的活动。当多个程序同时访问一个数据对象时,可能造成冲突,导致数据不一致,数据不一致的具体表现包括读取到处于中间状态的数据、对数据的修改未能生效、多次重复读取到的数据值不相同等。
目前,并发控制常用的方法为有锁机制,有锁机制中根据版本号对数据进行并发控制,在并发控制的过程中,对每个运行的程序进行加锁处理,在对锁进行申请和释放时,会影响数据的快速反馈,使数据版本号滞后,对数据进行访问时,存在访问的数据与真实数据不一致的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种基于版本号的并发控制方法、装置、计算机设备及存储介质,以解决数据版本号滞后的问题。
本申请实施例的第一方面提供了一种基于版本号的并发控制方法,包括:
根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
进一步地,所述根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位之前,还包括:
根据所述待并发控制数据,设置并发版本号模板;
对所述并发版本号模板进行初始化处理,得到所述初始并发版本号模板。
进一步地,所述根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位,包括:
对所述待并发控制数据进行排序,依次得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位。
进一步地,所述当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据,包括:
根据所述预设的初始并发版本号模板,设置所述初始并发版本号模板中数据的更新规则;
当所述待并发控制数据变化时,根据所述更新规则,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到所述对应的目标版本号模板数据。
进一步地,所述基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新之前,还包括:
在访问所述待并发控制数据中的数据对象后,验证所述待并发控制数据版本号是否为最新版本号;
若是最新版本号,则对目标版本号模板数据,进行位运算。
进一步地,所述基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新,包括:
通过位运算,对所述待并发控制数据中数据对应的目标版本号模板数据中任意两个目标版本号模板数据进行比较,若得到第一数值,则所述待并发控制数据中的同一个数据进行了多次更新;
若得到第二数值,则所述待并发控制数据中的同一个数据没有进行多次更新。
进一步地,所述若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新,包括:
基于预先设置的版本号更新规则,对所述待并发控制数据的版本号依次进行多次更新。
本申请实施例的第二方面提供了一种基于版本号的并发控制方法装置,包括:
对应单元:根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
控制单元:当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
判断单元:基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
更新单元:若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
本申请实施例的第三方面提供了一种计算机设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,该计算机指令用于使该计算机执行基于版本号的并发控制方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行基于版本号的并发控制方法的各步骤。
实施本申请实施例提供的一种基于版本号的并发控制方法具有以下有益效果:
本发明涉及计算机技术领域,提供一种基于版本号的并发控制方法,对待并发控制数据与预设的初始并发版本号模板中的运算位建立对应关系,对待并发控制数据分别进行控制,以便更灵活控制每一个待并发控制数据,当初始并发版本号模板中的运算位对应的待并发控制数据变化时,同时更新对应运算位中的数据,得到目标版本号模板数据,目标版本号模板数据记录了同一时间不同待并发控制数据的变化情况,不同的目标版本号模板数据可以更清楚地记录同一时间同一个待并发控制数据的多次更新,根据待并发控制数据中数据对应的目标版本号模板数据,通过位运算,判断待并发控制数据中数据是否多次更新,当版本号增加时,可以根据待并发控制数据中数据是否多次更新,使版本号可以及时更新,防止出现版本号滞后,以便更准确地访问任意的待并发控制数据。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于版本号的并发控制方法的实现流程图;
图2是本申请另一实施例提供的一种基于版本号的并发控制方法的实现流程图;
图3是本申请再一实施例提供的一种基于版本号的并发控制方法的实现流程图;
图4是本申请实施例提供的一种基于版本号的并发控制方法装置的结构框图;
图5是本申请实施例提供的一种终端设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本本申请涉及的基于版本号的并发控制方法,应用于计算机技术领域,可以由服务器端执行。
请参阅图1,图1示出了本申请实施例提供的一种基于版本号的并发控制方法的实现流程图。
如图1所示,一种基于版本号的并发控制方法,包括:
S11:根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
在步骤S11中,待并发控制数据为待更新版本号的实时数据,预设的初始并发版本号模板为由多个运算位组成,其中运算位的运算位大于或等于待并发控制数据的个数,以确保待并发控制数据中的每一个数据可以对应一个运算位,从而得到待并发控制数据中的数据在初始并发版本号模板中对应的运算位。
本实施例中,对订单的生命周期进行版本号控制,订单信息中涵盖主订单信息、支付信息、商品单信息、下单人信息、收货人信息、物流信息、评价信息等,并使用ES技术方便用户通过各个维度对数据进行检索。使用Json数据存储订单信息,JSON数据结构是由字符串组成的,文法简单易读,对象与数据之间的转换较灵活,使用简单的分隔符区分数据名称和值域,冗余度较小,适于作为数据传输的载体,且JSON数据结构因存在大量的分隔符,导致标识符与实践属性值之间很难区分是文本还是标识符,所以在传输的过程中,数据较安全。本实施例中的待并发控制数据为订单信息、支付信息、商品单信息、下单人信息、收货人信息、物流信息、评价信息等,根据待并发控制数据中数据的个数预设初始并发版本号模板,本实施例中,预设初始并发版本号模板为包含8个运算位的运算位,每一个运算位上的初始数据为0,根据待并发控制数据与预设的初始并发版本号模板,从预设的初始并发版本号模板中依次找到一个运算位与待并发控制数据中的数据相对应。
需要说明的是,在预设的初始并发版本号模板中,每一个运算位上的初始数据可以为任意数,例如,当对预设的初始并发版本号模板中的运算位进行二进制的位运算时,预设的初始并发版本号模板中每一个运算位上的初始数据为0或者1,当为0时,待并发控制数据中的数据发生变化时,预设的初始并发版本号模板中的运算位上的数据变为1,当为1时,待并发控制数据中的数据发生变化时,预设的初始并发版本号模板中的运算位上的数据变为0。
作为本申请一实施例,步骤S11具体包括:
对所述待并发控制数据进行排序,依次得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位。
本实施例中,订单的生命周期中的待并发控制数据为7位,对订单信息中涵盖主订单信息、支付信息、商品单信息、下单人信息、收货人信息、物流信息、评价信息依次进行排序,例如,订单信息为第一控制数据,支付信息为第二控制数据,商品单信息为第三控制数据,下单人信息为第四控制数据,收货人信息为第五控制数据,物流信息为第六控制数据,评价信息为第七控制数据。则第一控制数据对应模板中的第一位,第二控制数据对应模板中的第二位,第三控制数据对应模板中的第三位,第四控制数据对应模板中的第四位,第五控制数据对应模板中的第五位,第六控制数据对应模板中的第六位,第七控制数据对应模板中的第七位。
需要说明的是,当待并发控制数据可以进行明确划分时,可以对划分后的数据进行组合变更,例如,将待并发控制数据按照业务域分组,评价信息和追评信息就是评价信息业务域的,发货时间和收货时间都是物流信息业务域的,将每一个业务域作为待并发控制数据中的一个数据,对划分后的业务域进行依次排序,在初始版本号的模板中依次找到对应的运算位。
S12:当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
在步骤S12中,记录待并发控制数据中变更的数据,当待并发控制数据变更时,变更待并发控制数据在预设的初始并发版本号模板中对应运算位上的数据,得到对应的目标版本号模板数据,当待并发控制数据没有发生变更时,目标版本号模板数据与初始并发版本号模板数据相同。
本实施例中,预设的初始并发版本号模板为00000000,所以模板中对应位上的数据发生变化时,将对应运算位上的0变成1,本实施例中将订单数据保存至数据库中,对数据库中的数据作为待并发控制数据进行版本号控制,从而得到变更的数据,当数据库中的数据变更时,通过监测数据副本节点判断数据是否发生变更,通过复制技术将数据保存在多个数据副本节点,由于每个副本节点都可以是物理上独立的服务器并且每个服务器都可以对外提供服务,因此多副本的***理论上可以拥有很好的水平可扩展性,从而可以提高***整体的处理能力。同时,由于每个副本节点都可以处理客户端的请求,如果其中一个副本节点出现了故障,客户端的请求可以由其他副本节点来处理,因此多副本***通常也具有较好的可用性。如果某个副本节点出现了永久性的故障(即该节点上的数据无法恢复),由于其他副本节点保存相应的数据,多副本***也能够保证一定条件下的数据容错性。
需要说明的是,在数据库管理***中,可以将一个事务看作一个逻辑单元,该逻辑单元通常由多个数据库操作组成。为了保证数据的正确性,该逻辑单元里的所有操作将是一个整体,它们之间是不可分离的。并且该逻辑单元里所有操作的执行如同在一个时间点上瞬间完成的一样,也就是说,这些操作在执行过程中不会对其他事务的操作产生影响。当一个逻辑单元执行完成后,它对数据库的修改将永久有效并对后续的事务可见。
当监测到待并发控制数据中的数据变更时,初始并发版本号模板中对应运算位上的数据发生变化,将0变位1,例如,当多个数据进行并发控制时,当第一待控制数据对应模板中的运算位数据发生变化,变为10000000,则认为对应的第一待控制数据发生变化,目标版本号模板数据为10000000,当第二待控制数据对应模板中的运算位数据发生变化,变为01000000,则认为对应的第二待控制数据发生变化,目标版本号模板数据为01000000,当待并发控制数据没有变更时,目标版本号模板数据为00000000。
作为本申请一实施例,步骤S12具体包括:
根据所述预设的初始并发版本号模板,设置所述初始并发版本号模板中数据的更新规则;当所述待并发控制数据变化时,根据所述更新规则,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到所述对应的目标版本号模板数据。
本实施例中,根据预设的初始并发版本号模板,设置初始并发版本号模板中数据的更新规则,当初始并发版本号模板中对应运算位中的待并发控制数据发生变化时,若初始并发版本号模板中对应运算位中的数据为00000000时,将初始并发版本号模板中对应运算位中的数据变为1,若初始并发版本号模板中对应运算位中的数据为11111111时,将初始并发版本号模板中对应运算位中的数据变为0。
需要说明的是,若初始并发版本号模板中的数据为ASCII码,当初始并发版本号模板中对应运算位中的待并发控制数据发生变化时,改变初始并发版本号模板中对应运算位中的数据,可以根据ASCII码的顺序对对应运算位中的数据进行递增处理,当初始并发版本号模板中对应运算位中的待并发控制数据改变一次,对应运算位上的ASCII码递增一位,当初始并发版本号模板中对应运算位中的待并发控制数据改变两次,对应运算位上的ASCII码递增两位,例如,若初始并发版本号模板中的数据为!,初始并发版本号模板中对应运算位中的待并发控制数据改变一次,对应运算位上的ASCII码变为",初始并发版本号模板中对应运算位中的待并发控制数据改变两次,对应运算位上的ASCII码变为#。
若初始并发版本号模板中的数据为相关字段,可以设置当字段为1时,认为初始并发版本号模板中对应运算位中的待并发控制数据未发生变化,设置字段为2时,认为初始并发版本号模板中对应运算位中的待并发控制数据发生了变化,通过变更状态字段对待并发控制数据进行标记。
根据对应的更新规则,对初始并发版本号模板中的数据进行更新,得到对应的目标版本号模板数据,以便记录待并发控制数据的更新次数。
S13:基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
在步骤S13中,通过位运算中的与运算,判断同一个待并发控制数据是否同时被更新,根据与运算结果,判断待并发控制数据中数据是否多次更新,二进制与运算中,只有当同一个运算位上的数据都为1时,通过与运算,结果为1,当结果为1时,则待并发控制数据中数据同时进行了多次更新。
本实施例中,待并发控制数据中的每一位数据对应一个初始并发版本号模板,当待并发控制数据中的一位数据发生变化时,该数据中的初始并发版本号模板中对应的运算位数据从0变为1。通过二进制中的位运算,当同一个运算位中的数据都为0时,与运算后的结果为0,说明该运算位对应的待并发控制数据没有进行多次更新,当同一个运算位中的数据分别为0和1时,与运算后的结果为0,说明该运算位对应的待并发控制数据没有进行多次更新,当同一个运算位中的数据都为1时,与运算后的结果为1,说明该运算位对应的待并发控制数据进行了多次更新。
作为本申请一实施例,步骤S13具体包括:
通过位运算,对所述待并发控制数据中数据对应的目标版本号模板数据中任意两个目标版本号模板数据进行比较,若得到第一数值,则所述待并发控制数据中的同一个数据进行了多次更新;若得到第二数值,则所述待并发控制数据中的同一个数据没有进行多次更新。
本实施例中,当得到待并发控制数据中的每一位数据的目标版本号模板数据后,目标版本号模板数据的个数与待并发控制数据中的个数相等,当待并发控制数据为多个数据时,目标版本号模板数据也为多个,当进行与运算时,根据目标版本号模板数据从左到右对应的待并发控制数据,任意两个目标版本号模板数据进行比较,例如,第一个待并发控制数据对应的目标版本号模板数据与第二个待并发控制数据对应的目标版本号模板数据进行与运算,通过与运算结果,判断每一个运算位中的运算位对应待并发控制数据是否进行了多次更新,当通过与运算,运算位中的结果为1时,认为待并发控制数据中的同一个数据进行了多次更新,当通过与运算,运算位中的结果为0时,认为待并发控制数据中的同一个数据没有进行多次更新。然后第三个待并发控制数据对应的目标版本号模板数据分别与第一个待并发控制数据对应的目标版本号模板数据与第二个待并发控制数据对应的目标版本号模板数据进行与运算,直到最后一个待并发控制数据对应的目标版本号模板数据分别与其余的待并发控制数据对应的目标版本号模板数据进行了与运算。根据每次与运算后的结果,判断出待并发控制数据是否进行了同时更新。
需要说明的是,若初始并发版本号模板中的数据为ASCII码,当初始并发版本号模板中对应运算位中的待并发控制数据发生变化时,改变初始并发版本号模板中对应运算位中的数据,得到的目标并发版本号模板中的数据,通过任意两个目标版本号模板数据进行比较,根据运算位中的不同数据的个数,判断出同一个待并发控制数据是否进行了同时更新,当只有一个运算位中的数据不相同时,认为待并发控制数据没有进行同时更新,当运算位中不相同的数据有多个时,认为待并发控制数据进行了同时更新。
S14:若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
在步骤S14中,根据与运算结果得到待并发控制数据中数据是否多次更新,若待并发控制数据中数据是多次更新,在进行待并发控制数据版本号更新时,需要在版本号依次更新的基础上,继续增加待并发控制数据版本号。
本实施例中,当第一个待并发控制数据对应的目标版本号模板数据与第二个待并发控制数据对应的目标版本号模板数据进行与运算,得到的结果中每个运算位数据都为0时,认为同一个待并发控制数据没有同时进行更新,在原始版本号的基础上,使版本号依次进行递增,根据第一个待并发控制数据对应的目标版本号模板数据中对应的变化次数,得到最新的待并发控制数据的版本号。根据第二个待并发控制数据对应的目标版本号模板数据中对应的变化次数,在最新的待并发控制数据的版本号基础上,增加待并发控制数据的版本号。
作为本申请一实施例,步骤S14具体包括:
基于预先设置的版本号更新规则,对所述待并发控制数据的版本号依次进行多次更新。
本实施例中,设置的版本号更新规则为对版本号进行递增处理,当同一个待并发控制数据同时进行更新时,根据时间顺序,更新每一次待并发控制数据对应的版本号,例如,当需要更新订单库存时,同时有两个用户对该订单进行了下单处理,订单库存的版本号对应的订单库存量需要根据下单时间进行对应的更新,若原始订单库存的版本号为5,通过与运算得到订单库存对应的运算位结果为1,其余的待并发控制数据没有更新,则此时的待并发控制数据的版本号为7,在进行版本号更新时,根据订单时间对应的库存更新版本号,若原始低昂单库存为10,两个用户对该订单进行了下单处理后,版本号为7时,订单库存为5,第一个用户订单处理的时间比第二个用户订单处理的时间提前,则第一个用户订单处理后,订单库存对应的版本号为6,第二个用户订单处理后,订单库存对应的版本号为7。
请参阅图2,图2是本申请另一实施例提供的一种基于版本号的并发控制方法的实现流程图。相对于图1对应的实施例,本实施例提供的基于版本号的并发控制方法在步骤S11之前还包括步骤S21~S22。详述如下:
S21:根据所述待并发控制数据,设置并发版本号模板;
S22:对所述并发版本号模板进行初始化处理,得到所述初始并发版本号模板。
本实施例中,根据待并发控制数据设置的并发版本号模板为二进制模板,预先设置运算位的个数,二进制模板中每个运算位上的数据都有两种选择,每个运算位上的数据为1或者0。本实施例中,对二进制模板进行初始化处理,对每一个运算位赋予一个数据,作为初始并发版本号模板。例如,对每个运算位赋予一个数据0,初始并发版本号模为00000000。
需要说明的是,当设置并发版本号模板时,也可以对模板中的每个运算位赋予ASCII数据,在进行初始化时,由于ASCII数据中包含较多的字符和数字,可以选择任意一个字符或者数据作为初始并发版本号模板,然后将初始并发版本号模板中的数据依据ASCII表中顺序进行递增处理,ASCII数据做差处理,从而判断待并发控制数据中的同一个待并发控制数据是否进行了多次更新。
请参阅图3,图3是本申请再一实施例提供的一种基于版本号的并发控制方法的实现流程图。相对于图1对应的实施例,本实施例提供的基于版本号的并发控制方法在步骤S13之前还包括步骤S31~S32。详述如下:
S31:在访问所述待并发控制数据中的数据对象后,验证所述待并发控制数据版本号是否为最新版本号;
S32:若是最新版本号,则对目标版本号模板数据,进行位运算。
本实施例中,每个待并发控制数据都维护一个版本号,在访问每个待并发控制数据之前,需要拿到相应的版本号,并将其加入到验证集中,验证集中不仅包括待并发控制数据本身,还包含访问该数据对象时获取的最新版本的版本号。验证待并发控制数据的版本号是否为最新,即可以验证该数据对象是否被修改过。
需要说明的是,若待并发控制数据的版本号不是最新的版本号,则终止当前的数据访问,需要重新获得访问对象的对应的版本号。若是最新版本号,则在最新版本号的基础上,再判断待并发控制数据中数据是否多次更新。从而增加访问对象所对应版本号的准确性。
本发明涉及计算机技术领域,提供一种基于版本号的并发控制方法,对待并发控制数据与预设的初始并发版本号模板中的运算位建立对应关系,对待并发控制数据分别进行控制,以便更灵活控制每一个待并发控制数据,当初始并发版本号模板中的运算位对应的待并发控制数据变化时,同时更新对应运算位中的数据,得到目标版本号模板数据,目标版本号模板数据记录了同一时间不同待并发控制数据的变化情况,不同的目标版本号模板数据可以更清楚地记录同一时间同一个待并发控制数据的多次更新,根据待并发控制数据中数据对应的目标版本号模板数据,通过位运算,判断待并发控制数据中数据是否多次更新,当版本号增加时,可以根据待并发控制数据中数据是否多次更新,使版本号可以及时更新,防止出现版本号滞后,以便更准确地访问任意的待并发控制数据。
请参阅图4,图4是本申请实施例提供的一种基于版本号的并发控制方法装置的结构框图。本实施例中该移动终端包括的各单元用于执行图1至图3对应的实施例中的各步骤。具体请参阅图1至图3以及图1至图3所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,基于版本号的并发控制方法装置40包括:对应单元41、控制单元42、判断单元43以及更新单元44,其中:
对应单元41,用于根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
控制单元42,用于当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
判断单元43,用于基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
更新单元44,用于若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
作为本申请一实施例,基于版本号的并发控制方法装置40还包括:设置单元45与处理单元46。
设置单元45,用于根据所述待并发控制数据,设置并发版本号模板;
处理单元46,用于对所述并发版本号模板进行初始化处理,得到所述初始并发版本号模板。
作为本申请一实施例,基于版本号的并发控制方法装置40还包括:验证单元47与计算单元48。
验证单元47,用于在访问所述待并发控制数据中的数据对象后,验证所述待并发控制数据版本号是否为最新版本号;
运算单元48,用于若是最新版本号,则对目标版本号模板数据,进行位运算。
作为本申请一实施例,对应单元41具体用于,对所述待并发控制数据进行排序,依次得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位。
作为本申请一实施例,控制单元42具体用于,根据所述预设的初始并发版本号模板,设置所述初始并发版本号模板中数据的更新规则;当所述待并发控制数据变化时,根据所述更新规则,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到所述对应的目标版本号模板数据。
作为本申请一实施例,判断单元43具体用于,通过位运算,对所述待并发控制数据中数据对应的目标版本号模板数据中任意两个目标版本号模板数据进行比较,若得到第一数值,则所述待并发控制数据中的同一个数据进行了多次更新;若得到第二数值,则所述待并发控制数据中的同一个数据没有进行多次更新。
作为本申请一实施例,更新单元44具体用于,基于预先设置的版本号更新规则,对所述待并发控制数据的版本号依次进行多次更新。
应当理解的是,图4示出的基于版本号的并发控制方法装置的结构框图中,各单元用于执行图1至图3对应的实施例中的各步骤,而对于图1至图3对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1至图3以及图1至图3所对应的实施例中的相关描述,此处不再赘述。
图5是本申请实施例提供的一种终端设备的结构框图。如图5所示,该实施例的终端设备50包括:处理器51、存储器52以及存储在所述存储器52中并可在所述处理器51上运行的计算机程序53,例如基于版本号的并发控制方法的程序。处理器51执行所述计算机程序53时实现上述各个基于版本号的并发控制方法各实施例中的步骤,例如图1所示的S11至S14,或者图2和图3所示的S21至S14以及S11至S14。或者,所述处理器51执行所述计算机程序53时实现上述图4对应的实施例中各单元的功能,例如,图4所示的单元41至48的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序53可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器52中,并由所述处理器51执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序53在所述终端设备50中的执行过程。例如,所述计算机程序53可以被分割成对应单元41、控制单元42、判断单元43以及更新单元44,各单元具体功能如上所述。
所述转台设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5仅仅是终端设备50的示例,并不构成对终端设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器52可以是所述终端设备50的内部存储单元,例如终端设备50的硬盘或内存。所述存储器52也可以是所述终端设备50的外部存储设备,例如所述终端设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器52还可以既包括所述终端设备50的内部存储单元也包括外部存储设备。所述存储器52用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于版本号的并发控制方法,其特征在于,包括:
根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
2.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位之前,还包括:
根据所述待并发控制数据,设置并发版本号模板;
对所述并发版本号模板进行初始化处理,得到所述初始并发版本号模板。
3.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位,包括:
对所述待并发控制数据进行排序,依次得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位。
4.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据,包括:
根据所述预设的初始并发版本号模板,设置所述初始并发版本号模板中数据的更新规则;
当所述待并发控制数据变化时,根据所述更新规则,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到所述对应的目标版本号模板数据。
5.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新之前,还包括:
在访问所述待并发控制数据中的数据对象后,验证所述待并发控制数据版本号是否为最新版本号;
若是最新版本号,则对目标版本号模板数据,进行位运算。
6.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新,包括:
通过位运算,对所述待并发控制数据中数据对应的目标版本号模板数据中任意两个目标版本号模板数据进行比较,若得到第一数值,则所述待并发控制数据中的同一个数据进行了多次更新;
若得到第二数值,则所述待并发控制数据中的同一个数据没有进行多次更新。
7.如权利要求1所述的基于版本号的并发控制方法,其特征在于,所述若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新,包括:
基于预先设置的版本号更新规则,对所述待并发控制数据的版本号依次进行多次更新。
8.一种基于版本号的并发控制方法装置,其特征在于,
对应单元:根据待并发控制数据与预设的初始并发版本号模板,从所述预设的初始并发版本号模板中确定出所述待并发控制数据的运算位,得到所述待并发控制数据中的数据在所述初始并发版本号模板中对应的运算位;
控制单元:当所述待并发控制数据变化时,分别更新所述待并发控制数据在所述初始并发版本号模板中对应运算位中的数据,得到对应的目标版本号模板数据;
判断单元:基于目标版本号模板数据的位运算结果,判断所述待并发控制数据中数据是否多次更新;
更新单元:若所述待并发控制数据中数据是多次更新,则对所述待并发控制数据的版本号进行多次更新。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述计算机可读指令为权利要求1-7任意一项所述的引擎生成的可读指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述任一权利要求1-7所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210897516.5A CN115237444A (zh) | 2022-07-28 | 2022-07-28 | 基于版本号的并发控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210897516.5A CN115237444A (zh) | 2022-07-28 | 2022-07-28 | 基于版本号的并发控制方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237444A true CN115237444A (zh) | 2022-10-25 |
Family
ID=83677469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210897516.5A Pending CN115237444A (zh) | 2022-07-28 | 2022-07-28 | 基于版本号的并发控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237444A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617392A (zh) * | 2022-12-19 | 2023-01-17 | 北京赛目科技股份有限公司 | 一种版本号的确定方法及装置 |
CN117742777A (zh) * | 2024-02-21 | 2024-03-22 | 沐曦集成电路(上海)有限公司 | 芯片文件版本管理*** |
-
2022
- 2022-07-28 CN CN202210897516.5A patent/CN115237444A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617392A (zh) * | 2022-12-19 | 2023-01-17 | 北京赛目科技股份有限公司 | 一种版本号的确定方法及装置 |
CN117742777A (zh) * | 2024-02-21 | 2024-03-22 | 沐曦集成电路(上海)有限公司 | 芯片文件版本管理*** |
CN117742777B (zh) * | 2024-02-21 | 2024-05-03 | 沐曦集成电路(上海)有限公司 | 芯片文件版本管理*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104392B (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
US9990391B1 (en) | Transactional messages in journal-based storage systems | |
CN115237444A (zh) | 基于版本号的并发控制方法、装置、设备及存储介质 | |
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
US10108658B1 (en) | Deferred assignments in journal-based storage systems | |
CN110706101B (zh) | 在区块链中并发执行交易的方法和装置 | |
US11907260B2 (en) | Compare processing using replication log-injected compare records in a replication environment | |
CN104765652A (zh) | 一种数据备份和数据恢复方法及装置 | |
CN108121774B (zh) | 一种数据表备份方法及终端设备 | |
US10592400B2 (en) | System and method for creating variants in a test database during various test stages | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、***及存储介质 | |
CN107391539B (zh) | 事务处理方法、服务器和存储介质 | |
CN112579591B (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN110706108B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN109154880B (zh) | 在分散存储网络中一致的存储数据 | |
US11803317B2 (en) | Interrupted replicated write recognition | |
CN111080209B (zh) | 一种bom的验证方法、***、设备以及存储介质 | |
CN109165208B (zh) | 一种用于将数据加载到数据库中的方法及*** | |
CN112783954A (zh) | 数据访问方法、装置及服务器 | |
CN112561695B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN106293897B (zh) | 组件自动化调度*** | |
CN112445761B (zh) | 一种文件校验方法、装置及存储介质 | |
CN109947775B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
US20240118878A1 (en) | Method and system for determining optimization applicability on intermediate representation from program | |
CN116340430A (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 |