CN113296966A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN113296966A CN113296966A CN202110559435.XA CN202110559435A CN113296966A CN 113296966 A CN113296966 A CN 113296966A CN 202110559435 A CN202110559435 A CN 202110559435A CN 113296966 A CN113296966 A CN 113296966A
- Authority
- CN
- China
- Prior art keywords
- processing
- batch processing
- subtask
- concurrent
- request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 355
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002085 persistent effect Effects 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000005457 optimization Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 17
- 230000002688 persistence Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据处理方法及装置。
背景技术
相关技术中,软件相关业务场景越来越多,软件系统越来越复杂,需要持久化的数据结果越来越多。在一些行业或社会场所的应用场景中,需要实现并行以一次性请求提交的方式来提交多个数据的业务或多个批处理子任务,而整个请求的返回结果必须以批处理子任务处理结果全部成功,即本次请求成功;或者当其中任意一个批处理子任务失败,即,本次整个请求以失败的结果返回,该类业务或流程在实际实现时,往往比较困难;原因在于:(1)一次请求中包含的若干个批处理子任务,需要同时成功时才能认定为本次请求成功,而即使有一个批处理子任务失败,那么也必须认定本次请求为失败,这种请求对数据一致性要求极高;(2)后续的不断并发请求中,请求中有可能存在某个或者某些批处理子任务中涉及到的要素与前一次请求中涉及到的要素相同,而如果直接处理后续的请求,那么前面的处理结果因为存在相同要素的原因,会导致后续的请求中的某要素被占用,而前面的请求又反而无法正常处理;(3)更复杂的场景还有不断请求导致的大量的前面请求或者该请求中的批处理子任务得不到及时的处理,相同的要素被占用越来越多,效率越来越低,甚至导致死锁及系统级的整个瘫痪等问题。
针对上述问题,目前,行业或市场上面对以上的“需要并行一次性以成功或者失败的方式提交数据处理结果到配置文件或者数据库中”的处理方法没有较为完美的方法。以前一般采取单一提交,单一处理,然后判断结果是否成功,再执行下一次提交,再次进行判断,整体以这样的轮巡方式来处理,以得到当次所有事件提交全部成功或者全部失败的结果,这类处理办法虽然能够解决此类场景的部分问题,但是却会经常导致死锁或系统瘫痪问题,且效率低下,一个简单的请求耗时也非常之大。而近来各行业或技术也尝试实现了诸如柔性事务(Try-Confirm-Cancel,简称TCC)等事务性提交方法来尝试解决此类问题,但这些方法往往又实现复杂,或者因为与数据库和配置文件的频繁IO交互也导致了大量的性能瓶颈问题,且对原有整个系统的改造和侵入性影响都较大,实现困难且不能有效的解决此类问题。
另外,相关技术中还提供了通过接收行读取请求并且确定该行被版本化来操作。例如,确定在事务控制块中存在用于与所述行相关联的行销毁事务的第一时间戳信息,并且从事务控制块检索第一时间戳信息;以及,使用DVCC技术减少寻找版本的时间,同时将NVM中的日志作为新版本的方法,有效地减少了写操作次数。
然而,上述方案一中利用用于为读取者-写入者提供对事务提交状态的访问的事务控制块的方法,方案二中提供了一种可扩展的持久性事务内存及其工作方法,以上的方案基本上不能够彻底解决以上的行业场景现状,例如:1).基本上都是着眼于从数据侧面来解决,在实现上一般都是直接或间接依赖于数据库或配置文件本身的处理或优化,此类处理方法因为过度依赖于IO的操作,从而大大增加了IO的开销,IO是当今各类系统或应用的瓶颈,因此使得性能低下;2).通过尝试提交或通知提交的方式处理此类场景,虽然能在一定程度上能解决该类场景问题,但面对复杂的业务场景上基本上难以做到,且本身实现复杂度高,出现异常时也难以处理,且针对这类场景也不能够进行较为完整的处理。
针对上述相关技术中通过直接或间接的方式进行数据处理,依赖于数据库或配置文件本身的处理或优化,过度依赖于IO的操作,可靠性较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法及装置,以至少解决相关技术中通过直接或间接的方式进行数据处理,依赖于数据库或配置文件本身的处理或优化,过度依赖于IO的操作,可靠性较低的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:获取并发请求,其中,所述并发请求中携带有预定数量的批处理子任务,所述批处理子任务包括一个或多个关联要素;获取所述并发请求中每个批处理子任务对应的处理信息;基于所述每个批处理子任务对应的处理信息确定所述并发请求的执行状态;在所述执行状态表示所述并发请求中的每个请求均成功处理时,则将所述并发请求的处理结果持久化到预定位置。
可选地,在获取并发请求之后,该数据处理方法还包括:判断所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;在所述第一判断结果表示所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素未进行加锁处理时,判断所述并发请求中的批处理子任务,或所述批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
可选地,基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作,包括:确定历史并发请求与所述并发请求存在相同的要素,并且所述相同的要素在所述历史并发请求流程中尚未处理完毕,确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
可选地,在确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作之后,该数据处理方法还包括:将所述并发请求进行队列化处理。
可选地,该数据处理方法还包括:确定所述历史并发请求的处理结果持久化到所述预定位置后,或,确定所述历史并发任务中存在处理失败的批处理子任务时,释放掉所述并发请求中的批处理子任务,或所述批处理子任务中的要素的加锁资源。
可选地,获取所述并发请求中每个批处理子任务对应的处理信息,包括:确定所述每个批处理子任务对应的业务类型;基于所述业务类型查询所述每个批处理子任务的业务处理流程;基于查询结果确定所述每个批处理子任务对应的处理信息。
根据本发明实施例的另外一个方面,还提供了一种数据处理装置,包括:第一获取单元,用于获取并发请求,其中,所述并发请求中携带有预定数量的批处理子任务,所述批处理子任务包括一个或多个关联要素;第二获取单元,用于获取所述并发请求中每个批处理子任务对应的处理信息;第一确定单元,用于基于所述每个批处理子任务对应的处理信息确定所述并发请求的执行状态;处理单元,用于在所述执行状态表示所述并发请求中的每个请求均成功处理时,则将所述并发请求的处理结果持久化到预定位置。
可选地,该数据处理装置还包括:第一判断单元,用于在获取并发请求之后,判断所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;第二判断单元,用于在所述第一判断结果表示所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素未进行加锁处理时,判断所述并发请求中的批处理子任务,或所述批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;第二确定单元,用于基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
可选地,所述第二确定单元,包括:第一确定模块,用于确定历史并发请求与所述并发请求存在相同的要素,并且所述相同的要素在所述历史并发请求流程中尚未处理完毕,确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
可选地,该数据处理装置还包括:队列化处理模块,用于在确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作之后,将所述并发请求进行队列化处理。
可选地,该数据处理装置还包括:释放单元,用于确定所述历史并发请求的处理结果持久化到所述预定位置后,或,确定所述历史并发任务中存在处理失败的批处理子任务时,释放掉所述并发请求中的批处理子任务,或所述批处理子任务中的要素的加锁资源。
可选地,所述第二获取单元,包括:第二确定模块,用于确定所述每个批处理子任务对应的业务类型;查询模块,用于基于所述业务类型查询所述每个批处理子任务的业务处理流程;第三确定模块,用于基于查询结果确定所述每个批处理子任务对应的处理信息。
根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述计算机可读存储介质所在设备执行上述中任一项所述的数据处理方法。
根据本发明实施例的另外一个方面,还提供了一种处理器,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述中任一项所述的数据处理方法。
在本发明实施例中,获取并发请求,其中,并发请求中携带有预定数量的批处理子任务,批处理子任务包括一个或多个关联要素;获取并发请求中每个批处理子任务对应的处理信息;基于每个批处理子任务对应的处理信息确定并发请求的执行状态;在执行状态表示并发请求中的每个请求均成功处理时,则将并发请求的处理结果持久化到预定位置。通过本发明实施例提供的数据处理方法,实现了在获取并发请求中每个批处理子任务的处理信息后,若基于处理信息确定每个批处理子任务均处理成功,则将处理结果批量持久化到预定位置的目的,将数据持久化操作从以前的各自持久化转换为一次性并发处理,提高了数据处理效率,也提高了数据处理的可靠性,进而解决了相关技术中通过直接或间接的方式进行数据处理,依赖于数据库或配置文件本身的处理或优化,过度依赖于IO的操作,可靠性较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据处理方法的流程图;
图2是根据本发明实施例的数据处理方法的示意图;
图3是根据本发明实施例提供的数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
针对相关技术中的上述问题,在本发明实施例中利用中控装置的基本原理,预先将需要读取已完成数据和请求相关的信息或者外围请求结果以及写入数据库和配置文件的逻辑加载到内存中进行处理,这里中控装置即充当了释放阻塞的作用,也充当了中间调度的作用,当此类场景下,发生业务或数据请求时,该中控装置将根据数据请求情况匹配需要查询数据库或配置文件的所有业务数据情况并加载到内存中,同时中控装置进行阻塞相同或相似的数据请求,以便后续能够完整的执行完本次的请求。在内存中进行逻辑处理后,当需要将数据或业务处理结果提交到数据库或者配置文件时,由中控装置统一并且以一次性命令的形式发出数据写入持久化任务,相关逻辑处理程序或单元在接受到统一处理命令后进行并行持久化处理,程序或单元处理完毕后主动向中控逻辑主装置反馈处理结果,中控逻辑收到处理结果判断是否可以是否本次请求中的相关要素,然后中控逻辑释放本次请求的有关数据和信息,以便下次请求进入。
通过上述将中控装置作为核心控制,并将该核心控制装置分为若干个核心要素,每个要素的实现具有多样化、高兼容性以及易维护性等特征;由于并行读取以及写入有效解决了中控装置作为阀门或者中间枢纽控制时可能带来的性能等一系列问题,即,通过并行处理提高了效率,以上两点相结合形成了一个完整的高复用性的具有此类数据或请求流程的全行业的系统级处理。
下面对本发明实施例提供的数据处理方法及装置进行详细说明。
实施例1
根据本发明实施例,提供了一种数据处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的数据处理方法的流程图,如图1所示,该数据处理方法包括如下步骤:
步骤S102,获取并发请求,其中,并发请求中携带有预定数量的批处理子任务,批处理子任务包括一个或多个关联要素。
可选的,这里的并发请求要求所有请求全部处理成功或全部处理失败,不得以部分成功、部分失败的结果返回本次请求处理结果。
每次并发请求中会包含若干个批处理子任务,每个批处理子任务涉及一个或多个关联要素,场景中必须保证这些批处理子任务全部处理成功或者有一个处理失败时即返回本次整个请求处理失败,皮处理子任务汇总不能以部分成功或部分失败的处理结果返回整个本次请求的处理结果状态。
步骤S104,获取并发请求中每个批处理子任务对应的处理信息。
在该实施例中,中控装置可从数据库、内存信息等各方面资源中获取并发请求中每个请求所涉及的相关业务以及流程处理信息,并判断是否为处理成功。
步骤S106,基于每个批处理子任务对应的处理信息确定并发请求的执行状态。
步骤S108,在执行状态表示并发请求中的每个请求均成功处理时,则将并发请求的处理结果持久化到预定位置。
由上可知,在本发明实施例中,可以获取并发请求,获取并发请求中每个批处理子任务对应的处理信息,基于每个批处理子任务对应的处理信息确定并发请求的执行状态,在执行状态表示并发请求中的每个请求均成功处理时,则将并发请求的处理结果持久化到预定位置,实现了在获取并发请求中每个批处理子任务的处理信息后,若基于处理信息确定每个批处理子任务均处理成功,则将处理结果批量持久化到预定位置的目的,将数据持久化操作从以前的各自持久化转换为一次性并发处理,提高了数据处理效率。
因此,通过本发明实施例提供的数据处理方法,解决了相关技术中通过直接或间接的方式进行数据处理,依赖于数据库或配置文件本身的处理或优化,过度依赖于IO的操作,可靠性较低的技术问题。
需要说明的是,上述数据处理方法的执行主体为中控装置。
作为一种可选的实施例,在获取并发请求之后,该数据处理方法还包括:判断并发请求中的每个批处理子任务,以及每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;在第一判断结果表示并发请求中的每个批处理子任务,以及每个批处理子任务中的要素未进行加锁处理时,判断并发请求中的批处理子任务,或批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;基于第二判断结果确定是否需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作。
在该实施例中,中控装置进行一系列处理,首先为是否需要对本次并发请求、本次并发请求中的所有批处理子任务和所有批处理子任务中的要素进行加锁处理,或者判断是否已经进行了加锁处理。
作为一种可选的实施例,基于第二判断结果确定是否需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作,包括:确定历史并发请求与并发请求存在相同的要素,并且相同的要素在历史并发请求流程中尚未处理完毕,确定需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作。
在该实施例中,是否需要对并发请求中的请求要素进行加锁处理即是否需要进行中控锁机制,以防止后续的请求在之前请求尚未全部完成的情况下,进行叠加处理这样即影响了前面整个并发请求中未处理请求的处理过程。
例如,当第一次并发请求涉及A要素,第二次并发请求进入时,也涉及A要素,但第一次并发请求尚未对A要素相关的请求处理完毕,为保证第一次请求的请求完整处理,此时需要对A要素进行加锁处理,将第二次并发请求暂时队列化等待处理。
其中,每次并发请求时,可选择对本次请求进行全部加锁控制,也可以选择对本次请求的批处理子任务中的某要素即上述所述的A要素进行单个控制,这种方法更大程度的以并行方法解决后续处理逻辑。
作为一种可选的实施例,在确定需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作之后,该数据处理方法还可以包括:将并发请求进行队列化处理。
在该实施例中,为了防止对历史并发请求与当前并发请求中的相同要素进行叠加处理,可以先将当前并发请求、或当前并发请求中批处理子任务、或当前并发请求中批处理子任务内与历史并发请求相同的要素进行加锁处理,并将其进行队列化处理,以在历史并发任务结果后,在对当前的并发请求进行处理。
作为一种可选的实施例,该数据处理方法还包括:确定历史并发请求的处理结果持久化到预定位置后,或,确定历史并发任务中存在处理失败的批处理子任务时,释放掉并发请求中的批处理子任务,或批处理子任务中的要素的加锁资源。
即,在历史并发任务完成后,或者历史并发任务中存在处理失败的批处理子任务,则将当前并发请求中的批处理子任务,或批处理子任务中的要素的加锁资源释放掉,以继续对当前并发请求进行处理。
作为一种可选的实施例,获取并发请求中每个批处理子任务对应的处理信息,包括:确定每个批处理子任务对应的业务类型;基于业务类型查询每个批处理子任务的业务处理流程;基于查询结果确定每个批处理子任务对应的处理信息。
即,中控装置可从数据库、内存信息等各方面资源中获取并发请求中每个请求所涉及的相关业务以及流程处理信息。
下面结合附图对本发明一个优选实施例进行说明,图2是根据本发明实施例的数据处理方法的示意图,如图2所示,当并发请求进入后,中控装置进行一系列处理,首先为阀门控制即是否需要对本次请求、本次请求中的所有批处理子任务和所有批处理子任务中的要素进行加锁处理或判断是否已经进行了加锁处理;具体地,图2中的中控装置的主控主逻辑判断是否需要对并发请求中的请求要素进行加锁处理即是否需要进行中控锁机制,以防止后续的请求在之前的请求尚未全部完成的情况下进行叠加处理,这样即影响到了前面整个并发请求中未处理请求的处理过程。接着中控装置的主控主逻辑以并行处理,即,中控主内存处理的方式完成业务以及流程处理;接着主控主逻辑手机各个批处理子任务的处理结果,并判断本次整个并发请求是否为全部成功或全部失败;若全部成功,则中控主逻辑以并发处理方式将该次并发处理结果持久化到预定位置(例如,图2中的数据库或数据文件)中,并在处理后会释放掉所有锁和资源;若本次并发请求结果为失败,则中控主逻辑立即释放所有的锁和资源,等待下一次并发请求,从而形成了该类数据或请求复杂流程下的一个高效的处理方法即:特殊的并行请求-中控锁机制-中控业务信息获取-中控内存处理-中控并行持久化的完整闭合流程。
由图2可知,本发明实施例提供的数据处理方法对应的硬件的核心为中控装置,该中控装置可以进行并行读取,并行写入,且具有多样化、高兼容性、易于维护,从而形成一个完整的高复用性的全行业处理方法。该中控装置的核心包括“中心”及“控制”两个基本属性,中心的属性在于阀门,控制的属性在于任何后续处理都有中控进行发起。并发请求必须经过中控装置,中控装置此时相当于位于“中心”状态;中控装置需要对所有的请求都进行适当控制,因此需要完善处理所有的业务和流程控制流程。同时,中控装置在具体处理中,需要考虑业务和流程处理中的各种异常情况并进行处理;处理后,中控装置调用并行数据持久化模块,并释放此次请求中涉及到的要素。
为加快中控装置的处理效率,需要最大化程度的进行并行处理,并行处理包含并行读取相关业务和流程数据,并行请求外围系统数据,并行写入结果等各方面要素;具体地,并行请求进入时,中控装置发出并发请求以最快获取所有数据和并进行内存级别的业务或流程处理;各并发请求处理完对应的业务逻辑后将处理结果提交给中控装置,而不是直接继续持久化结果;中控装置统一发起并发持久化结果处理命令,持久化单元收到命令后进行并行持久化处理,从而形成了一个分(接受并发请求)-总(中间阀门控制)-分(并发处理过程)-总(处理结果汇总)-分(并发持久化结果)的此类场景的完整处理逻辑。
由上可知,本发明实施例提供的数据处理方法,相对于现有技术中基本上都是依赖于或者是对数据库或数据配置文件本身的处理,此类处理方法一般都是大量或者频繁读取和写入数据库或数据配置文件,这种做法大大增加了磁盘IO的开销,使得性能低下,且经常的IO操作也会出现比较多的问题和异常的弊端,使用中控装置将以前的数据库或者配置文件的IO直接操作方式转化为内存计算并处理,降低了磁盘IO的开销,使得性能提高,同时将原本与IO频繁或大量交互的处理逻辑加载到内存中进行处理,并通过内存控制来逻辑整个业务或者流程逻辑的方式简单易行,效率很高,且方法多样化并易于拓展;相对于现有技术中通过每个请求尝试提交即成功就正式提交,失败就回滚操作的方式或通过通知提交的方式来处理此类业务或流程场景,虽然能在一定程度上解决该类部分场景问题,但实现复杂度高,对技术要求比较苛刻,应用场景狭隘,每个场景基本上都需要单独进行研发,且应用实现成本代价高,出现异常时也难以处理的弊端,使用中控装置解决并发请求中事件各自直接处理或者事件各自尝试处理带来的效率;另外,中控装置将数据持久化操作从以前的各自持久化设计为一次性并发处理带来的效率最大化。
需要说明的是,本发明实施例提供的数据处理方法,可广泛用于各行业的应用和系统,无需复杂的研发流程和成本,且该数据处理方法能够以指数级增长的效率来解决当前行业中遇到此类问题的解决办法,此外还能够保持数据的完整一致性,能够解决业务及系统中的业务场景痛点,做到一次研发投入,可广泛普遍使用的效果。
因此,通过本发明实施例提供的数据处理方法,使用中控装置来处理复杂逻辑业务,具体地,该中控装置使用普通的锁机制作为基础,后续业务提前逻辑化加载预处理化作为核心实现思想,并行及内存处理手段作为效率提高方法,从而解决以前的数据库或配置文件尝试提交到数据库或配置文件所带来的失败即需要回滚等一系列弊端和问题,中控装置在预先判断全部可以提交成功的情况下才进行提交,如果此中某个事件会失败的情况下则全部不提交处理结果。这样不仅减少了大量的IO交互,又解决了不停的提交-回滚带来的各种应用场景处理复杂性及性能等问题,方便易用,减少了系统以前实现的复杂度和性能问题,可以广泛应用于银行业、运营商行业及教育等各大行业或系统中有关此类数据或请求的提交应用场景。
实施例2
根据本发明实施例的另外一个方面,还提供了一种数据处理装置,图3是根据本发明实施例提供的数据处理装置的示意图,如图3所示,该数据处理装置可以包括:第一获取单元31、第二获取单元33、第一确定单元35以及处理单元37。下面对本发明实施例提供的数据处理装置进行说明。
第一获取单元31,用于获取并发请求,其中,并发请求中携带有预定数量的批处理子任务,批处理子任务包括一个或多个关联要素。
第二获取单元33,用于获取并发请求中每个批处理子任务对应的处理信息。
第一确定单元35,用于基于每个批处理子任务对应的处理信息确定并发请求的执行状态。
处理单元37,用于在执行状态表示并发请求中的每个请求均成功处理时,则将并发请求的处理结果持久化到预定位置。
此处需要说明的是,上述第一获取单元31、第二获取单元33、第一确定单元35以及处理单元37对应于实施例1中的步骤S102至S108,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
由上可知,在本发明实施例中,可以第一获取单元获取并发请求,其中,并发请求中携带有预定数量的批处理子任务,批处理子任务包括一个或多个关联要素;接着利用第二获取单元获取并发请求中每个批处理子任务对应的处理信息;并利用第一确定单元基于每个批处理子任务对应的处理信息确定并发请求的执行状态;以及利用处理单元在执行状态表示并发请求中的每个请求均成功处理时,则将并发请求的处理结果持久化到预定位置。通过本发明实施例提供的数据处理装置,实现了在获取并发请求中每个批处理子任务的处理信息后,若基于处理信息确定每个批处理子任务均处理成功,则将处理结果批量持久化到预定位置的目的,将数据持久化操作从以前的各自持久化转换为一次性并发处理,提高了数据处理效率,也提高了数据处理的可靠性,解决了相关技术中通过直接或间接的方式进行数据处理,依赖于数据库或配置文件本身的处理或优化,过度依赖于IO的操作,可靠性较低的技术问题。
可选地,该数据处理装置还包括:第一判断单元,用于在获取并发请求之后,判断并发请求中的每个批处理子任务,以及每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;第二判断单元,用于在第一判断结果表示并发请求中的每个批处理子任务,以及每个批处理子任务中的要素未进行加锁处理时,判断并发请求中的批处理子任务,或批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;第二确定单元,用于基于第二判断结果确定是否需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作。
可选地,第二确定单元,包括:第一确定模块,用于确定历史并发请求与并发请求存在相同的要素,并且相同的要素在历史并发请求流程中尚未处理完毕,确定需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作。
可选地,该数据处理装置还包括:队列化处理模块,用于在确定需要对并发请求中的批处理子任务,或批处理子任务中的要素执行加锁操作之后,将并发请求进行队列化处理。
可选地,该数据处理装置还包括:释放单元,用于确定历史并发请求的处理结果持久化到预定位置后,或,确定历史并发任务中存在处理失败的批处理子任务时,释放掉并发请求中的批处理子任务,或批处理子任务中的要素的加锁资源。
可选地,第二获取单元,包括:第二确定模块,用于确定每个批处理子任务对应的业务类型;查询模块,用于基于业务类型查询每个批处理子任务的业务处理流程;第三确定模块,用于基于查询结果确定每个批处理子任务对应的处理信息。
实施例3
根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时控制计算机可读存储介质所在设备执行上述中任一项的数据处理方法。
实施例4
根据本发明实施例的另外一个方面,还提供了一种处理器,处理器用于运行计算机程序,其中,计算机程序运行时执行上述中任一项的数据处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取并发请求,其中,所述并发请求中携带有预定数量的批处理子任务,所述批处理子任务包括一个或多个关联要素;
获取所述并发请求中每个批处理子任务对应的处理信息;
基于所述每个批处理子任务对应的处理信息确定所述并发请求的执行状态;
在所述执行状态表示所述并发请求中的每个请求均成功处理时,则将所述并发请求的处理结果持久化到预定位置。
2.根据权利要求1所述的方法,其特征在于,在获取并发请求之后,所述方法还包括:
判断所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;
在所述第一判断结果表示所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素未进行加锁处理时,判断所述并发请求中的批处理子任务,或所述批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;
基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
3.根据权利要求2所述的方法,其特征在于,基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作,包括:
确定历史并发请求与所述并发请求存在相同的要素,并且所述相同的要素在所述历史并发请求流程中尚未处理完毕,确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
4.根据权利要求2所述的方法,其特征在于,在确定需要对所述并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作之后,所述方法还包括:
将所述并发请求进行队列化处理。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定所述历史并发请求的处理结果持久化到所述预定位置后,或,确定所述历史并发任务中存在处理失败的批处理子任务时,释放掉所述并发请求中的批处理子任务,或所述批处理子任务中的要素的加锁资源。
6.根据权利要求1至5中任一项所述的方法,其特征在于,获取所述并发请求中每个批处理子任务对应的处理信息,包括:
确定所述每个批处理子任务对应的业务类型;
基于所述业务类型查询所述每个批处理子任务的业务处理流程;
基于查询结果确定所述每个批处理子任务对应的处理信息。
7.一种数据处理装置,其特征在于,包括:
第一获取单元,用于获取并发请求,其中,所述并发请求中携带有预定数量的批处理子任务,所述批处理子任务包括一个或多个关联要素;
第二获取单元,用于获取所述并发请求中每个批处理子任务对应的处理信息;
第一确定单元,用于基于所述每个批处理子任务对应的处理信息确定所述并发请求的执行状态;
处理单元,用于在所述执行状态表示所述并发请求中的每个请求均成功处理时,则将所述并发请求的处理结果持久化到预定位置。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一判断单元,用于在获取并发请求之后,判断所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素是否已经进行加锁处理,得到第一判断结果;
第二判断单元,用于在所述第一判断结果表示所述并发请求中的每个批处理子任务,以及所述每个批处理子任务中的要素未进行加锁处理时,判断所述并发请求中的批处理子任务,或所述批处理子任务中的要素是否需要进行加锁处理,得到第二判断结果;
第二确定单元,用于基于第二判断结果确定是否需要对并发请求中的批处理子任务,或所述批处理子任务中的要素执行加锁操作。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述计算机可读存储介质所在设备执行上述权利要求1至6中任一项所述的数据处理方法。
10.一种处理器,其特征在于,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述权利要求1至6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110559435.XA CN113296966A (zh) | 2021-05-21 | 2021-05-21 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110559435.XA CN113296966A (zh) | 2021-05-21 | 2021-05-21 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113296966A true CN113296966A (zh) | 2021-08-24 |
Family
ID=77323728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110559435.XA Pending CN113296966A (zh) | 2021-05-21 | 2021-05-21 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296966A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479962A (zh) * | 2016-06-08 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种用于任务下发的方法与设备 |
CN109634974A (zh) * | 2018-12-04 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及相关组件 |
CN111198769A (zh) * | 2018-11-16 | 2020-05-26 | 北京京东金融科技控股有限公司 | 信息处理方法及其系统、计算机系统及计算机可读介质 |
CN112015713A (zh) * | 2019-05-30 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据库任务的处理方法、装置、电子设备及可读介质 |
CN112306713A (zh) * | 2020-10-30 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种任务的并发计算方法及装置、设备、存储介质 |
CN112783616A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种并发冲突处理方法、装置及计算机存储介质 |
-
2021
- 2021-05-21 CN CN202110559435.XA patent/CN113296966A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479962A (zh) * | 2016-06-08 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种用于任务下发的方法与设备 |
CN111198769A (zh) * | 2018-11-16 | 2020-05-26 | 北京京东金融科技控股有限公司 | 信息处理方法及其系统、计算机系统及计算机可读介质 |
CN109634974A (zh) * | 2018-12-04 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及相关组件 |
CN112015713A (zh) * | 2019-05-30 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据库任务的处理方法、装置、电子设备及可读介质 |
CN112783616A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种并发冲突处理方法、装置及计算机存储介质 |
CN112306713A (zh) * | 2020-10-30 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 一种任务的并发计算方法及装置、设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10942823B2 (en) | Transaction processing system, recovery subsystem and method for operating a recovery subsystem | |
EP2600246B1 (en) | Batch processing of business objects | |
US8271448B2 (en) | Method for strategizing protocol presumptions in two phase commit coordinator | |
JP5241722B2 (ja) | 要求処理のデータ処理システムおよび方法 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
US20090089339A1 (en) | Transaction log management | |
KR20140138670A (ko) | 2-단계 커미트 호출들의 엄격한 순서화에 근거하여 트랜잭션 복구를 지원하는 시스템들 및 방법들 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
JPH1153202A (ja) | 並列トランザクション処理システム | |
US8336053B2 (en) | Transaction management | |
WO2020253045A1 (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN111352704A (zh) | 基于策略管理的分布式全局事务处理系统和方法 | |
CN111143041B (zh) | 一种数据一致性方法、分布式协调器及中央协调器 | |
CN111880908A (zh) | 分布式事务的处理方法、装置及存储介质 | |
CN113296966A (zh) | 数据处理方法及装置 | |
CN107958414B (zh) | 一种清除cics系统长交易的方法及系统 | |
CN115934272A (zh) | 一种联机批量任务处理方法及装置 | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
CN109901933B (zh) | 业务系统的操作方法及装置、存储介质、电子装置 | |
CN112685142A (zh) | 分布式数据处理系统 | |
US20090064141A1 (en) | Efficient utilization of transactions in computing tasks | |
CN108572959B (zh) | 一种与数据库交互数据的方法和装置 | |
US20230069165A1 (en) | Byzantine fault tolerant pre-preprocessing for state machine replication | |
CN112433868A (zh) | 一种交易处理方法及装置 | |
CN111930475A (zh) | 启动ett运行的方法及装置 |
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 |