分布式数据库的数据处理方法和装置与流程

文档序号:33116924发布日期:2023-02-01 03:00阅读:26来源:国知局
1.本公开涉及数据库
技术领域
:,尤其涉及分布式数据库的数据处理方法和装置。
背景技术
::2.在分布式数据库中,可能在不同的数据库节点上包括多个相同的目标表副本。在将源表中的数据写入目标表副本时,多个目标表副本之间需要进行同步,以确保各个目标表副本中的数据是一致的。由于同步过程中传输的数据量比较大,因此,有必要对数据同步过程进行改进,以减小数据同步过程中的带宽占用。此外,写入各个目标表副本的数据常常需要被查询,因此,需要保证一定的查询性能。然而,相关技术中难以兼顾目标表副本同步过程中的带宽占用和查询性能。技术实现要素:3.第一方面,本公开实施例提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法包括:在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;将所述压缩块写入所述主节点的第一重做日志;将所述主节点的第一重做日志同步到各个备用节点;其中,数据库节点的第一重做日志用于生成该数据库节点的majorsstable;数据库节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。4.在一些实施例中,所述源表中的增量数据被写入各个数据库节点的内存表和minorsstable。5.在一些实施例中,所述方法还包括:在将源表中的增量数据写入所述主节点的目标表副本的过程中,将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志;将所述主节点的第二重做日志同步到各个备用节点;数据库节点的第二重做日志用于生成该数据库节点的内存表和minorsstable。6.在一些实施例中,所述方法还包括:在从所述主节点的目标表副本中查询目标数据时,若从所述主节点的内存表和minorsstable中均未查询到所述目标数据,对所述主节点的majorsstable中的存量数据进行解压处理;从解压处理后的存量数据中查询所述目标数据。7.在一些实施例中,写入所述主节点的目标表副本的存量数据被划分为一个或多个微块;所述对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块,包括:对写入所述主节点的目标表副本的每个微块进行压缩处理,得到该微块对应的压缩块;其中,数据库节点的重做日志中的多个压缩块被累积为宏块后,用于生成该数据库节点的majorsstable。8.在一些实施例中,所述对写入所述主节点的目标表副本的每个微块进行压缩处理,包括:对写入所述主节点的目标表副本的每个微块进行按列编码;对编码后的每个微块进行压缩处理。9.在一些实施例中,数据库节点的重做日志中包括该数据库节点的各个宏块的描述信息,用于从该数据库节点的重做日志中解析出宏块。10.在一些实施例中,每个宏块中包括用于生成该宏块的各个压缩块的描述信息,用于从该宏块中解析出各个压缩块。11.第二方面,本公开实施例提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法应用于所述至少一个备用节点中的任意一个备用节点;所述方法包括:在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;将解析得到的各个压缩块写入所述备用节点的majorsstable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。12.第三方面,本公开实施例提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述装置包括:压缩模块,用于在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;第一写入模块,用于将所述压缩块写入所述主节点的第一重做日志;同步模块,用于将所述主节点的第一重做日志同步到各个备用节点;其中,数据库节点的第一重做日志用于生成该数据库节点的majorsstable;数据库节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被读出。13.第四方面,本公开实施例提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述装置应用于所述至少一个备用节点中的任意一个备用节点;所述装置包括:解析模块,用于在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;第二写入模块,用于将解析得到的各个压缩块写入所述备用节点的majorsstable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。14.第五方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。15.第六方面,本公开实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。16.本公开实施例一方面通过对写入主节点的目标表副本的存量数据进行压缩处理后写入主节点的第一重做日志,然后再将主节点的第一重做日志同步到各个备用节点,因此,能够有效减少同步过程中传输的数据量,从而减少目标表副本的数据同步过程中的带宽消耗;另一方面,由于压缩的数据仅用于生成数据存储结构中的最下层数据(即majorsstable的数据),而数据查询过程是按照数据库节点的数据存储结构自上而下的顺序进行的,因此,在查询过程中,会先在未被压缩的内存表和minorsstable中进行查询,只有在内存表和minorsstable中均未查询到相关数据时,才需要从majorsstable中查询数据,因此,即便majorsstable中的数据经过了压缩处理,对数据查询过程的影响也比较小。综上所述,本公开实施例的方案能够兼顾目标表副本同步过程中的带宽占用和查询性能。17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。附图说明18.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。19.图1是本公开实施例的应用场景的示意图。20.图2是本公开实施例的分布式数据库的数据处理方法的流程图。21.图3是本公开实施例的数据存储结构的示意图。22.图4是本公开另一实施例的分布式数据库的数据处理方法的流程图。23.图5是本公开实施例的分布式数据库的数据处理装置的框图。24.图6是本公开另一实施例的分布式数据库的数据处理装置的框图。25.图7是本公开实施例的计算机设备的结构示意图。具体实施方式26.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。27.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。28.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。29.为了使本
技术领域
:的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。30.下面参照图1对本公开实施例的应用场景进行示例性说明。分布式数据库100可以部署在多个数据库节点上,图中以数据库节点包括节点1、节点2和节点3为例进行说明。可以理解,在实际应用中,节点数量不限于此。出于容灾等因素的考量,多个数据库节点可以包括相同的目标表副本。在将源表中的数据写入目标表副本时,需要分别将源表中的数据同步到各个数据库节点上的目标表副本,从而保证各个数据库节点上的目标表副本的数据一致性。在一些实施例中,所述多个数据库节点可以包括主节点和至少一个备用节点。以主节点是节点2为例,可以将源表中的数据写入节点2的目标表副本,再由节点2将目标表副本同步给节点1和节点3。31.在相关技术中,一般是在读取源表数据后,通过数据操纵语言(datamanipulationlanguage,dml)将源表数据写入目标表。目标表副本间的数据同步依赖事务日志的同步,由于这种方式需要重走事务逻辑,因此,事务日志中需要额外记录事务信息,例如前项、版本号等,且同步过程的数据传输量为各个目标表副本的事务日志的数据总量,因此,同步过程中传输的数据量比较大。32.此外,写入各个目标表副本的数据常常需要被查询,因此,需要保证一定的查询性能。然而,相关技术中难以兼顾目标表副本同步过程中的带宽占用和查询性能。33.基于此,本公开实施例提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;参见图2,所述方法包括:34.步骤202:在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;35.步骤204:将所述压缩块写入所述主节点的第一重做日志;36.步骤206:将所述主节点的第一重做日志同步到各个备用节点;37.其中,数据库节点的第一重做日志用于生成该数据库节点的majorsstable;数据库节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。其中,内存表是lsmtree中的内存数据结构,minorsstable是lsmtree中持久化在磁盘中的数据结构,包括多个宏块,数据量较小。minorsstable可能有多个。majorsstable是lsmtree中持久化在磁盘中的数据结构,位于lsmtree的最底层,数据量较大。majorsstable一般只有一个。38.本公开实施例一方面通过对写入主节点的目标表副本的存量数据进行压缩处理后写入主节点的第一重做日志,然后再将主节点的第一重做日志同步到各个备用节点,因此,能够有效减少同步过程中传输的数据量,从而减少目标表副本的数据同步过程中的带宽消耗;另一方面,由于压缩的数据仅用于生成数据存储结构中的最下层数据(即majorsstable的数据),而数据查询过程是按照数据库节点的数据存储结构自上而下的顺序进行的,因此,在查询过程中,会先在未被压缩的内存表和minorsstable中进行查询,只有在内存表和minorsstable中均未查询到相关数据时,才需要从majorsstable中查询数据,因此,即便majorsstable中的数据经过了压缩处理,对数据查询过程的影响也比较小。综上所述,本公开实施例的方案能够兼顾目标表副本同步过程中的带宽占用和查询性能。39.应当说明的是,在相关技术中,一些数据库(例如,oracle)采用单层数据存储结构。在这种数据库中,并不适合采用数据压缩方案,这是因为在单层数据存储结构中,每次进行数据查询时都需要进行一次解压缩处理,这会导致数据查询性能急剧下降。因此,即便通过压缩处理能够减少带宽占用,但是,也无法实现兼顾带宽占用与数据查询性能。而本公开实施例的数据库采用三层数据结构,则能够减少压缩处理对数据查询过程的影响,从而实现兼顾目标表副本同步过程中的带宽占用和查询性能的效果。40.此外,本公开实施例中的majorsstable持久化在磁盘中,因此,在通过上述方式进行数据同步时,可以直接将源表中的存量数据写入各个数据库节点的磁盘,而无需先写入内存,再从内存写入磁盘。这种方式称为旁路方式。通过旁路方式实现数据同步无需重走事务逻辑,从而重做日志中不需要记录前项、版本号等事务信息,减少了重做日志中的数据量,从而进一步减少了目标表副本同步过程中的带宽占用。41.此外,压缩块通过重做日志同步,可以复用已有的重做日志的传输能力,提高开发效率。42.本公开实施例的方法中的各个步骤可以由主节点执行,也可以由主节点以外的控制节点执行。下面结合附图对本公开实施例的具体细节进行展开说明。43.在步骤202中,源表可以存储在分布式数据库的任意一个数据库节点上,该数据库节点可以是用于存储任意一个目标表副本的数据库节点,也可以是用于存储各个目标表副本的数据库节点以外的数据库节点。源表可以是任意的数据库表,例如,订单表,该订单表可以用于记录用户通过网络平台进行购物的时间、订单号、订单金额等信息。目标表副本可以是源表对应的索引表,或者是与源表类型相同的数据库表,例如,在源表为订单表的情况下,目标表副本也是订单表。在目标表副本为源表对应的索引表时,可以在为源表创建索引表的情况下,将源表中的存量数据写入目标表副本;在目标表副本为与源表类型相同的数据库表时,可以在更改源表中的主键的情况下,将源表中的存量数据写入目标表副本。除此之外,还可以在其他情况下将源表中的存量数据写入目标表副本,此处不再一一列举。将源表中的存量数据写入目标表副本的过程可以通过ddl实现。源表中的存量数据可以逐行写入主节点的目标表副本,即,按照源表中存量数据所在行的顺序,依次将各行存量数据从源表写入主节点的目标表副本。44.其中,源表中的存量数据可以是源表中的历史数据。仍以源表是订单表为例,存量数据可以是源表中的历史订单数据,上述历史数据是在开始向主节点的目标表副本执行写操作之前被记录到源表中的数据。与存量数据相对应的是增量数据。在开始向主节点的目标表副本执行写操作之后,源表中可能会产生新的数据,这些新的数据称为增量数据。45.源表中的存量数据可以按行写入主节点的目标表副本。在满足一定条件的情况下,可以对写入主节点的目标表副本的存量数据进行压缩处理。所述条件可以是写入主节点的目标表副本的存量数据的数据量达到预设阈值(例如,16k)。在一些实施例中,可以将写入主节点的目标表副本的数据划分为微块,一个微块可以包括主节点的目标表副本中的一行或多行存量数据。在上述实施例中,每个微块的大小可以等于所述预设阈值(例如,16k),或者,当向主节点的目标表副本写入最后一行存量数据时,即便未达到16k的阈值,也构建一个微块。可以以微块为单位进行压缩处理,压缩处理的具体方式本公开不做限制。应当说明的是,一个微块的大小等于所述预设阈值并非严格意义上的数值完全相等,而是微块中包括的各行存量数据的总数据量小于16k,且在微块中再增加1行存量数据后将使该微块的总数据量大于16k,即,微块的大小为:当微块中包括的存量数据的行数达到使该微块中包括的各行存量数据的总数据量小于或等于16k的最大行数时对应的大小。46.进一步地,微块可以用于构建宏块,每个宏块可以包括一个或多个微块。进一步地,宏块可以用于构建majorsstable,majorsstable可以包括一个或多个宏块。每个目标表副本可以对应一个majorsstable。47.还可以对各个微块进行编码处理,并对编码后的每个微块进行压缩处理。所述编码处理可以是对微块中包括的各行存量数据按列进行编码。通过编码处理,能够减少数据io量,并能够利用编码方式对数据查询过程中涉及的一些计算进行加速,从而能够提高压缩后的存量数据的查询效率,从而减少压缩处理对数据查询性能的影响。48.在步骤204中,可以将步骤202得到的各个压缩块写入主节点的第一重做日志。在一些实施例中,在第一重做日志中的压缩块的数据量累计达到一个宏块对应的数据量,或者在已将主节点的目标表副本中的最后一个微块对应的压缩块写入主节点的第一重做日志的情况下,可以将第一重做日志中的压缩块构建为一个宏块。每个宏块中可以包括该宏块的各个压缩块的描述信息,用于从该宏块中解析出各个压缩块。其中,压缩块的描述信息可以包括但不限于以下至少部分信息:一个宏块中压缩块的数量,每个压缩块的长度,每个压缩块的存储地址的偏移量等。49.可以按照上述方式构建一个或多个宏块,每构建一个宏块,可以将该宏块的描述信息写入第一重做日志。一个宏块的描述信息可以包括该宏块的存储地址的偏移量。50.在步骤206中,可以通过网络将主节点的第一重做日志同步到各个备用节点,同步过程可采用paxos等协议。具体来说,每向主节点的第一重做日志写入一笔数据,可以将主节点的第一重做日志向各个备用节点进行一次同步。同步到一个备用节点的第一重做日志中的压缩块的数据量每达到预设阈值(例如,2m),可以将该备用节点的第一重做日志中的压缩块写入该备用节点的majorsstable。在将写入主节点的目标表副本的数据划分为微块的实施例中,同步到一个备用节点的第一重做日志中的压缩块的数据量每达到一个宏块对应的数据量,可以将该备用节点的第一重做日志中的压缩块构建为一个宏块。当最后一个压缩块写入主节点的第一重做日志之后,即便第一重做日志中的压缩块的数据量未达到一个宏块对应的数据量,也将该备用节点的第一重做日志中的压缩块构建为一个宏块。51.各个备用节点可以回放同步到本节点的第一重做日志,以获得同步到本节点的第一重做日志中的全部宏块,并将获得的各个宏块写入本节点的majorsstable,从而完成数据同步过程。具体来说,备用节点可以从同步到本节点的第一重做日志中获取各个宏块的描述信息,基于每个宏块的描述信息从同步到本节点的第一重做日志中解析出对应的宏块,并写入本节点的majorsstable。当同步到本节点的第一重做日志中所有的宏块都写入本节点的majorsstable,本节点的数据便完成了同步。52.在上述实施例中,每个数据库节点的数据存储结构可以基于lsmtree实现,具体来说,参见图3,一个数据库节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable三层数据结构。其中,数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。53.例如,在从一个数据库节点的目标表副本中查询目标数据时,可以先从该数据库节点的内存表中查询目标数据。如果从内存表中未查询到目标数据,再从该数据库节点的minorsstable中查询目标数据。如果从该数据库节点的内存表和minorsstable中均未查询到目标数据,再对该数据库节点的majorsstable中的存量数据进行解压处理,并从解压处理后的存量数据中查询目标数据。54.通过上述方式,在大多数情况下,在内存表和minorsstable中即可查询到目标数据,从而无需对majorsstable进行解压处理。只有在内存表和minorsstable中均未查询到目标数据时,才需要对majorsstable进行解压处理。这样,能够减少压缩处理对数据查询过程的影响。55.如上所述,源表中除了存量数据以外,还可以包括增量数据。其中,源表中的增量数据可以写入各个数据库节点的内存表和minorsstable,而无需写入各个数据库节点的majorsstable。这样,一方面,数据写入过程中无需对majorsstable进行解压处理,从而减小了数据压缩对数据写入过程的影响;另一方面,由于增量数据被写入到内存表和minorsstable,且数据查询过程是按照数据存储结构自上而下的顺序进行的,因此,在内存表和minorsstable中就可以查询到增量数据,而无需对majorsstable进行解压后查询,从而减少了压缩处理对增量数据查询过程的影响。56.在一些实施例中,在将源表中的增量数据写入所述主节点的目标表副本的过程中,可以将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志,并将所述主节点的第二重做日志同步到各个备用节点,以便通过数据库节点的第二重做日志生成该数据库节点的内存表和minorsstable。57.其中,第二重做日志与第一重做日志可以是同一个重做日志,即,压缩数据块与增量数据分别写入同一个重做日志中的不同数据记录中。或者,第二重做日志与第一重做日志也可以是不同的重做日志,即,压缩数据块与增量数据分别写入不同的重做日志。58.在本实施例中,源表中每产生一条增量数据,可以实时地将该增量数据写入主节点的目标表副本,将源表中的增量数据写入主节点的目标表副本的过程可以通过dml实现。同时,将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志。主节点可以基于主节点的第二重做日志生成主节点的内存表和minorsstable。其中,主节点的minorsstable可以由主节点的内存表转储得到。59.在将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志之后,主节点还可以通过网络将主节点的第二重做日志同步给各个备用节点。每个备用节点可以基于本节点同步到的第二重做日志生成本节点的内存表和minorsstable。其中,备用节点的minorsstable可以由该备用节点的内存表转储得到。60.参见图4,本公开实施例还提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法应用于所述至少一个备用节点中的任意一个备用节点;所述方法包括:61.步骤402:在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;62.步骤404:将解析得到的各个压缩块写入所述备用节点的majorsstable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。63.本公开实施例的方法可以由所述至少一个备用节点中的任意一个备用节点执行。该方法的具体实现细节详见前述由主节点或控制节点执行的方法的实施例,此处不再赘述。64.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。65.参见图5,本公开实施例还提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述装置包括:66.压缩模块502,用于在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;67.第一写入模块504,用于将所述压缩块写入所述主节点的第一重做日志;68.同步模块506,用于将所述主节点的第一重做日志同步到各个备用节点;69.其中,数据库节点的第一重做日志用于生成该数据库节点的majorsstable;数据库节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被读出。70.参见图6,本公开实施例还提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法应用于所述至少一个备用节点中的任意一个备用节点;所述装置包括:71.解析模块602,用于在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;72.第二写入模块604,用于将解析得到的各个压缩块写入所述备用节点的majorsstable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minorsstable和majorsstable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。73.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。74.本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述任一实施例所述的方法。75.图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器702、存储器704、输入/输出接口706、通信接口708和总线710。其中处理器702、存储器704、输入/输出接口706和通信接口708通过总线710实现彼此之间在设备内部的通信连接。76.处理器702可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、服务专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。处理器702还可以包括显卡,所述显卡可以是nvidiatitanx显卡或者1080ti显卡等。77.存储器704可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器704可以存储操作系统和其他服务程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器704中,并由处理器702来调用执行。78.输入/输出接口706用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。79.通信接口708用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。80.总线710包括一通路,在设备的各个组件(例如处理器702、存储器704、输入/输出接口706和通信接口708)之间传输信息。81.需要说明的是,尽管上述设备仅示出了处理器702、存储器704、输入/输出接口706、通信接口708以及总线710,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。82.本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。83.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。84.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。85.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、图像采集装置电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。86.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。87.以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1