CN110502523A - 业务数据存储方法、装置、服务器及计算机可读存储介质 - Google Patents
业务数据存储方法、装置、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110502523A CN110502523A CN201910707251.6A CN201910707251A CN110502523A CN 110502523 A CN110502523 A CN 110502523A CN 201910707251 A CN201910707251 A CN 201910707251A CN 110502523 A CN110502523 A CN 110502523A
- Authority
- CN
- China
- Prior art keywords
- business
- data
- execution data
- database
- synchronized
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000015654 memory Effects 0.000 claims abstract description 121
- 230000001360 synchronised effect Effects 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 26
- 102100037060 Forkhead box protein D3 Human genes 0.000 claims description 15
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000002347 injection Methods 0.000 abstract description 5
- 239000007924 injection Substances 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
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)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种业务数据存储方法,包括当获取到待执行业务时,执行所述待执行业务;获取所述待执行业务在执行过程中生成的执行数据;通过版本控制方式将所述执行数据存储至内存节点;将所述内存节点中的执行数据同步至数据库;该业务数据存储方法通过版本控制实现了业务的强一致性,保证了内存数据与数据库数据的一致性,同时实现了业务和数据库的解耦,无需进行业务代码注入,避免了数据库操作对业务的入侵性影响,保证了业务的稳定性和整体性。本申请还公开了一种业务数据存储装置、服务器及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种业务数据存储方法,还涉及一种业务数据存储装置、服务器以及计算机可读存储介质。
背景技术
现有的AI平台业务服务一般采用K8S微服务架构进行部署,数据库使用高可用方案完成部署,服务之间的访问通过Restful接口完成。但是,微服务架构部署会导致各个模块之间无法通过本地事务完成事务的最终一致性。
为解决上述问题,通用的方案一般是采用基于XA协议(分布事务处理中子事务与全局事务间通讯的接口规范)或TCC方案(两阶段型的分布式事务方案)或消息事务一致性方案。但是,XA协议是一种数据库升级方案,为Oracle官方方案,由于需要额外购买导致使用成本过高;TCC方案则是一种业务代码注入方案,需要在业务代码中增加数据库分段提交的代码,对于业务的入侵性太强,影响业务的整体性和稳定性;消息事务一致性则是使用消息队列存储用户的操作信息,按照消息顺序核对处理,会出现由于消息队列异常导致数据丢失,从而无法实现业务强一致性的问题。
因此,如何在有效降低数据库操作对业务的侵入性影响,保证业务稳定性的同时,实现业务的强一致性是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种业务数据存储方法,该业务数据存储方法在有效降低数据库操作对业务的侵入性影响,保证业务稳定性的同时,实现了业务的强一致性;本申请的另一目的是提供一种业务数据存储装置、服务器以及计算机可读存储介质,也具有上述有益效果。
为解决上述技术问题,本申请提供了一种业务数据存储方法,所述业务数据存储方法包括:
当获取到待执行业务时,执行所述待执行业务;
获取所述待执行业务在执行过程中生成的执行数据;
通过版本控制方式将所述执行数据存储至内存节点;
将所述内存节点中的执行数据同步至数据库。
优选的,所述通过版本控制方式将所述执行数据存储至内存节点,包括:
通过Zookpeer分布式锁为各所述执行数据增设版本号,获得标准执行数据;
按照所述版本号的生成顺序将所述标准执行数据依次存储至所述内存节点;其中,所述版本号的生成顺序为所述执行数据的生成顺序。
优选的,所述通过Zookpeer分布式锁为各所述执行数据增设版本号,包括:
当所述执行数据对应的业务操作为查询操作时,为所述执行数据增设共享锁;
当所述执行数据对应的业务操作为更新操作时,为所述执行数据增设排它锁。
优选的,将所述内存节点中的执行数据同步至数据库,包括:
利用阶段提交技术将所述内存节点中的执行数据同步至日志文件;
利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库。
优选的,所述利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库,包括:
对所述日志文件的可存储空间进行实时统计;
当所述可存储空间低于预设阈值时,将所述日志文件中的执行数据同步至所述数据库。
优选的,所述利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库,包括:
按照预设时间间隔将所述日志文件中的执行数据同步至所述数据库。
优选的,所述业务数据存储方法还包括:
将所述数据库和/或所述日志文件中的执行数据同步至其他内存节点中。
为解决上述技术问题,本申请还提供了一种业务数据存储装置,所述业务数据存储装置包括:
业务执行模块,用于当获取到待执行业务时,执行所述待执行业务;
执行数据获取模块,用于获取所述待执行业务在执行过程中生成的执行数据;
执行数据存储模块,用于通过版本控制方式将所述执行数据存储至内存节点;
执行数据落盘模块,用于将所述内存节点中的执行数据同步至数据库。
为解决上述技术问题,本申请还提供了一种服务器,所述服务器包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一种业务数据存储方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种业务数据存储方法的步骤。
本申请所提供的一种业务数据存储方法,包括当获取到待执行业务时,执行所述待执行业务;获取所述待执行业务在执行过程中生成的执行数据;通过版本控制方式将所述执行数据存储至内存节点;将所述内存节点中的执行数据同步至数据库。
可见,本申请所提供的业务数据存储方法,对于待执行业务在执行过程中所生成的执行数据,可将其通过版本控制的方式暂存至自身的内存中,即上述内存节点,进而实现内存节点与数据库之间数据信息的同步,完成业务执行数据的落盘,由此,通过版本控制实现了业务的强一致性,保证了内存数据与数据库数据的一致性。另外,该种实现方式实现了业务和数据库的解耦,无需进行业务代码注入,避免了数据库操作对业务的入侵性影响,保证了业务的稳定性和整体性。
本申请所提供的一种业务数据存储装置、服务器以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请所提供的一种业务数据存储方法的流程示意图;
图2为本申请所提供的一种业务数据存储系统的架构图;
图3为本申请所提供的一种业务数据存储过程中数据读写管理的流程图;
图4为本申请所提供的一种业务数据存储系统的构建流程示意图;
图5为本申请所提供的一种业务数据存储装置的结构示意图;
图6为本申请所提供的一种服务器的结构示意图。
具体实施方式
本申请的核心是提供一种业务数据存储方法,该业务数据存储方法在有效降低数据库操作对业务的侵入性影响,保证业务稳定性的同时,实现了业务的强一致性;本申请的另一核心是提供一种业务数据存储装置、服务器以及计算机可读存储介质,也具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参考图1,图1为本申请所提供的一种业务数据存储方法的流程示意图,该业务数据存储方法可以包括:
S101:当获取到待执行业务时,执行待执行业务;
本步骤旨在实现业务的执行,具体的,当用户需要进行业务处理时,可基于相应的用户终端发起业务处理请求,由内存节点对该业务处理请求进行处理,即执行上述待执行业务。可以理解的是,该待执行业务与用户需求相对应,其具体类型并不影响本技术方案的实施,本申请对此不做限定。
S102:获取待执行业务在执行过程中生成的执行数据;
本步骤旨在实现执行数据的生成,具体的,待执行业务在被执行过程中,会生成相应的执行数据,其中,该执行数据的具体内容并不唯一,可根据实际情况进行设定,例如,可以包括操作内容、业务类型、业务执行结果等各类业务数据信息。当然,由于一个待执行业务中通常存在多个子业务的情况,因此,其产生的执行数据的数量也不唯一。
S103:通过版本控制方式将执行数据存储至内存节点;
本步骤旨在实现执行数据在内存节点中的存储,具体的,由于待执行业务的执行过程是在内存节点中实现的,待执行业务的继续执行需要基于前期产生的执行数据,因此,可直接将待执行业务对应的执行数据暂存至内存节点中。
进一步,对于上述执行数据存储的具体实现方法,可采用版本控制(Revisioncontrol)的方式实现,具体而言,版本控制是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,其可以透过文档控制(documentationcontrol)记录程序各个模组的改动,并为每次改动编上序号,基于该特性,有效实现了业务的强一致性。其中,版本控制具体可以使用InnoDB中的MVCC实现。
需要说明的是,由于执行数据是待执行业务在执行过程中产生的,一个待执行业务对应的执行数据的数量并不唯一,因此,可采用每产生一条执行数据就进行一次存储的方法,以保证执行数据存储的高效性。
优选的,上述通过版本控制方式将执行数据存储至内存节点,可以包括:通过Zookpeer分布式锁为各执行数据增设版本号,获得标准执行数据;按照版本号的生成顺序将标准执行数据依次存储至内存节点;其中,版本号的生成顺序为执行数据的生成顺序。
本申请实施例提供了一种较为具体的执行数据的存储方法,即基于Zookpeer分布式锁实现对执行数据的版本控制。具体的,可以利用Zookpeer分布式锁为各个待执行数据增设版本号,该版本号相当于唯一标识符,即一条执行数据对应于一个版本号;当然,版本号的增设也可以根据执行数据的生成实时进行。进一步,为保证业务强一致性,在获得增设版本号的执行数据,即上述标准执行数据后,可按照版本号的生成顺序将标准执行数据依次存储至内存节点,当然,该版本号的生成顺序即为执行数据的生成顺序。
优选的,上述通过Zookpeer分布式锁为各执行数据增设版本号,可以包括:当执行数据对应的业务操作为查询操作时,为执行数据增设共享锁;当执行数据对应的业务操作为更新操作时,为执行数据增设排它锁。
具体的,对于不同类型的业务操作,可以通过设置不同类型的Zookpeer分布式锁实现,对于查询业务操作,由于无需进行任何数据改动,因此不设定访问权限,允许任何终端执行,故可为其对应的执行数据增设共享锁;对于更新业务操作,由于需要进行数据改动,因此设定访问权限,不允许任意终端在无权限的情况下执行,故可为其对应的执行数据增设排它锁,由此,完成对执行数据版本号的增设。
S104:将内存节点中的执行数据同步至数据库。
本步骤旨在实现执行数据的落盘,即将内存节点中的执行数据同步至数据库中。同样的,由于执行数据是待执行业务在执行过程中产生的,一个待执行业务对应的执行数据的数量并不唯一,在完成执行数据在内存节点中的存储后,可实时或定时将其同步至数据库中,完成业务的执行数据的落盘。
优选的,上述将内存节点中的执行数据同步至数据库,可以包括:利用阶段提交技术将内存节点中的执行数据同步至日志文件;利用预设落盘策略将日志文件中的执行数据同步至数据库。
本申请实施例提供了一种较为具体的执行数据的落盘方法,即在将执行数据落盘至数据库之前,可先将其同步至预设的日志文件中。具体的,由于数据信息在数据库中的落盘过程存在一定的操作延时,一旦发生内存节点宕机的情况,延时过程所产生的执行数据必然会丢失,从而无法实现业务的强一致性。因此,为解决该问题,对于待执行业务在执行过程中所产生的执行数据,在暂存至内存节点的同时,可实时同步至日志文件中,当内存节点发生故障时,则可以关闭该内存节点,待到故障修复后,再利用日志文件或数据库中的执行数据反馈至内存节点,继续待执行业务的执行。
其中,在将内存节点中的执行数据同步至日志文件中时,可采用阶段提交技术实现,如二阶段提交,三阶段提交,具体是指在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法,可有效提高业务的强一致性。
另外,在将日志文件中的执行数据同步至数据库中时,可采用预设的落盘策略实现,该预设落盘策略可采用已有技术中的任意一种,具体由技术人员根据实际情况进行设定即可,本申请对此不做限定。
优选的,上述利用预设落盘策略将日志文件中的执行数据同步至数据库,可以包括:对日志文件的可存储空间进行实时统计;当可存储空间低于预设阈值时,将日志文件中的执行数据同步至数据库。
本申请实施例提供了一种具体类型的落盘策略,具体的,由于日志文件的存储空间有限,因此,可对日志文件的剩余存储空间,即上述可用存储空间进行实时统计,当其低于预设阈值时,直接将日志文件中的执行数据同步至数据库即可。可以理解的是,该预设阈值的具体取值可根据实际情况进行自定义设置,如总存储空间的10%等,当然,也可以在日志文件写满时再进行执行数据的同步。
优选的,上述利用预设落盘策略将日志文件中的执行数据同步至数据库,可以包括:按照预设时间间隔将日志文件中的执行数据同步至数据库。
本申请实施例提供了另一种具体的落盘策略,即可以按照预设时间间隔将日志文件中的执行数据定时同步至数据库,同样的,该预设时间间隔的具体取值并不影响本技术方案的实施,本申请对此不做限定。
作为一种优选实施例,该业务数据存储方法还可以包括:将数据库和/或日志文件中的执行数据同步至其他内存节点中。
本步骤旨在实现内存节点之间执行数据的同步,具体的,当执行上述待执行业务的内存节点发生宕机导致业务中断时,可能需要通过其他内存节点继续执行该待执行业务,而待执行业务的继续执行却需要基于前期产生的执行数据实现,因此,还可以将日志文件和/或数据库中的执行数据同步至分布式系统的其他内存节点中。当然,对于会出现相同的待执行业务的情况,如进行多次转账和扣款的业务,其再次执行时也可能基于其他内存节点实现,因此,进行内存节点之间执行数据的同步可进一步提高业务的强一致性。
本申请所提供的业务数据存储方法,对于待执行业务在执行过程中所生成的执行数据,可将其通过版本控制的方式暂存至自身的内存中,即上述内存节点,进而实现内存节点与数据库之间数据信息的同步,完成业务执行数据的落盘,由此,通过版本控制实现了业务的强一致性,保证了内存数据与数据库数据的一致性。另外,该种实现方式实现了业务和数据库的解耦,无需进行业务代码注入,避免了数据库操作对业务的入侵性影响,保证了业务的稳定性和整体性。
在上述实施例的基础上,本申请实施例提供的一种更为具体的业务数据存储方法。
首先,请参考图2,图2为本申请所提供的一种业务数据存储系统的架构图,该系统主要包括四个模块:
1、业务解耦器:由于用户可见的数据是通过分布式内存进行管理的,因此需要屏蔽用户对数据库的直接操作,可以使用JAVA或Python开发业务解耦插件,并以过滤器的方式导入该插件,进而实现业务代码拦截,再重写数据读取和更新等相关操作;其主要实现功能包括:
(1)配置文件解析功能:解析用户配置需要拦截处理的业务层,支持正则表达式;
(2)业务代码处理功能:在业务代码处理之前调用Zookpeer分布式锁获取数据的统一处理标记,可以在业务的整个生命周期中使用;
(3)处理结果返回功能:支持异步和同步方式完成最终结果数据的返回,即直接返回前端进行显示,其中,异步数据返回支持超时设置。
2、分布式内存管理模块:主要在于完成分布式内存部署和接口封装,实现日志文件在多个节点中的内存可见性,其中:
(1)组件安装:在数据库对应的节点上安装分布式内存组件,并提供安装脚本完成部署,具体可以使用开源的分布式内存管理软件在Alluxio的各个分布式节点中(本申请实施例以Alluxio为例)进行部署;
(2)接口封装:封装用户对数据库的操作,数据库的操作统一通过该接口暴露,具体为针对Alluxio完成日志文件读写的封装,可包括数据的读取和数据的写入(增加、删除、修改);
此外,还可通过适配器模式动态扩展其他分布式内存。
3、读写管理/操作日志模块:是保障分布式事务最终一致性的核心实现逻辑,主要在于维护数据的读写,还包括内存数据同步和内存异常处理,具体而言:
(1)写数据:把用户的所有写操作通过版本控制的方式记录在内存中,并使用阶段提交定时输出到日志文件中,以保障最终事务的一致性和数据的完整性;
(2)读数据:数据来源于内存,并通过内存共享实现内存中数据的一致性以及底层数据库的一致性;
(3)内存同步:把数据库Buffer Pool(缓冲池)中的数据和日志文件中的数据,通过版本控制的方式加入到分布式内存中,保证同一个事务中内存数据与数据库数据的一致性,对应触发条件为发起读数据或发起写数据;
(4)内存异常处理:分布式内存异常时服务关闭,将内存中的数据刷入到日志文件中,并在服务恢复正常之后再把数据刷回分布式内存中。
4、后台线程:主要在于将读写管理/操作日志中生成的操作日志通过日志刷新策略以及日志保留策略定时刷新到数据库中,完成用户数据的最终落盘和持久化,具体支持三种策略,即用户手动使用flush、日志文件写满以及定时同步。
进一步,针对上述读写管理/操作日志模块,请参考图3,图3为本申请所提供的一种业务数据存储过程中数据读写管理的流程图,以下以转账扣款业务为例对其进行详细介绍,假设总业务具体为针对同一个账号连续进行两次转账扣款,分别为业务1和业务2,当前账号A为余额1000元,对方账号B余额为100元:
(1)在配置文件中配置转账扣款方法;
(2)业务1发起转账,首先需要查询余额,该余额首先在“读写管理模块”中读取,如果没有数据则需要直接获取数据库中的数据,并增加版本号1,并加入共享锁;如果有数据则需要判断当前版本号是否比内存管理中(其他节点)的高,如果是,则把当前版本刷入内存,否则获取内存中的数据并返回页面显示当前余额;
(3)业务1发起扣款100,此时会在内存中记录一条数据,账号A,当前1000,扣除100,账号B,当前100,增加100,对应版本号记录为2,并加入排他锁,此时,若业务2也发起转账,则会挂起该业务;业务1扣款完成释放锁,并获取数据,显示账号A余额900,账号2余额200,对应版本号记录为3;
(4)业务2发起扣款100,则在内存中记录一条数据,账号A,当前900,扣除100,账号B,当前200,增加100,对应版本号记录为4,并加入排他锁;执行完成之后释放锁,显示账号A余额800,账号2余额300,对应版本号记录为5;下次继续执行则先查询,对应版本号记录为6;
(5)经过以上数据最终在内存中的数据格式如表1所示:
表1分布式内存中的数据存储格式表
版本号 | 业务操作 | 类型 | 锁(S共享/X排他) |
1 | A=1000,B=100 | query(查询) | S |
2 | A=1000-100,B=100+100 | update(更新) | X |
3 | A=900,B=200 | query | S |
4 | A=900-100,B=200+100 | update | X |
5 | A=800B=300 | query | S |
6 | A=800B=300 | query | S |
(6)将内存中的数据刷新到日志文件,进而进行持久化,完成数据落盘。
最后,请参考图4,图4为本申请所提供的一种业务数据存储系统的构建流程示意图,其具体实现流程包括:
(1)安装业务解耦器,以Plugin方式进行安装,并通过配置文件配置需要过滤处理的业务方法;
(2)使用部署脚本在数据库对应的节点上部署分布式内存管理组件,并完成集群信息配置,同时保证内存管理组件服务正常,并以Plugin的方式安装分布式内存管理接口;
(3)以Plugin方式安装读写管理模块,创建日志文件mem_log1.log(日志文件1)和mem_log2.log(日志文件2),文件大小设置为1G,创建完成之后,使用同步命令完成日志文件与MySQL数据Buffer Pool数据的同步,同时同步到分布式内存中;
(4)启动后台线程,以守护线程的方式启动线程服务;
(5)通过定义的脚本完成整个服务的验证,如果验证失败则根据日志信息重新安装部署对应的组件。
可见,本申请实施例所提供的业务数据存储方法,对于待执行业务在执行过程中所生成的执行数据,可将其通过版本控制的方式暂存至自身的内存中,即上述内存节点,进而实现内存节点与数据库之间数据信息的同步,完成业务执行数据的落盘,由此,通过版本控制实现了业务的强一致性,保证了内存数据与数据库数据的一致性。另外,该种实现方式实现了业务和数据库的解耦,无需进行业务代码注入,避免了数据库操作对业务的入侵性影响,保证了业务的稳定性和整体性。
为解决上述问题,请参考图5,图5为本申请所提供的一种业务数据存储装置的结构示意图,该业务数据存储装置可包括:
业务执行模块10,用于当获取到待执行业务时,执行待执行业务;
执行数据获取模块20,用于获取待执行业务在执行过程中生成的执行数据;
执行数据存储模块30,用于通过版本控制方式将执行数据存储至内存节点;
执行数据落盘模块40,用于将内存节点中的执行数据同步至数据库。
可见,本申请实施例所提供的业务数据存储装置,对于待执行业务在执行过程中所生成的执行数据,可将其通过版本控制的方式暂存至自身的内存中,即上述内存节点,进而实现内存节点与数据库之间数据信息的同步,完成业务执行数据的落盘,由此,通过版本控制实现了业务的强一致性,保证了内存数据与数据库数据的一致性。另外,该种实现方式实现了业务和数据库的解耦,无需进行业务代码注入,避免了数据库操作对业务的入侵性影响,保证了业务的稳定性和整体性。
作为一种优选实施例,上述执行数据存储模块30可包括:
版本号增设单元,用于通过Zookpeer分布式锁为各执行数据增设版本号,获得标准执行数据;
执行数据存储单元,用于按照版本号的生成顺序将标准执行数据依次存储至内存节点;其中,版本号的生成顺序为执行数据的生成顺序。
作为一种优选实施例,上述版本号增设单元可具体用于当执行数据对应的业务操作为查询操作时,为执行数据增设共享锁,获得标准执行数据;当执行数据对应的业务操作为更新操作时,为执行数据增设排它锁,获得标准执行数据。
作为一种优选实施例,上述执行数据落盘模块40可包括:
第一同步单元,用于利用阶段提交技术将内存节点中的执行数据同步至日志文件;
第二同步单元,用于利用预设落盘策略将日志文件中的执行数据同步至数据库。
作为一种优选实施例,上述第二同步单元可具体用于对日志文件的可存储空间进行实时统计;当可存储空间低于预设阈值时,将日志文件中的执行数据同步至数据库。
作为一种优选实施例,上述第二同步单元可具体用于按照预设时间间隔将日志文件中的执行数据同步至数据库。
作为一种优选实施例,该业务数据存储装置还可包括内存数据同步模块,用于将数据库和/或日志文件中的执行数据同步至其他内存节点中。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,请参考图6,图6为本申请所提供的一种服务器的结构示意图,该服务器可包括:
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序时实现如下步骤:
当获取到待执行业务时,执行待执行业务;获取待执行业务在执行过程中生成的执行数据;通过版本控制方式将执行数据存储至内存节点;将内存节点中的执行数据同步至数据库。
对于本申请提供的服务器的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下骤:
当获取到待执行业务时,执行待执行业务;获取待执行业务在执行过程中生成的执行数据;通过版本控制方式将执行数据存储至内存节点;将内存节点中的执行数据同步至数据库。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的业务数据存储方法、装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。
Claims (10)
1.一种业务数据存储方法,其特征在于,包括:
当获取到待执行业务时,执行所述待执行业务;
获取所述待执行业务在执行过程中生成的执行数据;
通过版本控制方式将所述执行数据存储至内存节点;
将所述内存节点中的执行数据同步至数据库。
2.如权利要求2所述的业务数据存储方法,其特征在于,所述通过版本控制方式将所述执行数据存储至内存节点,包括:
通过Zookpeer分布式锁为各所述执行数据增设版本号,获得标准执行数据;
按照所述版本号的生成顺序将所述标准执行数据依次存储至所述内存节点;其中,所述版本号的生成顺序为所述执行数据的生成顺序。
3.如权利要求3所述的业务数据存储方法,其特征在于,所述通过Zookpeer分布式锁为各所述执行数据增设版本号,包括:
当所述执行数据对应的业务操作为查询操作时,为所述执行数据增设共享锁;
当所述执行数据对应的业务操作为更新操作时,为所述执行数据增设排它锁。
4.如权利要求1至3任意一项所述的业务数据存储方法,其特征在于,将所述内存节点中的执行数据同步至数据库,包括:
利用阶段提交技术将所述内存节点中的执行数据同步至日志文件;
利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库。
5.如权利要求4所述的业务数据存储方法,其特征在于,所述利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库,包括:
对所述日志文件的可存储空间进行实时统计;
当所述可存储空间低于预设阈值时,将所述日志文件中的执行数据同步至所述数据库。
6.如权利要求4所述的业务数据存储方法,其特征在于,所述利用预设落盘策略将所述日志文件中的执行数据同步至所述数据库,包括:
按照预设时间间隔将所述日志文件中的执行数据同步至所述数据库。
7.如权利要求4所述的业务数据存储方法,其特征在于,还包括:
将所述数据库和/或所述日志文件中的执行数据同步至其他内存节点中。
8.一种业务数据存储装置,其特征在于,包括:
业务执行模块,用于当获取到待执行业务时,执行所述待执行业务;
执行数据获取模块,用于获取所述待执行业务在执行过程中生成的执行数据;
执行数据存储模块,用于通过版本控制方式将所述执行数据存储至内存节点;
执行数据落盘模块,用于将所述内存节点中的执行数据同步至数据库。
9.一种服务器,其特征在于,还包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任意一项所述的业务数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的业务数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910707251.6A CN110502523A (zh) | 2019-08-01 | 2019-08-01 | 业务数据存储方法、装置、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910707251.6A CN110502523A (zh) | 2019-08-01 | 2019-08-01 | 业务数据存储方法、装置、服务器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110502523A true CN110502523A (zh) | 2019-11-26 |
Family
ID=68586996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910707251.6A Pending CN110502523A (zh) | 2019-08-01 | 2019-08-01 | 业务数据存储方法、装置、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502523A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111210270A (zh) * | 2020-01-02 | 2020-05-29 | 广州虎牙科技有限公司 | 业务处理方法、装置、服务集群、计算机设备和存储介质 |
CN112269820A (zh) * | 2020-10-30 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种基于cmsp实现数据批次同步的方法及平台 |
CN112306711A (zh) * | 2020-10-21 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN112363997A (zh) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 数据版本管理方法、装置及存储介质 |
CN112487097A (zh) * | 2020-12-11 | 2021-03-12 | 杭州安恒信息技术股份有限公司 | 一种分布式领域数据同步的方法、系统及设备 |
CN113590716A (zh) * | 2021-08-09 | 2021-11-02 | 深圳市携客互联科技有限公司 | 基于erp系统集成接口业务数据自动同步方法 |
CN116991332A (zh) * | 2023-09-26 | 2023-11-03 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699439A (zh) * | 2009-11-16 | 2010-04-28 | 中兴通讯股份有限公司 | 一种数据库的事务提交方法和装置 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN104750746A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团上海有限公司 | 业务数据的处理方法、装置及分布式内存数据库系统 |
CN107301250A (zh) * | 2017-07-27 | 2017-10-27 | 南京南瑞集团公司 | 一种多源数据库协同备份方法 |
CN107733957A (zh) * | 2016-08-12 | 2018-02-23 | 北京融聚世界网络科技有限公司 | 分布式服务配置系统及版本号分配方法 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN108829413A (zh) * | 2018-05-07 | 2018-11-16 | 北京达佳互联信息技术有限公司 | 数据更新方法、装置及计算机可读存储介质、服务器 |
CN109271452A (zh) * | 2018-10-19 | 2019-01-25 | 武汉达梦数据库有限公司 | Db2数据库数据同步更新方法及设备 |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
-
2019
- 2019-08-01 CN CN201910707251.6A patent/CN110502523A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699439A (zh) * | 2009-11-16 | 2010-04-28 | 中兴通讯股份有限公司 | 一种数据库的事务提交方法和装置 |
CN104750746A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团上海有限公司 | 业务数据的处理方法、装置及分布式内存数据库系统 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN107733957A (zh) * | 2016-08-12 | 2018-02-23 | 北京融聚世界网络科技有限公司 | 分布式服务配置系统及版本号分配方法 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN107301250A (zh) * | 2017-07-27 | 2017-10-27 | 南京南瑞集团公司 | 一种多源数据库协同备份方法 |
CN108829413A (zh) * | 2018-05-07 | 2018-11-16 | 北京达佳互联信息技术有限公司 | 数据更新方法、装置及计算机可读存储介质、服务器 |
CN109271452A (zh) * | 2018-10-19 | 2019-01-25 | 武汉达梦数据库有限公司 | Db2数据库数据同步更新方法及设备 |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111210270A (zh) * | 2020-01-02 | 2020-05-29 | 广州虎牙科技有限公司 | 业务处理方法、装置、服务集群、计算机设备和存储介质 |
CN112306711A (zh) * | 2020-10-21 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN112306711B (zh) * | 2020-10-21 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 一种业务告警方法、设备及计算机可读存储介质 |
CN112269820A (zh) * | 2020-10-30 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种基于cmsp实现数据批次同步的方法及平台 |
CN112363997A (zh) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | 数据版本管理方法、装置及存储介质 |
CN112363997B (zh) * | 2020-11-10 | 2023-09-26 | 中国平安人寿保险股份有限公司 | 数据版本管理方法、装置及存储介质 |
CN112487097A (zh) * | 2020-12-11 | 2021-03-12 | 杭州安恒信息技术股份有限公司 | 一种分布式领域数据同步的方法、系统及设备 |
CN113590716A (zh) * | 2021-08-09 | 2021-11-02 | 深圳市携客互联科技有限公司 | 基于erp系统集成接口业务数据自动同步方法 |
CN116991332A (zh) * | 2023-09-26 | 2023-11-03 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
CN116991332B (zh) * | 2023-09-26 | 2023-12-15 | 长春易加科技有限公司 | 一种智慧工厂大规模数据存储和分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502523A (zh) | 业务数据存储方法、装置、服务器及计算机可读存储介质 | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
US10430298B2 (en) | Versatile in-memory database recovery using logical log records | |
CN107918620B (zh) | 一种数据库的写入方法及装置、电子设备 | |
CN106445738A (zh) | 一种数据库备份方法及装置 | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN104881418B (zh) | 用于MySQL的快速回收回滚空间的方法和装置 | |
WO2021027956A1 (zh) | 一种基于区块链系统的交易处理方法及装置 | |
CN105159818A (zh) | 内存数据管理中日志恢复方法及其仿真系统 | |
CN100371900C (zh) | 数据同步的方法和系统 | |
CN103780638A (zh) | 数据同步方法及系统 | |
WO2021012868A1 (zh) | 事务回滚方法及装置、数据库、系统、计算机存储介质 | |
CN103049317A (zh) | 云环境下基于队列的高并发数据快速写入系统及方法 | |
CN102043859A (zh) | 数据更新方法及装置 | |
KR20070074836A (ko) | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 | |
CN107016016A (zh) | 一种数据处理的方法及装置 | |
CN107665255A (zh) | 键值数据库数据变更的方法、装置、设备及存储介质 | |
CN108469953A (zh) | 一种页面表单的生成方法、服务器及存储介质 | |
CN104750755A (zh) | 一种数据库主备切换后的数据回补方法及系统 | |
CN110737504A (zh) | 一种深度学习模型训练容错方法、系统、终端及存储介质 | |
CN102024021A (zh) | 一种逻辑文件系统元数据的日志方法 | |
CN115617571A (zh) | 一种数据备份方法、装置、系统、设备及存储介质 | |
CN103617195A (zh) | 一种用于MySQL数据库的数据同步系统和方法 | |
CN104636260A (zh) | 一种用于计费业务的数据管理方法及系统 | |
WO2024077863A1 (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191126 |