CN110795318A - 数据处理方法和装置以及电子设备 - Google Patents

数据处理方法和装置以及电子设备 Download PDF

Info

Publication number
CN110795318A
CN110795318A CN201810866550.XA CN201810866550A CN110795318A CN 110795318 A CN110795318 A CN 110795318A CN 201810866550 A CN201810866550 A CN 201810866550A CN 110795318 A CN110795318 A CN 110795318A
Authority
CN
China
Prior art keywords
log
log records
data
records
operation instructions
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
CN201810866550.XA
Other languages
English (en)
Other versions
CN110795318B (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810866550.XA priority Critical patent/CN110795318B/zh
Publication of CN110795318A publication Critical patent/CN110795318A/zh
Application granted granted Critical
Publication of CN110795318B publication Critical patent/CN110795318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种数据处理方法和装置以及电子设备。该方法包括:使用多个线程,并行获取多条日志记录,其中,日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;根据顺序信息来确定多条日志记录的执行顺序;使用多个线程,根据多条日志记录所针对的数据对象以及上述执行顺序,并行执行多条日志记录对应的数据操作指令。本发明实施例可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高日志记录的生效效率。

Description

数据处理方法和装置以及电子设备
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法和装置以及电子设备。
背景技术
在分布式系统中,各服务器的状态应该保持一致,当某个服务器发生异常时,则无法与其它服务器达成一致。为了不对系统造成影响,确保容错性,需要设置一致性协议,以在服务器集群内部对某个数据的值达成一致,并且保证不论发生任何异常,都不会破坏整个分布式系统的一致性。
Raft是现有技术中一种较常用的一致性协议,用于解决多副本数据保持一致性的问题。在Raft协议中,写入数据的过程如下:客户端向服务器集群中的主服务器(leader)发送写请求(即,一串用于指示集群执行操作的操作指令),主服务器将该写请求转换为日志记录(entry),写入到日志系统(log)中,并将该日志记录发送至集群其余的从服务器(follower)。当主服务器接收到大多数(通常是过半)从服务器的确认信息后,再将该日志记录发送到状态机(state machine)中,由状态机执行该日志记录所对应的操作指令,即,对该日志记录进行生效(apply)。
发明人在实现本发明的过程中,发现现有技术至少存在如下问题:为了简单性和协议的可理解性,Raft协议采用了高度串行化的设计。即,在将日志记录发送到状态机以执行相关操作指令时,必须严格保证各条日志记录的有序性。因此,只能通过单独一个线程来有序地从日志文件中读取日志记录,并执行相应的操作指令,从而导致日志记录的生效很慢。
发明内容
本发明实施例提供一种数据处理方法和装置以及电子设备,以解决现有技术中直接raft协议中的日志记录必须通过单线程有序写入状态机,导致日志记录生效慢的缺陷。
为达到上述目的,本发明实施例提供了一种数据处理方法,包括:
使用多个线程,并行获取多条日志记录,其中,所述日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;
根据所述顺序信息来确定所述多条日志记录的执行顺序;
使用多个线程,根据所述多条日志记录所针对的数据对象以及所述执行顺序,并行执行所述多条日志记录对应的数据操作指令。
本发明实施例还提供了一种数据处理装置,包括:
指令执行模块,用于使用多个线程,并行获取多条日志记录,其中,所述日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;
执行顺序确定模块,用于根据所述顺序信息来确定所述多条日志记录的执行顺序;
所述指令执行模块,还用于使用多个线程,根据所述多条日志记录所针对的数据对象以及所述执行顺序,并行执行所述多条日志记录对应的数据操作指令。
本发明实施例还提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以执行上述数据处理方法。
本发明实施例提供的数据处理方法和装置以及电子设备,可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1a为现有技术中raft协议中的日志记录的读取方法的原理示意图;
图1b为本发明实施例提供的数据处理方法的原理示意图;
图2为本发明实施例提供的业务系统的系统框图;
图3为本发明提供的数据处理方法一个实施例的流程图;
图4为本发明提供的数据处理方法另一个实施例的流程图;
图5为本发明提供的数据处理方法又一个实施例的流程图;
图6为本发明提供的数据处理装置一个实施例的结构示意图;
图7为本发明提供的数据处理装置另一个实施例的结构示意图;
图8为本发明提供的电子设备实施例的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有技术中,raft协议中的状态机必须通过单线程有序读取日志记录,导致日志记录生效慢的缺陷。本申请提出了一种数据处理方案,其主要原理是:针对日志文件中按照时间顺序排列的多条日志记录,根据日志记录在日志文件中的顺序来确定日志记录的顺序信息。这样,在状态机读取日志记录时,可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
图1a为现有技术中raft协议中的日志记录的读取方法的原理示意图;图1b为本发明实施例提供的数据处理方法的原理示意图。举例说明,假设raft协议中产生的日志记录,按时间顺序依次为X、Y、Z、A、B、C、D、E,如图1a所示,在现有技术中,为了严格保证各条日志记录的顺序,只能通过单独一个线程有序写入状态机,也就是说,按照X、Y、……、E的顺序依次读取,然后依次执行各日志记录对应的数据操作指令,导致日志记录生效很慢。而本发明实施例提供的方案中,如图1b所示,根据日志记录在日志文件中的顺序来确定日志记录的顺序信息,例如,可以获取能够唯一标识各日志记录的关键字,如,日志记录X、Y、Z、A、B、C、D、E的关键字分别为x、y、z、a、b、c、d、e。为每条日志记录添加顺序信息,该顺序信息中按顺序存储有本条日志记录之前的预定数量条日志记录的关键字(在常见的应用场景中,日志记录的大小一般都远远大于其关键字的大小,因此,添加关键字只增加非常小的额外开销)。在本实例中,可以选N=3条日志记录的关键字(N的具体数值,可以根据具体线上的负载场景进行调整)。如图1b所示,日志记录Y的顺序信息为其前一条日志记录X的关键字x;日志记录Z的顺序信息为其前两条日志记录X,Y的关键字x,y;日志记录A的顺序信息为其前三条日志记录X,Y,Z的关键字x,y,z;日志记录B的顺序信息为其前三条日志记录Y,Z,A的关键字y,z,a,以此类推,得到所有日志记录的顺序信息。在状态机读取日志记录以执行相应数据操作指令时,携带相应的顺序信息,从而使得状态机可以根据每条日志记录中添加的顺序信息,对各日志记录进行排序,不必根据日志记录的写入时间来判断顺序,因此,可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
本发明实施例提供的方法可应用于任何基于raft协议的分布式业务系统。图2为本发明实施例提供的业务系统的系统框图,图2所示的结构仅仅是本发明的技术方案可以应用的业务系统的示例之一。如图2所示,业务系统中包括数据处理装置。该数据处理装置包括:执行顺序确定模块和指令执行模块,可以用来执行下述图3、图4和图5所示的处理流程。在该业务系统中,首先,使用多个线程,并行获取多条日志记录,其中,日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;然后,根据顺序信息来确定多条日志记录的执行顺序;使用多个线程,根据多条日志记录所针对的数据对象以及上述执行顺序,并行执行多条日志记录对应的数据操作指令。具体地,上述使用多个线程获取多条日志记录及执行相应数据操作指令的步骤中,线程的数量与日志记录的数量相同,即,每个线程对应于一条日志记录,每个线程获取一条日志记录,并执行该日志记录中的数据操作指令。当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,状态机可以根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
上述实施例是对本发明实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。
实施例一
图3为本发明提供的数据处理方法一个实施例的流程图,该方法的执行主体可以为上述业务系统,也可以为基于raft协议的分布式系统中的服务器设备,也可以为集成在这些服务器设备上的装置或芯片。如图3所示,该数据处理方法包括如下步骤:
S301,使用多个线程,并行获取多条日志记录。日志记录包括顺序信息和至少一条针对数据对象的数据操作指令。例如,日志记录X中包括数据操作指令a=1,该数据操作指令为赋值指令,其所针对的数据对象为a。
在本发明的一个实施例中,使用多个线程并行获取多条日志记录,每一个线程用于获取一条日志记录,线程与日志记录一一对应,因而,所使用的线程的数量与所并行获取的日志记录的数量相同。
S302,根据顺序信息来确定多条日志记录的执行顺序。
S303,使用多个线程,根据多条日志记录所针对的数据对象以及执行顺序,并行执行多条日志记录对应的数据操作指令。
在本发明实施例中,由于各日志记录携带了用于标识顺序的顺序信息,因此,在状态机使用多个线程并行读取多条日志记录后,可以根据日志记录的顺序信息来确定多条日志记录的执行顺序,并由多个线程根据多条日志记录所针对的数据对象和执行顺序,并行地执行这多条日志记录对应的数据操作指令。
本发明实施例提供的数据处理方法,可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
实施例二
图4为本发明提供的数据处理方法另一个实施例的流程图。如图4所示,在上述图3所示实施例的基础上,本实施例提供的数据处理方法还可以包括以下步骤:
S401,使用多个线程,并行获取多条日志记录,其中,日志记录包括顺序信息和至少一条针对数据对象的数据操作指令。
在本发明的一个实施例中,使用多个线程并行获取多条日志记录,每一个线程用于获取一条日志记录,线程与日志记录一一对应,因而,所使用的线程的数量与所并行获取的日志记录的数量相同。需要说明的是,步骤S401中所说的并行获取多条日志记录,并不是指多个线程必须严格同步地获取多条日志记录,而是指各个线程获取日志记录的过程相互独立,可以并发进行。每个线程可以分别获取一条日志记录,在执行完日志记录中的数据操作指令之后,再去日志文件中顺序获取下一条日志记录,各个线程获取日志记录的过程可能不完全同步。
基于raft协议,日志文件中按照时间顺序存储有多条日志记录,每条日志记录对应于至少一条数据操作指令,该数据操作指令为由客户端生成并发送至集群服务器执行的操作指令,其针对于某一个或某几个数据对象。例如,日志记录X中包括数据操作指令a=1,该数据操作指令为赋值指令,其所针对的数据对象为a。
在本发明的实施例中,每一条日志记录均具有顺序信息,日志记录的顺序信息包括在日志文件中位于本条日志记录之前的预定数量条日志记录的关键字,且预定数量条日志记录的关键字按照该预定数量条日志记录在日志文件中的顺序排列,关键字用于唯一标识日志记录。预定数量的具体取值可以由本领域技术人员自行设置,本发明对此不做限制。根据一种实施例,可以将预定数量设置为3。例如,如图1b所示,日志文件中按顺序存储有日志记录X、Y、…、E,日志记录X、Y、…、E的关键字分别为x、y、…、e。每一条日志记录的顺序信息为日志文件中位于该日志记录之前的3条日志记录的关键字。对于日志记录X,由于其为日志文件中的第一条日志记录,因此,其顺序信息为空(NULL);日志记录A的顺序信息为顺序排列的位于日志记录A之前的3条日志记录X、Y、Z的关键字,即x、y、z。
具体地,日志记录的关键字,可以为日志记录中用于唯一标识日志记录的属性值。也可以为每条日志记录分配全局唯一身份标识(ID),将全局唯一ID作为日志记录的关键字;还可以对每条日志记录中的数据进行哈希运算,将得到的哈希值作为日志记录的关键字。总之,获取各日志记录的关键字的原则是,该关键字能够唯一标识该日志记录。
S402,根据顺序信息来确定多条日志记录的执行顺序。
在本发明的实施例中,可以根据多条日志记录的顺序信息来确定多条日志记录的执行顺序。
当线程的数量大于预定数量(即日志记录的顺序信息中所能存储的关键字的最大数量)与1之和时,可以通过至少两个日志记录的顺序信息来确定多个线程所获取到的多个日志记录的执行顺序。例如,日志文件中按顺序存储有5条日志记录1~5。当线程的数量为5,预定数量为3时,日志记录的顺序信息中包括位于本日志记录之前的3条日志记录的关键字,线程1~5分别获取日志记录1~5。由于日志记录5的顺序信息中不包括日志记录1的关键字,日志记录1的顺序信息中亦不包括日志记录5的关键字,因此无法直接通过日志记录1或日志记录5的顺序信息来确定日志记录1与日志记录5的执行顺序。但是,由于日志记录5的顺序信息中记录了其之前的3个日志记录(即日志记录2、3、4)的关键字,因此能够通过日志记录5的顺序信息来直接确定日志记录2、3、4与日志记录5的执行顺序。类似地,根据日志记录4的顺序信息,可以确定日志记录1~4的执行顺序,这样,根据日志记录4和日志记录5的顺序信息,便确定出了5个线程所获取到的5个日志记录的完整的执行顺序。
当线程的数量小于或等于预定数量与1之和时,仅通过一个日志记录的顺序信息(通常为多个线程所获取到的多个日志记录中,在日志文件中的顺序最靠后的日志记录)即可确定多个线程所获取到的多个日志记录的执行顺序。例如,日志文件中按顺序存储有4条日志记录1~4。当线程的数量为4,预定数量为3时,日志记录的顺序信息中包括位于本日志记录之前的3条日志记录的关键字,线程1~4分别获取日志记录1~4。这种情况下,可以直接根据日志记录4的顺序信息来确定出日志记录1~4的执行顺序。
因此,较佳地,线程的数量可以小于或等于预定数量与1之和,使得状态机能够更加快速地确定各日志记录的执行顺序。
S403,判断多条日志记录所针对的数据对象是否各不相同;若是,则执行步骤S404;否则,执行步骤S405。
S404,并行执行多条日志记录对应的数据操作指令。
在本发明实施例中,多个线程分别获取多条日志记录,线程与日志记录一一对应。当多条日志记录对针对的数据对象各不相同时,相应地,多个线程操作的是不同的数据对象,各线程执行数据操作指令的过程是相互独立的,即,各线程可以分别执行各自的数据操作指令,执行完之后,再去日志文件中顺序读取下一条日志记录来执行。举例说明,假设有三个线程,这三个线程分别获取三个日志记录的数据操作指令,这三条数据操作指令是三个赋值指令:x=1,y=2,z=3。x、y、z是三个不同的数据对象,因此这三个线程可以并行执行各指令,执行时不存在先后顺序。
S405,根据执行顺序来执行多条日志记录对应的数据操作指令。
当多条日志记录中至少有两条日志记录针对的是同一个数据对象时,相应地,多个线程中至少有两个线程的操作是针对同一个数据对象。操作同一个数据对象的线程在执行相应的数据操作指令时存在先后顺序,即,需要根据步骤S402中所确定的执行顺序来执行多条日志记录对应的数据操作指令,从而保证数据操作的有序性和准确性。
本发明实施例提供的数据处理方法,通过向日志记录中添加包含关键字的顺序信息,以标识日志记录的顺序,使得在状态机读取日志记录时,可以同时启动多个线程,当多个线程中至少有两个线程的操作是针对同一个数据对象时,根据日志记录的顺序信息来确定各数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
实施例三
图5为本发明提供的数据处理方法又一个实施例的流程图。如图5所示,在上述图3或图4所示实施例的基础上,本实施例提供的数据处理方法还可以包括以下步骤:
S501,使用多个线程,并行获取多条日志记录,其中,日志记录包括顺序信息和至少一条针对数据对象的数据操作指令。
S502,根据顺序信息来确定多条日志记录的执行顺序。
S503,判断多条日志记录所针对的数据对象是否各不相同;若是,则执行步骤S504;否则,执行步骤S505。
S504,并行执行多条日志记录对应的数据操作指令。
在本发明实施例中,步骤S501至步骤S504与上述图4所示实施例中的步骤S401至步骤S404相同,在此不再赘述。
S505,按照执行顺序来执行多条第一日志记录对应的数据操作指令,并并行执行第二日志记录对应的数据操作指令。其中,多条第一日志记录所针对的数据对象相同,第二日志记录所针对的数据对象各不相同且与第一日志记录不同。
当多条日志记录中至少有两条日志记录针对的是同一个数据对象时,相应地,多个线程中至少有两个线程的操作是针对同一个数据对象,操作同一个数据对象的线程之间存在先后顺序,需要按顺序执行;其他线程可以并行执行。举例说明,假设有四个线程,分别获取四个日志记录(日志记录1~日志记录4),这四个日志记录所对应的数据操作指令分别为四个赋值指令:x=1,y=2,z=3,x=4,其中,日志记录1和日志记录4的数据操作指令针对的是同一个数据对象x,日志记录2和日志记录3的数据操作指令针对的是不同的数据对象y、z,相应的,日志记录1和日志记录4为第一日志记录,日志记录2和日志记录3为第二日志记录。因此,线程1和线程4需要根据顺序信息来确定日志记录1和日志记录4的数据操作指令(即x=1,x=4)的执行顺序,然后按照执行顺序先后执行;线程2、线程3在执行日志记录2和日志记录3的数据操作指令(即y=2,z=3)时不存在执行顺序,可以并行执行。
本发明实施例提供的数据处理方法,通过向日志记录中添加包含关键字的顺序信息,以标识日志记录的顺序,使得在状态机读取日志记录时,可以同时启动多个线程,当多个线程中至少有两个线程的操作是针对同一个数据对象时,按照先后顺序执行针对相同数据对象的数据操作指令,并并行执行针对不同数据对象的数据操作指令,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
实施例四
图6为本发明提供的数据处理装置一个实施例的结构示意图,可用于执行如图3所示的方法步骤。如图6所示,该装置可以包括:执行顺序确定模块61和指令执行模块62。
指令执行模块62用于使用多个线程,并行获取多条日志记录,其中,日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;执行顺序确定模块61用于根据顺序信息来确定多条日志记录的执行顺序;指令执行模块62还用于,使用多个线程,根据多条日志记录所针对的数据对象以及上述执行顺序,并行执行多条日志记录对应的数据操作指令。
在本发明实施例中,首先由指令执行模块62使用多个线程,并行获取多条日志记录。然后,执行顺序确定模块61根据日志记录的顺序信息来确定多条日志记录的执行顺序。然后,由指令执行模块62使用多个线程,根据多条日志记录所针对的数据对象以及上述执行顺序,并行执行多条日志记录对应的数据操作指令。
本发明实施例提供的数据处理装置,可以同时启动多个线程,并行地读取多条日志记录并执行日志记录中的数据操作指令,当多个日志记录的数据操作指令存在冲突(即针对相同的数据对象)时,根据每条日志记录中添加的顺序信息来确定产生冲突的数据操作指令的执行顺序,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
实施例五
图7为本发明提供的数据处理装置另一个实施例的结构示意图,可用于执行如图4和图5所示的方法步骤。如图7所示,在上述图6所示实施例的基础上,本发明实施例提供的数据处理装置中,指令执行模块62可以包括:判断单元621、第一执行单元622和第二执行单元623。
其中,判断单元621可以用于判断多条日志记录所针对的数据对象是否各不相同;若是,则第一执行单元622用于并行执行多条日志记录对应的数据操作指令;若否,则第二执行单元623用于根据执行顺序来执行多条日志记录对应的数据操作指令。
在本发明实施例中,当多条日志记录对针对的数据对象各不相同时,相应地,多个线程操作的是不同的数据对象,各线程执行数据操作指令的过程是相互独立的,即,第一执行单元622可以使用多个线程分别并行执行各自的数据操作指令。当多条日志记录中至少有两条日志记录针对的是同一个数据对象时,相应地,多个线程中至少有两个线程的操作是针对同一个数据对象。操作同一个数据对象的线程在执行相应的数据操作指令时存在先后顺序,需要由第二执行单元623根据执行顺序确定模块61所确定的执行顺序来执行多条日志记录对应的数据操作指令,从而保证数据操作的有序性和准确性。
进一步地,第二执行单元623可以具体用于,按照执行顺序来执行多条第一日志记录对应的数据操作指令,并并行执行第二日志记录对应的数据操作指令。其中,多条第一日志记录所针对的数据对象相同;第二日志记录所针对的数据对象各不相同且与第一日志记录不同。
多个第一日志记录的执行存在先后顺序,需要由第二执行单元623按照执行顺序确定模块61所确定的执行顺序来顺序执行;多个第二日志记录的执行不存在先后顺序,可以并行执行。
另外,在本发明实施例中,执行顺序确定模块61确定的日志记录的顺序信息中的关键字,可以为日志记录中用于唯一标识日志记录的属性值。也可以为每条日志记录分配全局唯一身份标识(ID),将全局唯一ID作为日志记录的关键字;还可以对每条日志记录中的数据进行哈希运算,将得到的哈希值作为日志记录的关键字。总之,获取各日志记录的关键字的原则是,该关键字能够唯一标识该日志记录。
较佳地,线程的数量可以小于或等于预定数量与1之和,使得执行顺序确定模块61能够更加快速地确定出各日志记录的执行顺序。
本发明实施例提供的数据处理装置,通过向日志记录中添加包含关键字的顺序信息,以标识日志记录的顺序,使得在状态机读取日志记录时,可以同时启动多个线程,当多个线程中至少有两个线程的操作是针对同一个数据对象时,按照先后顺序执行针对相同数据对象的数据操作指令,并并行执行针对不同数据对象的数据操作指令,从而在保证执行各数据操作指令的有序性、准确性的前提下,提高了日志记录的生效效率。
实施例六
以上描述了数据处理装置的内部功能和结构,该装置可实现为一种电子设备。图8为本发明提供的电子设备实施例的结构示意图。如图8所示,该电子设备包括存储器81和处理器82。
存储器81,用于存储程序。除上述程序之外,存储器81还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器82,与存储器81耦合,执行存储器81所存储的程序,以执行上述图3、图4或图5所示的数据处理方法。
进一步,如图8所示,电子设备还可以包括:通信组件83、电源组件84、音频组件85、显示器86等其它组件。图8中仅示意性给出部分组件,并不意味着电子设备只包括图8所示组件。
通信组件83被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件83经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件83还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件84,为电子设备的各种组件提供电力。电源组件84可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件85被配置为输出和/或输入音频信号。例如,音频组件85包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器81或经由通信组件83发送。在一些实施例中,音频组件85还包括一个扬声器,用于输出音频信号。
显示器86包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (17)

1.一种数据处理方法,包括:
使用多个线程,并行获取多条日志记录,其中,所述日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;
根据所述顺序信息来确定所述多条日志记录的执行顺序;
使用多个线程,根据所述多条日志记录所针对的数据对象以及所述执行顺序,并行执行所述多条日志记录对应的数据操作指令。
2.根据权利要求1所述的数据处理方法,其中,所述日志记录的顺序信息包括在日志文件中位于本条日志记录之前的预定数量条日志记录的关键字,所述预定数量条日志记录的关键字按照所述预定数量条日志记录在所述日志文件中的顺序排列,所述关键字用于唯一标识所述日志记录。
3.根据权利要求2所述的数据处理方法,其中,所述关键字为日志记录中用于唯一标识所述日志记录的属性值。
4.根据权利要求2所述的数据处理方法,其中,所述关键字按照以下方法确定:
为所述日志记录分配全局唯一身份标识,将所述全局唯一身份标识作为所述日志记录的关键字。
5.根据权利要求2所述的数据处理方法,其中,所述关键字按照以下方法确定:
对日志记录中的数据进行哈希运算,将得到的哈希值作为所述日志记录的关键字。
6.根据权利要求1至5中任一项所述的数据处理方法,其中,所述根据所述多条日志记录所针对的数据对象以及所述执行顺序,并行执行所述多条日志记录对应的数据操作指令的步骤包括:
判断所述多条日志记录所针对的数据对象是否各不相同;
若是,则并行执行所述多条日志记录对应的数据操作指令;
若否,则根据所述执行顺序来执行所述多条日志记录对应的数据操作指令。
7.根据权利要求6所述的数据处理方法,其中,所述根据所述执行顺序来执行所述多条日志记录对应的数据操作指令的步骤包括:
按照所述执行顺序来执行多条第一日志记录对应的数据操作指令,并并行执行第二日志记录对应的数据操作指令,其中,所述多条第一日志记录所针对的数据对象相同,所述第二日志记录所针对的数据对象各不相同且与所述第一日志记录不同。
8.根据权利要求2所述的数据处理方法,其中,所述线程的数量不大于所述预定数量与1的和。
9.一种数据处理装置,包括:
指令执行模块,用于使用多个线程,并行获取多条日志记录,其中,所述日志记录包括顺序信息和至少一条针对数据对象的数据操作指令;
执行顺序确定模块,用于根据所述顺序信息来确定所述多条日志记录的执行顺序;
所述指令执行模块,还用于使用多个线程,根据所述多条日志记录所针对的数据对象以及所述执行顺序,并行执行所述多条日志记录对应的数据操作指令。
10.根据权利要求9所述的数据处理装置,其中,所述日志记录的顺序信息包括在日志文件中位于本条日志记录之前的预定数量条日志记录的关键字,所述预定数量条日志记录的关键字按照所述预定数量条日志记录在所述日志文件中的顺序排列,所述关键字用于唯一标识所述日志记录。
11.根据权利要求10所述的数据处理装置,其中,所述关键字为日志记录中用于唯一标识所述日志记录的属性值。
12.根据权利要求10所述的数据处理装置,其中,所述关键字按照以下方法确定:
为所述日志记录分配全局唯一身份标识,将所述全局唯一身份标识作为所述日志记录的关键字。
13.根据权利要求10所述的数据处理装置,其中,所述关键字按照以下方法确定:
对日志记录中的数据进行哈希运算,将得到的哈希值作为所述日志记录的关键字。
14.根据权利要求9至13中任一项所述的数据处理装置,其中,所述指令执行模块包括:判断单元、第一执行单元和第二执行单元,
所述判断单元用于判断所述多条日志记录所针对的数据对象是否各不相同;若是,则所述第一执行单元用于并行执行所述多条日志记录对应的数据操作指令;若否,则所述第二执行单元用于根据所述执行顺序来执行所述多条日志记录对应的数据操作指令。
15.根据权利要求14所述的数据处理装置,其中,所述第二执行单元具体用于,按照所述执行顺序来执行多条第一日志记录对应的数据操作指令,并并行执行第二日志记录对应的数据操作指令,其中,所述多条第一日志记录所针对的数据对象相同,所述第二日志记录所针对的数据对象各不相同且与所述第一日志记录不同。
16.根据权利要求10所述的数据处理装置,其中,所述线程的数量不大于所述预定数量与1的和。
17.一种电子设备,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以执行权利要求1至8中任一项所述的方法。
CN201810866550.XA 2018-08-01 2018-08-01 数据处理方法和装置以及电子设备 Active CN110795318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810866550.XA CN110795318B (zh) 2018-08-01 2018-08-01 数据处理方法和装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810866550.XA CN110795318B (zh) 2018-08-01 2018-08-01 数据处理方法和装置以及电子设备

Publications (2)

Publication Number Publication Date
CN110795318A true CN110795318A (zh) 2020-02-14
CN110795318B CN110795318B (zh) 2023-05-02

Family

ID=69425921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810866550.XA Active CN110795318B (zh) 2018-08-01 2018-08-01 数据处理方法和装置以及电子设备

Country Status (1)

Country Link
CN (1) CN110795318B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291014A (zh) * 2020-02-18 2020-06-16 杭州复杂美科技有限公司 区块链共识方法、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
CN106484618A (zh) * 2016-10-10 2017-03-08 中国电力科学研究院 一种基于访存依赖对的并行重放方法和装置
CN106919679A (zh) * 2017-02-27 2017-07-04 北京小米移动软件有限公司 应用于分布式文件系统的日志重演方法、装置及终端
CN107102795A (zh) * 2017-05-31 2017-08-29 努比亚技术有限公司 一种日志记录方法、移动终端以及计算机可读存储介质
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107665219A (zh) * 2016-07-28 2018-02-06 华为技术有限公司 一种日志管理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
CN107665219A (zh) * 2016-07-28 2018-02-06 华为技术有限公司 一种日志管理方法及装置
CN106484618A (zh) * 2016-10-10 2017-03-08 中国电力科学研究院 一种基于访存依赖对的并行重放方法和装置
CN106919679A (zh) * 2017-02-27 2017-07-04 北京小米移动软件有限公司 应用于分布式文件系统的日志重演方法、装置及终端
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107102795A (zh) * 2017-05-31 2017-08-29 努比亚技术有限公司 一种日志记录方法、移动终端以及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卢栋栋;何清法;: "基于多线程的并行实例恢复方法" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291014A (zh) * 2020-02-18 2020-06-16 杭州复杂美科技有限公司 区块链共识方法、设备和存储介质
CN111291014B (zh) * 2020-02-18 2023-05-30 杭州复杂美科技有限公司 区块链共识方法、设备和存储介质

Also Published As

Publication number Publication date
CN110795318B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
JP6348989B2 (ja) ファームウェアの復元方法、装置、端末、プログラム及び記録媒体
US11188560B2 (en) Synchronizing object in local object storage node
US9361309B2 (en) File synchronization method, electronic device and synchronization system
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN107423404B (zh) 流程实例数据同步处理方法和装置
CN111708841A (zh) 数据库数据同步方法及装置
CN110874383A (zh) 数据处理方法、装置及电子设备
CN107798408B (zh) 会议管理方法、装置、终端及计算机可读存储介质
WO2019047737A1 (zh) 事务处理方法、装置和系统以及电子设备
CN113064919B (zh) 数据处理方法、数据存储系统、计算机设备及存储介质
CN110795318B (zh) 数据处理方法和装置以及电子设备
US11797218B2 (en) Method and device for detecting slow node and computer-readable storage medium
CN106919679B (zh) 应用于分布式文件系统的日志重演方法、装置及终端
CN111865630B (zh) 拓扑信息获取方法、装置、终端及存储介质
CN110647421B (zh) 数据库处理方法、装置、系统以及电子设备
CN114928620B (zh) 用户信息同步方法、装置、设备、存储介质和程序产品
CN115004662A (zh) 数据同步方法、装置、数据存储系统及计算机可读介质
JP6583942B1 (ja) Bmc、判定方法及びbmcファームウェア
CN111026810B (zh) 数据同步方法、装置及存储介质
CN111367869A (zh) 镜像文件处理方法、装置、存储介质及电子设备
US10348824B2 (en) Method and apparatus for synchronizing state information of a plurality of terminals
WO2019024643A1 (zh) 数据同步管控方法、装置及电子设备
US11496548B2 (en) Decentralized management of collaborative operations for distributed systems
CN111831472B (zh) 快照创建方法和装置以及电子设备
CN110555075A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210916

Address after: 310056 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211027

Address after: 310056 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211231

Address after: 310000 No. 12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310056 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Applicant before: Alibaba (China) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant