CN113407324B - 一种数据库运行数据的处理方法和装置 - Google Patents
一种数据库运行数据的处理方法和装置 Download PDFInfo
- Publication number
- CN113407324B CN113407324B CN202110720059.8A CN202110720059A CN113407324B CN 113407324 B CN113407324 B CN 113407324B CN 202110720059 A CN202110720059 A CN 202110720059A CN 113407324 B CN113407324 B CN 113407324B
- Authority
- CN
- China
- Prior art keywords
- processing
- data
- memory
- stage
- sequence
- 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
Links
- 238000003672 processing method Methods 0.000 title description 6
- 238000012545 processing Methods 0.000 claims abstract description 231
- 230000004888 barrier function Effects 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/21—Design, administration or maintenance of databases
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库运行数据的处理方法和装置,所述方法包括以下步骤:设定多条运行数据中每条运行数据的多个处理操作及其先后顺序,多条运行数据具有预定的处理顺序;根据多个处理操作中的每一处理操作所消耗的物理资源,将多个处理操作进行分割和/或归并,形成N个处理阶段;调节N个处理阶段中每一处理阶段在内存中运行时的线程资源,使每一处理阶段的运行时间的差值在预定范围内;在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障;随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。
Description
技术领域
本发明主要涉及信息技术领域,尤其涉及一种数据库运行数据的处理方法和装置。
背景技术
在大型数据***的运行中,将产生大量的运行数据,由于特定的业务规范或***功能的要求,对该运行数据进行处理时,需要按照一定的顺序,此时,一种方式是按串行方式对数据依次进行处理,但当数据量较大时,该处理方式将变得极为耗时,极大影响了数据处理和***运行的效率。
发明内容
本发明要解决的技术问题是提供一种数据库运行数据的处理方法,实现数据按序处理的同时,提高数据处理的效率,以利于***的高效运行。
为解决上述技术问题,本发明提供了一种数据库运行数据的处理方法,包括以下步骤:设定多条运行数据中每条运行数据的多个处理操作和所述多个处理操作的先后顺序,所述多条运行数据具有预定的处理顺序;根据所述多个处理操作中的每一处理操作所消耗的物理资源,将所述多个处理操作进行分割和/或归并,形成N个处理阶段,所述N个处理阶段的先后顺序与所述多个处理操作的先后顺序对应;N为大于等于2的正整数;调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内;在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障;随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。
在本发明的一实施例中,随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障的步骤包括:在限定数量的内存地址空间中循环移动所述内存屏障,其中顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障。
在本发明的一实施例中,所述内存屏障指向特定的内存逻辑地址。
在本发明的一实施例中,所述预定范围包括小于等于10毫秒。
在本发明的一实施例中,调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内包括:
根据所述N个处理阶段中每一处理阶段所需处理的任务量,确定所述每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内。
在本发明的一实施例中,所述数据库运行数据包括MySQL数据库的Binlog数据。
在本发明的一实施例中,所述处理操作包括数据接收、数据解析、数据转换、数据过滤和/或数据发送。
在本发明的一实施例中,所述处理阶段包括数据接收阶段、数据解析阶段、数据加工阶段和数据发送阶段。
本发明还提供一种数据库运行数据的处理装置,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如前述任一项所述的方法。
本发明还提供一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如前述任一项所述的方法。
与现有技术相比,本发明具有以下优点:本申请技术方案,通过对数据处理阶段的划分与调节和多个数据处理阶段的内存屏障的设置,实现对数据的按序并行处理,在满足数据处理顺序要求的同时,大幅提高数据处理的效率。
附图说明
附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1是本申请一实施例的数据库运行数据的处理方法的流程图。
图2A-图2B是本申请一实施例的数据库运行数据的处理方法的内存屏障的移动的原理示意图。
图3A-图3D是本申请一实施例的数据库运行数据的处理方法的过程示意图。
图4是本申请一实施例的数据库运行数据的处理方法中通过设置内存屏障实现对数据的按序并行处理的示意图。
图5A-图5D是本申请一实施例的数据库运行数据的处理方法中内存屏障的移动与实现数据按序并行处理的关系的原理示意图。
图6是根据本申请一实施例示出的数据库运行数据的处理装置的***实施环境示意图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
如本申请所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
本申请中使用了流程图用来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请的实施例描述一种数据库运行数据的处理方法和装置。
图1是本申请一实施例的数据库运行数据的处理方法的流程图。
如图1所示,本申请的数据库运行数据的处理方法包括,步骤101,设定多条运行数据中每条运行数据的多个处理操作和所述多个处理操作的先后顺序,所述多条运行数据具有预定的处理顺序;步骤102,根据所述多个处理操作中的每一处理操作所消耗的物理资源,将所述多个处理操作进行分割和/或归并,形成N个处理阶段,所述N个处理阶段的先后顺序与所述多个处理操作的先后顺序对应;N为大于等于2的正整数;步骤103,调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内;步骤104,在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障;步骤105,随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。
具体地,在步骤101,设定多条运行数据中每条运行数据的多个处理操作和所述多个处理操作的先后顺序。多条运行数据具有预定的处理顺序。
在一些实施例中,所述数据库运行数据例如包括MySQL数据库的Binlog数据,或是其他类型的记录数据。数据库运行数据也可为其他类型的数据库的运行数据。MySQLBinlog是二进制日志文件,Binlog数据可用于记录MySQL的数据更新。
对运行数据的处理操作例如包括数据接收、数据解析、数据转换、数据过滤和/或数据发送。数据解析例如对接收到的数据,根据数据的格式对其进行解析,例如将二进制形式的编码数据解析成可表示具体含义的数据。
多条运行数据具有预定的处理顺序。例如对于数据库运行数据而言,先进行新增操作再进行删除操作和先进行删除操作再进行新增操作,最后导致的结果可以完全不同。例如,先进行新增操作再进行删除操作,则结果可为无新增数据;先进行删除操作再进行新增操作,结果则可为生成了新的数据。因此,数据库运行数据在处理时,保持其预定的处理顺序是极为重要的需求。
在步骤102,根据所述多个处理操作中的每一处理操作所消耗的物理资源,将所述多个处理操作进行分割和/或归并,形成N个处理阶段,所述N个处理阶段的先后顺序与所述多个处理操作的先后顺序对应;N为大于等于2的正整数。
消耗的物理资源例如包括存储资源和处理器资源。将所述多个处理操作进行分割和/或归并,例如将接收数据和解析数据归并为一个阶段,或是将对数据的转换和过滤操作规定为一个阶段,也可将数据的过滤操作分为两个阶段进行。
在一些实施例中,对数据进行处理的处理阶段包括数据接收阶段、数据解析阶段、数据加工阶段和数据发送阶段。
在步骤103,调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内。所述预定范围例如包括小于等于10毫秒(ms),更具体地可为小于等于1毫秒、3毫秒、5毫秒等。
在一些实施例中,调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内包括:
根据所述N个处理阶段中每一处理阶段所需处理的任务量,确定所述每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内。任务量例如通过对数据的处理量和计算的复杂度确定。
在更具体的实施例中,例如可将数据接收阶段和数据发送阶段可调节为单线程执行。数据加工阶段调节因操作更多或更复杂,可调节为多线程执行,具体的线程数也可作进一步设定。数据解析操作亦可作类似设定。
在步骤104,在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障。
在一些实施例中,所述内存屏障指向特定的内存逻辑地址,也可指向具体的物理地址。内存逻辑地址可通过对物理地址的封装和映射得到。
在步骤105,随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。
图2A-图2B是本申请一实施例的数据库运行数据的处理方法的内存屏障的移动的原理示意图。
图2A和图2B中的内存地址对应的存储空间例如201、202、203、204和205所示,图2A和图2B中其他的存储空间未作更多标示。图2A和图2B中的省略号表示还可有更多的存储空间。
参考图2A和图2B,在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障。随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。如前述,对数据进行处理的处理阶段例如可包括数据接收阶段、数据解析阶段、数据加工阶段和数据发送阶段。相应地,在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障。内存屏障例如图2A和图2B中的箭头①、②、③、④和⑤所例示。图2A和图2B中的箭头⑤所示意的内存屏障(‘总栏杆’)的含义将在下文说明。
在本申请的一些实施例中,随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障的步骤包括:在限定数量的内存地址空间中循环移动所述内存屏障,其中顺序在最后的处理阶段的内存屏障不超越顺序在最前面的内存屏障。图2A和图2B中的箭头R可标示在限定数量的内存空间中所述内存屏障。
图3A-图3D是本申请一实施例的数据库运行数据的处理方法的过程示意图。换言之,图3A、图3B、图3C和图3D展示本申请一实施例的数据库运行数据的处理方法的过程的示意图。图3A-图3D中,Id可作为数据顺序的一种表征,例如为数据接收到的顺序,也表征了数据被处理时需保持的顺序。如有数据被删除,则顺序依次递补。
图3A中,301例如表示内存逻辑地址对应的存储空间。如前述,在本申请的技术方案中,在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障。随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障。内存屏障例如图3A-图3D中的箭头①、②、③、④和⑤所例示。
为使顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障,例如可在处理操作已完成的数据所在的内存地址的最前端设置内存屏障,例如为图3A-图3D中的‘总栏杆’。图2A-图2B中的‘总栏杆’亦可表示类似的含义。在一些情形中,数据发送阶段的内存屏障④也可作为‘总栏杆’。
当在限定数量的内存地址空间中循环移动所述内存屏障,图3A-图3D中能够的箭头R即可标示在限定数量的内存空间中循环移动所述内存屏障,在此情形中,数据接收阶段的内存屏障①在循环时,不超越内存屏障⑤,即处理操作已完成的数据所在的内存地址的最前端的内存屏障(也即为‘总栏杆’)。
参考图3A-图3D,图3A中,‘0x101010 0x1001001’表示接受到的数据,其存储在内存地址空间(也可称为内存地址对应的存储空间)302中,对该接收到的数据将会进行解析操作。在图3B中,内存地址空间302此时存放有已经经过解析的数据,此时数据解析阶段对应的内存屏障②已移动到内存地址302的最前端位置,被解析完成的数据将在加工阶段被进行加工。在图3C中,内存地址302中的数据被加工,此时数据加工阶段对应的内存屏障③也已移动到内存地址302的最前端位置。这里的加工阶段例如为数据过滤,更具体的为数据删除操作,例如图3C中的存储地址空间302中将部分数据划线的示意。如前述,在一些实施例中,内存屏障指向特定的内存逻辑地址。在具体实现时,内存屏障例如通过编程的代码中指向某一地址的指针实现。
经过加工阶段的数据将进入发送阶段,在图3D中,内存地址302中的数据被发送,此时数据发送阶段对应的内存屏障④也已移动到内存地址302的最前端位置。
经过发送的数据,已经被处理完成,因此标示数据已经被处理完成的内存屏障⑤(即‘总栏杆’)也将在下一时段移动到内存地址302的最前端位置。
前述参考图3A-图3D叙述的过程,即可表示本申请技术方案中在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障;随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障的具体示意。前述叙述的实施例过程中,内存屏障的移动也可理解为是在不断的设置内存屏障,或是进行内存屏障的更新设置。
关于随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障的步骤包括:在限定数量的内存地址空间中循环移动所述内存屏障,其中顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障。在图3A-图3D中,因内存屏障⑤(即‘总栏杆’)所指向的内存地址表示处理操作已完成的数据所在的内存地址,故在内存屏障⑤(即‘总栏杆’)之后的存储空间,因数据已被处理完成,故地址空间可被回收或覆盖。因此,当在限定数量的内存地址空间中循环移动所述内存屏障时,数据接收阶段对应的内存屏障①不超越内存屏障⑤(即‘总栏杆’),因内存屏障⑤(即‘总栏杆’)之后的存储空间是可被回收或覆盖的存储空间,内存屏障⑤(即‘总栏杆’)之前的存储空间的数据,还在处理的过程中,故本申请的技术方案的实施例中,在限定数量的内存地址空间中循环移动所述内存屏障,其中顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障。
本申请的技术方案中,当各个数据处理阶段经过对其线程资源的调节,实现各处理阶段的运行时间的差值在预定范围内时(也可扩展理解为大致相等),通过内存屏障的设置,可实现对不同条运行数据的按序并行处理,即对前一条运行数据进行前一处理阶段的同时,对后一条运行数据也在进行后一处理阶段的处理,这里的前一条数据和后一条数据例如为相邻的两条数据,前一处理阶段和后一处理阶段例如为相邻的两个处理阶段。
图4是本申请一实施例的数据库运行数据的处理方法中通过设置内存屏障实现对数据的按序并行处理的示意图。
如图4所例示:
在第一时段接收第一数据(数据1),所述第一数据的内存地址最前端(或称为第一数据的最前端的内存地址,或称为第一数据的最前端的内存逻辑地址)为第一地址;内存地址或内存逻辑地址例如根据内存的硬件配置条件的不同为16位或32位地址。通过指针方式实现时例如指针即指向该16位或32位地址的存储空间。
在第二时段接收第二数据(数据2),所述第二数据所在的内存地址的最前端的内存地址为第二地址,同时将解析阶段的内存屏障移动到所述第一地址,解析所述第一数据;
在第三时段接收第三数据(数据3),所述第三数据所在的内存地址的最前端的内存地址为第三地址,同时将解析阶段的内存屏障移动到所述第二地址,解析所述第二数据,且将加工阶段的内存屏障移动到所述第一地址,加工所述第一数据;
在第四时段接收第四数据(数据4),所述第四数据所在的内存地址的最前端的内存地址为第四地址,同时将解析阶段的内存屏障移动到所述第三地址,解析所述第三数据,且将加工阶段的内存屏障移动到所述第二地址,加工所述第二数据,将将发送阶段的内存屏障移动到所述第一地址,发送所述第一数据;
在第五时段接收第五数据(数据5),所述第五数据所在的内存地址的最前端的内存地址为所述第五地址,同时将解析阶段的内存屏障移动到所述第四地址,解析所述第四数据,且将加工阶段的内存屏障移动到所述第三地址,加工所述第三数据,将发送阶段的内存屏障移动到所述第二地址,发送所述第二数据。
……
当在限定数量的内存地址空间中,可用的内存地址资源都已使用过一轮后,则循环回到第一地址,例如可为
当第4M+1个时段接收第4M+1条数据(或称为第4M+1数据)(数据4M+1),所述第4M+1条数据所在的内存地址的最前端的内存地址为所述第一地址;
在第4M+2时段接收第4M+2条数据(数据2),所述第4M+2条数据所在的内存地址的最前端的内存地址为第二地址,同时将解析阶段的内存屏障移动到所述第一地址,解析所述第一数据;
在第4M+3时段接收第4M+3数据(数据3),所述第4M+3数据所在的内存地址的最前端的内存地址为第三地址,同时将解析阶段的内存屏障移动到所述第二地址,解析所述第二数据,且将加工阶段的内存屏障移动到所述第一地址,加工所述第一数据;
在第4M+4时段(或称为4(M+1)时段)接收第4M+4数据(数据4),所述第4M+4数据所在的内存地址的最前端的内存地址为第四地址,同时将解析阶段的内存屏障移动到所述第三地址,解析所述第三数据,且将加工阶段的内存屏障移动到所述第二地址,加工所述第二数据,将将发送阶段的内存屏障移动到所述第一地址,发送所述第一数据;
在第4(M+1)+1时段接收第4(M+1)+1数据(数据4(M+1)+1),所述第4(M+1)+1数据所在的内存地址的最前端的内存地址为所述第五地址,同时将解析阶段的内存屏障移动到所述第四地址,解析所述第四数据,且将加工阶段的内存屏障移动到所述第三地址,加工所述第三数据,将发送阶段的内存屏障移动到所述第二地址,发送所述第二数据。
……
M为自然数,M可表示限定数量的内存地址空间被循环使用过的轮数(或循环使用过的次数),M为0时可表示还未被循环使用过一轮,M为1时可表示已被循环使用过一轮,依此类推。
对数据的按序并行处理也可参考图3A-图3D进行理解,例如在图3A-3D中,在将有数据被接收到内存地址空间301时,内存地址空间302中已被接收的数据,将被进行解析,内存地址空间303中已被解析完的数据将被加工,内存地址空间304中已被加工的数据将被发送。对应地,各个处理阶段对应的内存屏障也进行移动,标示数据已经被处理完成的内存屏障⑤(即‘总栏杆’)也相应移动。当在限定数量的内存地址空间中循环移动前述内存屏障时,其中顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障,即数据接收阶段的内存屏障不超越内存屏障‘总栏杆’,以免未被处理完成的数据被覆盖而无法得到正确的处理结果。
图5A-图5D是本申请一实施例的数据库运行数据的处理方法中内存屏障的移动与实现数据按序并行处理的关系的原理示意图。
为使本申请的技术方案得到更为直观的展示,以便于更清楚的理解的该方案,可进一步参考图5A-图5D,其进一步展现了本申请的数据库运行数据的处理方法中内存屏障的移动和实现数据按序并行处理的过程的原理。按序并行处理可理解为按照预定的顺序对数据进行处理,并且,在同一时段内,对多条数据进行处理操作。
图5A-图5D中,当各个处理阶段经过对其所用的线程资源的调节,实现各处理阶段的处理时间大致相等时,各个内存屏障接近均匀地移动(即依序移动),此时也可实现对运行数据的按序并行处理,与串行处理数据相比,大幅提高了数据的处理效率,例如图5A-图5D展示的实施例中,当数据量较大,例如上千条数据或更多时,处理时间可答复缩短至串行处理时的1/4。
本申请的数据库运行数据的处理方法,通过对数据处理阶段的划分与调节和多个数据处理阶段的内存屏障的设置,实现对数据的按序并行处理,在满足数据处理顺序要求的同时,可大幅提高数据处理的效率。
本申请还提供一种数据库运行数据的处理装置,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如前所述的方法。
图6是根据本申请一实施例示出的数据库运行数据的处理装置的***实施环境示意图。数据库运行数据的处理装置600可包括内部通信总线601、处理器(Processor)602、只读存储器(ROM)603、随机存取存储器(RAM)604、以及通信端口605。数据库运行数据的处理装置600通过通信端口连接网络,实现与其他***或装置的连接。内部通信总线601可以实现数据库运行数据的处理装置600组件间的数据通信。处理器602可以进行判断和发出提示。在一些实施例中,处理器602可以由一个或多个处理器组成。通信端口605可以实现从网络发送和接受信息及数据。数据库运行数据的处理装置600还可以包括不同形式的程序储存单元以及数据储存单元,例如只读存储器(ROM)603和随机存取存储器(RAM)604,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器602所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给用户设备,在用户界面上显示。
上述的数据库运行数据的处理装置600可以实施为计算机程序,保存在存储器中,并可记载到处理器602中执行,以实施本申请的数据库运行数据的处理方法。
本申请还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的本申请的数据库运行数据的处理方法。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (9)
1.一种数据库运行数据的处理方法,包括以下步骤:
设定多条运行数据中每条运行数据的多个处理操作和所述多个处理操作的先后顺序,所述多条运行数据具有预定的处理顺序;
根据所述多个处理操作中的每一处理操作所消耗的物理资源,将所述多个处理操作进行分割和/或归并,形成N个处理阶段,所述N个处理阶段的先后顺序与所述多个处理操作的先后顺序对应;N为大于等于2的正整数;
调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内;
在各个处理阶段所处理的数据所在的内存地址的最前端设置内存屏障,且顺序在后的处理阶段的内存屏障不超越顺序在前的处理阶段的内存屏障;
随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障;
其中,随着每一处理阶段中对每条运行数据的相应处理而移动每一内存屏障的步骤包括:在限定数量的内存地址空间中循环移动所述内存屏障,其中顺序在最前的处理阶段的内存屏障不超越顺序在最后面的内存屏障。
2.根据权利要求1所述的数据库运行数据的处理方法,其特征在于,所述内存屏障指向特定的内存逻辑地址。
3.根据权利要求1所述的数据库运行数据的处理方法,其特征在于,所述预定范围包括小于等于10毫秒。
4.根据权利要求1所述的数据库运行数据的处理方法,其特征在于,调节所述N个处理阶段中每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内包括:
根据所述N个处理阶段中每一处理阶段所需处理的任务量,确定所述每一处理阶段在内存中运行时的线程资源,使所述每一处理阶段的运行时间的差值在预定范围内。
5.根据权利要求1所述的数据库运行数据的处理方法,其特征在于,所述数据库运行数据包括MySQL数据库的Binlog数据。
6.根据权利要求1所述的数据库运行数据的处理方法,其特征在于,所述处理操作包括数据接收、数据解析、数据转换、数据过滤和/或数据发送。
7.根据权利要求6所述的数据库运行数据的处理方法,其特征在于,所述处理阶段包括数据接收阶段、数据解析阶段、数据加工阶段和数据发送阶段。
8.一种数据库运行数据的处理装置,包括:
存储器,用于存储可由处理器执行的指令;以及
处理器,用于执行所述指令以实现如权利要求1-7任一项所述的方法。
9.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720059.8A CN113407324B (zh) | 2021-06-28 | 2021-06-28 | 一种数据库运行数据的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720059.8A CN113407324B (zh) | 2021-06-28 | 2021-06-28 | 一种数据库运行数据的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113407324A CN113407324A (zh) | 2021-09-17 |
CN113407324B true CN113407324B (zh) | 2024-03-29 |
Family
ID=77679850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110720059.8A Active CN113407324B (zh) | 2021-06-28 | 2021-06-28 | 一种数据库运行数据的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113407324B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656804A (zh) * | 2017-09-22 | 2018-02-02 | 深圳金融电子结算中心有限公司 | 进程池***及方法 |
CN110377494A (zh) * | 2018-04-13 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 一种解决cpu优化引发的多线程问题的方法及*** |
CN111158939A (zh) * | 2019-12-31 | 2020-05-15 | 中消云(北京)物联网科技研究院有限公司 | 数据处理方法、装置、存储介质及电子设备 |
CN112749120A (zh) * | 2019-10-29 | 2021-05-04 | 辉达公司 | 将数据有效地传输至处理器的技术 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930707B2 (en) * | 2006-05-10 | 2011-04-19 | Oracle International Corp. | Optimizing code motion with delayed exception handling |
WO2015188299A1 (zh) * | 2014-06-09 | 2015-12-17 | 华为技术有限公司 | 一种数据处理方法及装置 |
US11449339B2 (en) * | 2019-09-27 | 2022-09-20 | Red Hat, Inc. | Memory barrier elision for multi-threaded workloads |
-
2021
- 2021-06-28 CN CN202110720059.8A patent/CN113407324B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656804A (zh) * | 2017-09-22 | 2018-02-02 | 深圳金融电子结算中心有限公司 | 进程池***及方法 |
CN110377494A (zh) * | 2018-04-13 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 一种解决cpu优化引发的多线程问题的方法及*** |
CN112749120A (zh) * | 2019-10-29 | 2021-05-04 | 辉达公司 | 将数据有效地传输至处理器的技术 |
CN111158939A (zh) * | 2019-12-31 | 2020-05-15 | 中消云(北京)物联网科技研究院有限公司 | 数据处理方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113407324A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6812852B1 (en) | System and method for selecting a subset of autonomous and independent slave entities | |
US20090063527A1 (en) | Processing of database statements with join predicates on range-partitioned tables | |
CN108055343A (zh) | 用于机房的数据同步方法及装置 | |
CN102694554A (zh) | 数据压缩设备、其操作方法以及包括该设备的数据处理装置 | |
CN113742298B (zh) | 一种机载二进制文件通用并行的解析方法、装置及电子设备 | |
CN106648839B (zh) | 数据处理的方法和装置 | |
CN113468196B (zh) | 用于处理数据的方法、装置、***、服务器和介质 | |
CN103793653B (zh) | 一种基于树优化的程序依赖关系分析方法及*** | |
CN113407324B (zh) | 一种数据库运行数据的处理方法和装置 | |
CN106503010B (zh) | 一种数据库更改写入分区的方法及装置 | |
CN113190576A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
US9455742B2 (en) | Compression ratio for a compression engine | |
CN114912587B (zh) | 神经网络分布式训练***、方法、装置、计算单元及介质 | |
CN111125459A (zh) | 字符串处理方法和装置 | |
CN115080113A (zh) | 项目代码检测方法和装置、可读存储介质、电子设备 | |
CN112000671B (zh) | 基于区块链的数据库表处理方法、装置及*** | |
CN114490861A (zh) | 遥测数据解析方法、装置、设备及介质 | |
CN111143326B (zh) | 减少数据库操作的方法、装置、计算机设备及存储介质 | |
CN112988497B (zh) | 管理备份***的方法、电子设备和计算机程序产品 | |
US9934035B2 (en) | Device and method for tracing updated predicate values | |
CN113778948A (zh) | 消息持久化存储方法及装置 | |
US10684781B1 (en) | Big data read-write reduction | |
CN107391250B (zh) | 一种提高Mapreduce任务Shuffle性能的控制器调度方法 | |
CN112000698A (zh) | 日志的记录方法及装置、存储介质、电子装置 | |
CN103970860A (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 |