CN113918531A - 分布式表格系统的数据同步方法、装置以及服务端设备 - Google Patents

分布式表格系统的数据同步方法、装置以及服务端设备 Download PDF

Info

Publication number
CN113918531A
CN113918531A CN202010654403.3A CN202010654403A CN113918531A CN 113918531 A CN113918531 A CN 113918531A CN 202010654403 A CN202010654403 A CN 202010654403A CN 113918531 A CN113918531 A CN 113918531A
Authority
CN
China
Prior art keywords
log
synchronization
storage server
synchronized
copy
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
Application number
CN202010654403.3A
Other languages
English (en)
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010654403.3A priority Critical patent/CN113918531A/zh
Publication of CN113918531A publication Critical patent/CN113918531A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请提供了一种分布式表格系统的数据同步方法、装置以及服务端设备,涉及数据处理技术领域,提高了分布式表格中多副本之间的数据同步效率。该方法包括:接收主副本所在的存储服务器发送的日志同步请求,所述日志同步请求包括待同步日志以及所述主副本所在存储服务器中已应用的日志的第一最大编号;基于所述日志同步请求对所述待同步日志进行同步;向所述主副本所在存储服务器发送同步成功信息,以使所述主副本所在存储服务器根据所述同步成功信息应用日志,所述同步成功信息包括本地已同步的日志的第二最大编号。

Description

分布式表格系统的数据同步方法、装置以及服务端设备
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种分布式表格系统的数据同步方法、装置以及服务端设备。
背景技术
目前,在数据的储存过程中,为了保证数据安全,缓解坏盘和服务器宕机带来的问题,一般采用多副本来存储数据。多副本的分布式表格可以采用一份数据副本作为主副本,其它数据副本作为从副本的方式。
但是,在分布式表格中,多副本之间数据的同步程度难以控制,导致多副本之间的数据同步效率较低,容易使分布式数据库中切主状态系统的服务可用性受到影响。
发明内容
本发明的目的在于提供一种分布式表格系统的数据同步方法、装置以及服务端设备,以提高分布式表格中多副本之间的数据同步效率。
第一方面,本申请实施例提供了一种分布式表格系统的数据同步方法,所述分布式表格系统包括多个存储服务器,所述方法应用于所述存储服务器中,所述方法包括:
接收主副本所在的存储服务器发送的日志同步请求,所述日志同步请求包括待同步日志以及所述主副本所在存储服务器中已应用的日志的第一最大编号;
基于所述日志同步请求对所述待同步日志进行同步;
向所述主副本所在存储服务器发送同步成功信息,以使所述主副本所在存储服务器根据所述同步成功信息应用日志,所述同步成功信息包括本地已同步的日志的第二最大编号。
在一个可能的实现中,基于所述日志同步请求对所述待同步日志进行同步的步骤之后,还包括:
将本地日志中编号小于等于所述第一最大编号的日志进行应用,并确定本地已同步的日志的第二最大编号。
第二方面,提供了一种分布式表格系统的数据同步方法,所述分布式表格系统包括多个存储服务器,所述方法应用于所述存储服务器中,所述方法包括:
接收客户端发送的写入请求;
根据所述写入请求生成主副本日志,基于所述主副本日志确定待同步日志;
向所述分布式表格系统中从副本所在存储服务器发送日志同步请求,所述日志同步请求包括所述待同步日志以及本地已应用的日志的第一最大编号,以使所述从副本所在存储服务器对所述待同步日志进行同步;
接收所述从副本所在存储服务器发送的同步成功信息,所述同步成功信息包括所述从副本所在存储服务器中已同步的日志的第二最大编号;
根据所述同步成功信息应用日志。
在一个可能的实现中,向所述分布式表格系统中从副本所在存储服务器发送日志同步请求的步骤,包括:
将所述待同步日志按照预设数量分批次地发送到所述分布式表格系统中从副本所在存储服务器中。
在一个可能的实现中,将所述待同步日志按照预设数量分批次地发送到所述分布式表格系统中从副本所在存储服务器中的步骤,包括:
按照所述待同步日志的编号从小到大的顺序,将所述待同步日志按照预设数量分批次地发送到所述从副本所在存储服务器中。
在一个可能的实现中,根据所述同步成功信息应用日志的步骤,包括:
根据所述同步成功信息,对本地日志中编号大于所述第一最大编号且小于等于所述第二最大编号的日志进行应用。
在一个可能的实现中,发送所述同步成功信息的从副本所在存储服务器的数量为多个;在所有的从副本所在存储服务器中,将满足预设条件的存储服务器中已同步的日志的第二最大编号确定为目标最大编号;
接收所述从副本所在存储服务器发送的同步成功信息的步骤之后,还包括:
确定编号小于等于所述目标最大编号对应的日志同步成功,以对本地日志中编号大于所述第一最大编号且小于等于所述目标最大编号的日志进行应用。
在一个可能的实现中,所述确定编号小于等于所述目标最大编号对应的日志同步成功,以对本地日志中编号大于所述第一最大编号且小于等于所述目标最大编号的日志进行应用的步骤之后,还包括:
将所述第一最大编号的值更新为所述目标最大编号的值,向所述客户端返回写入成功响应。
第三方面,提供了一种分布式表格系统的数据同步装置,所述分布式表格系统包括多个存储服务器,所述装置应用于所述存储服务器中,包括:
接收模块,用于接收主副本所在的存储服务器发送的日志同步请求,所述日志同步请求包括待同步日志以及所述主副本所在存储服务器中已应用的日志的第一最大编号;
同步模块,用于基于所述日志同步请求对所述待同步日志进行同步;
发送模块,用于向所述主副本所在存储服务器发送同步成功信息,以使所述主副本所在存储服务器根据所述同步成功信息应用日志,所述同步成功信息包括本地已同步的日志的第二最大编号。
第四方面,提供了一种分布式表格系统的数据同步装置,所述分布式表格系统包括多个存储服务器,所述装置应用于所述存储服务器中,包括:
第一接收模块,用于接收客户端发送的写入请求;
生成模块,用于根据所述写入请求生成主副本日志,基于所述主副本日志确定待同步日志;
第一发送模块,用于向所述分布式表格系统中从副本所在存储服务器发送日志同步请求,所述日志同步请求包括所述待同步日志以及本地已应用的日志的第一最大编号,以使所述从副本所在存储服务器对所述待同步日志进行同步;
第二接收模块,用于接收所述从副本所在存储服务器发送的同步成功信息,所述同步成功信息包括所述从副本所在存储服务器中已同步的日志的第二最大编号;
应用模块,用于根据所述同步成功信息应用日志。
第五方面,本申请实施例又提供了一种服务端设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面或第二方面所述方法。
第六方面,本申请实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面或第二方面所述方法。
本申请实施例带来了以下有益效果:
本申请实施例提供的一种分布式表格系统的数据同步方法、装置以及服务端设备,能够接收分布式表格中主副本所在存储服务器发送的包括了待同步日志以及主副本所在存储服务器中已应用的日志的第一最大编号的日志同步请求,然后对待同步日志进行同步,之后向主副本所在存储服务器发送包括了本地已同步的日志的第二最大编号的同步成功信息,以使主副本所在存储服务器根据该同步成功信息应用日志,本方案中,通过在主副本所在存储服务器和从副本所在存储服务器之间进行日志记录同步的同时,还利用主副本所在存储服务器中已应用日志的第一最大编号和从副本所在存储服务器中已同步日志的第二最大编号来实现主副本和从副本之间的日志更新和应用的同步,使主副本和从副本之间的数据实时同步程度增强,提高了分布式表格中多副本之间的数据同步效率,通过这种方式优化了应用日志的同步方式,使分布式表格中切主状态系统的服务可用性不受影响。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式表格系统的数据同步方法的流程示意图;
图2为本申请实施例提供的另一种分布式表格系统的数据同步方法的流程示意图;
图3为本申请实施例提供的一种分布式表格系统的数据同步装置的结构示意图;
图4为本申请实施例提供的另一种分布式表格系统的数据同步装置的结构示意图;
图5为示出了本申请实施例所提供的一种服务端设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,在分布式表格系统中,为了保证数据安全,容忍坏盘和服务器宕机,一般采用多副本来存储数据。多副本的分布式表格系统,可以采用一份数据副本作为主副本(leader),其它数据副本作为从副本(follower)。为了维持主副本和从副本之间的数据一致性,可以采用raft一致性协议来进行数据同步。数据的写操作先写主副本的日志,主副本所在存储服务器将日志同步至从副本所在存储服务器,待分布式表格系统中的大多数副本写入日志成功后,主副本所在存储服务器将日志应用至主副本所在存储服务器的数据引擎,再向客户端返回写入成功。
在各种不同类型的基于raft的分布式表格系统中,对于主副本所在存储服务器向从副本所在存储服务器同步日志的过程,以及从副本所在存储服务器在同步日志以后将日志应用到数据引擎的过程中,目前可以采用以下的方案。
方案一:无论主副本所在存储服务器如何向从副本所在存储服务器同步日志,从副本所在存储服务器在同步日志成功以后总是立刻向主副本所在存储服务器返回成功,日志的应用由后台线程处理。
方案二:主副本所在存储服务器每次向从副本所在存储服务器最多同步一条日志,从副本所在存储服务器在同步日志成功以后,开始应用日志,将可以应用的日志应用到数据引擎,然后向主副本所在存储服务器返回同步日志成功。
方案三:主副本所在存储服务器每次向从副本所在存储服务器同步尽可能多的日志,从副本所在存储服务器在同步日志成功以后,开始应用日志,将可以应用的日志应用到数据引擎,然后向主副本所在存储服务器返回同步日志成功。
但是,上述方案都存在各自的缺陷之处。
方案一:在切主时,一个从副本成为新的主副本,新主副本产生后,开始接受写入请求,每次写入请求向自己的日志写入一条记录,然后同步给从副本所在存储服务器,确认多数副本拥有此条日志记录后,开始应用日志,然后返回给客户端。主副本所在存储服务器每次应用日志需要将之前所有未应用的日志都应用到数据引擎。然而之前从副本所在存储服务器的日志应用总是由后台线程完成,可能存在有的从副本所在存储服务器堆积了很多未应用的日志,此时该从副本切为主,需要立即应用大量的堆积日志,花费时间太多,造成此时的写入请求因长时间得不到响应而失败,影响服务的可用性。
方案二:即使能够避免切主时造成服务可用性降低,当写入的每秒数据量非常大时,每次向从副本所在存储服务器同步最多一条日志,造成网络、CPU资源的浪费,使该主副本所在存储服务器响应写入请求变慢,系统写入延时增高。
方案三:当写入的每秒数据量非常大时,主副本所在存储服务器可能一次同步过多的日志给从副本所在存储服务器。造成两点影响:1、因为该主副本所在存储服务器一次同步过多数据,同步线程耗时太长,影响其他主副本所在存储服务器的同步效率,造成其他主副本所在存储服务器上的写入请求延时增高(该主副本所在存储服务器和其它主副本所在存储服务器的同步任务可能共用一个同步线程);2、下一次该主副本所在存储服务器同步日志给从副本所在存储服务器时,从副本所在存储服务器同步日志成功,开启应用日志,将上一次同步的日志应用到数据引擎,造成一下子应用的日志太多,影响主副本所在存储服务器下一次同步日志效率,造成写延时增高甚至写入超时而失败。
再者,在分布式表格中,多副本之间数据的同步程度难以控制,导致多副本之间的数据同步效率较低,容易使分布式表格中切主状态系统的服务可用性受到影响。
基于此,本申请实施例提供了一种分布式表格系统的数据同步方法、装置以及服务端设备,通过该方法可以提高分布式表格中多副本之间的数据同步效率。
下面结合附图对本发明实施例进行进一步地介绍。
图1为本申请实施例提供的一种分布式表格系统的数据同步方法的流程示意图。其中,分布式表格系统包括多个存储服务器,该方法应用于存储服务器中。如图1所示,该方法包括:
步骤S110,接收分布式表格中主副本所在存储服务器发送的日志同步请求。
其中,日志同步请求包括待同步日志以及主副本所在存储服务器中已应用的日志的第一最大编号。该编号也可以为标签的形式,如applied_index,该标签用于表示日志在主副本所在存储服务器中按照时间从旧到新的生成顺序,则第一最大编号表示的是在主副本所在存储服务器中已应用的最新日志。
本步骤中,分布式表格系统中的从副本所在存储服务器可以接收主副本所在存储服务器发送的待同步日志和主副本所在存储服务器中已应用的日志的第一最大编号。例如,主副本所在存储服务器一共有600条日志,其对应的编号分别为1至600,待同步日志是编号为301至450(301-450)的日志,主副本所在存储服务器中已应用的日志的第一最大编号为300。
当然,上述第一最大编号也可以为50、100、150或200等小于301(待同步日志的最小编号)的任意编号。由于未完成同步的日志无法应用,主副本所在存储服务器中已应用日志的第一最大编号(如50、100、150、200或300等)小于当前待同步日志的编号(上述301至450)。对于已应用日志的第一最大编号的具体值,在此不做限定。
对于上述待同步日志的编号,在此也不做具体限定。不过需要说明的是,待同步日志的编号(如上述301至450)小于主副本所在存储服务器中所有日志的总数量(如上述600条日志),在最后一批的待同步日志(如最后一批待同步日志编号为451至600)完成同步后,便达到了主副本所在存储服务器中的所有日志(上述600条日志)都完成同步。
步骤S120,基于日志同步请求对待同步日志进行同步。
需要说明的是,从副本所在存储服务器接收到日志同步请求后,根据该日志同步请求进行本地日志的同步更新,即将待同步日志(如上述编号为301-450的日志)记录写入从副本所在存储服务器的本地日志文件,使从副本所在存储服务器的日志与主副本所在存储服务器的日志保持一致(如同步至编号为301-450的日志)。
在从副本所在存储服务器同步更新后,从副本所在存储服务器便可以确定本地已同步的日志的第二最大编号,如确定已将编号小于或等于第一最大编号300的日志以及编号301至编号450之间的日志全部完成同步更新后,从副本所在存储服务器中便可以确定已同步的日志的第二最大编号为450。
步骤S130,向主副本所在存储服务器发送同步成功信息,以使主副本所在存储服务器根据同步成功信息应用日志。
其中,同步成功信息包括本地已同步的日志的第二最大编号。示例性的,从副本所在存储服务器向主副本所在存储服务器返回同步成功信息,并携带该从副本所在存储服务器已同步的日志的第二最大编号(450),如最新日志的条数标签max_index。
本申请实施例中的分布式表格系统的数据同步方法可以作为一种分布式表格系统的数据同步与应用优化方法,通过在主副本所在存储服务器和从副本所在存储服务器之间进行日志记录同步的同时,还利用主副本所在存储服务器中已应用日志的第一最大编号和从副本所在存储服务器中已同步日志的第二最大编号来实现主副本和从副本之间的日志更新和应用的同步,使主副本和从副本之间的数据实时同步程度增强,提高了分布式表格中多副本之间的数据同步效率,通过这种方式优化了应用日志的同步方式,使分布式表格中切主状态系统的服务可用性不受影响。
下面对上述步骤进行详细介绍。
在一些实施例中,上述步骤S120之后,还可以包括步骤:将本地日志中编号小于等于第一最大编号的日志进行应用,并确定本地已同步的日志的第二最大编号。
示例性的,从副本所在存储服务器还可以将日志编号小于或等于第一最大编号(如上述300)的日志(如编号为1-299的日志)应用到从副本所在存储服务器的本地数据引擎中,即从副本所在存储服务器将之前未应用的日志应用到从副本所在存储服务器的数据引擎,进而使已应用至主副本所在存储服务器数据引擎的日志也应用至从副本所在存储服务器数据引擎中。
在一些实施例中,主副本可以是通过raft选举而确定出。作为一个示例,主副本是基于分布式表格中的多个副本通过raft算法确定的副本。在实际应用中,分布式表格中包括多个副本,每个副本用于对外提供服务,在实际应用中,可以通过raft算法在这些副本中选举出主副本,其他副本则为从副本。
需要说明的是,raft提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。raft通过当选的主副本达成共识。主副本负责将日志复制到从副本,raft通过领导方法实现共识。该集群只有一个当选的主副本,负责管理集群其他服务器上的日志复制。通过raft算法在分布式表格中的多个副本中选举出主副本,从而快速有效的确定出分布式表格中的主副本和从副本,以有效的进行日志的写入过程。
图2为本申请实施例提供的一种分布式表格系统的数据同步方法的流程示意图。其中,分布式表格系统包括多个存储服务器,该方法应用于存储服务器中。如图2所示,该方法包括:
步骤S210,接收客户端发送的写入请求。
在实际应用中,分布式表格中的主副本所在存储服务器可以接收客户端发送的写入请求。
步骤S220,根据写入请求生成主副本日志,基于主副本日志确定待同步日志。
示例性的,主副本所在存储服务器可以根据接收到的写入请求生成一条日志记录,将其写入到主副本所在存储服务器本地的日志中,然后开启同步日志任务,后台线程负责同步日志至从副本所在存储服务器。
步骤S230,向分布式表格系统中从副本所在存储服务器发送日志同步请求,以使从副本所在存储服务器对待同步日志进行同步。
其中,日志同步请求包括待同步日志以及本地已应用的日志的第一最大编号,可以使从副本所在存储服务器将编号小于等于第一最大编号的日志进行应用。
例如,主副本所在存储服务器可以将待同步日志(如上述实施例中编号为301-450的日志),同时携带本地已应用至主副本所在存储服务器数据引擎的日志的第一最大编号applied_index(如上述实施例中的编号300)发送至从副本所在存储服务器。其中,日志按照编号从小到大(也即从旧到新)的顺序应用。
步骤S240,接收从副本所在存储服务器发送的同步成功信息。
其中,同步成功信息包括从副本所在存储服务器中已同步的日志的第二最大编号。主副本所在存储服务器在接收到从副本所在存储服务器的同步成功信息的同时,可以获取到从副本所在存储服务器中已同步的日志的最大编号。
步骤S250,根据同步成功信息应用日志。
主副本所在存储服务器通过根据同步成功信息对本地日志进行应用,能够达到主副本所在存储服务器和从副本所在存储服务器之间日志应用的一致性。
通过在主副本所在存储服务器和从副本所在存储服务器之间进行日志记录同步的同时,还利用主副本所在存储服务器中已应用日志的第一最大编号和从副本所在存储服务器已同步日志的第二最大编号来实现主副本所在存储服务器和从副本所在存储服务器之间的日志更新和应用的同步,使主副本和从副本之间的数据实时同步程度增强,通过这种方式优化了应用日志的同步方式,使分布式表格系统中切主状态系统的服务可用性不受影响。
在一些实施例中,主副本所在存储服务器可以按照预设的日志数量向从副本所在存储服务器发送待同步日志。作为一个示例,上述步骤S230可以包括如下步骤:
步骤a),将待同步日志按照预设数量分批次地发送到分布式表格系统中从副本所在存储服务器中。
对于数量较多的待同步日志的发送过程,可以按照一定的顺序发送。作为一个示例,上述步骤a)可以包括步骤:按照待同步日志的编号从小到大的顺序,将待同步日志按照预设数量分批次地发送到从副本所在存储服务器中。
示例性的,后台线程开始同步日志的过程中,可以将未同步至从副本所在存储服务器的日志按照从旧到新的顺序同步至从副本所在存储服务器,最多向从副本所在存储服务器发送150条日志记录,同时携带主副本所在存储服务器已应用到数据引擎的最大日志记录applied_index,该日志记录按照编号从小到大(也即使从旧到新)顺序应用。预设数量可以根据实际应用和线程的使用情况进行调整,在此不做限定。
通过在主副本所在存储服务器向从副本所在存储服务器同步日志的过程中按照设置的一次最多的同步日志条数(如150条)发送待同步日志,切主时从副本所在存储服务器最多有150条堆积日志需要应用,不会影响系统可用性。而且,通过批量同步日志的方式,使线上写入延时减小,能够降低写入延时,再通过控制批量写入日志的条目,使写入延时可控,不至于出现极端情况下写入延时过长。
在一些实施例中,上述步骤S250可以包括如下步骤:根据同步成功信息,对本地日志中编号大于第一最大编号且小于等于第二最大编号的日志进行应用。
主副本所在存储服务器通过对本地日志中编号大于第一最大编号且小于等于第二最大编号的日志进行应用,能够对日志的应用情况进行查漏补缺,以达到主副本所在存储服务器和从副本所在存储服务器之间日志应用的一致性。
在一些实施例中,发送同步成功信息的从副本所在存储服务器的数量为多个;在所有的从副本所在存储服务器中,将满足预设条件的存储服务器中已同步的日志的第二最大编号确定为目标最大编号;在上述步骤S240之后,该方法还包括如下步骤:
步骤b),确定编号小于等于目标最大编号对应的日志同步成功,以对本地日志中编号大于第一最大编号且小于等于目标最大编号的日志进行应用。
其中,将满足预设条件的发送同步成功信息的所有从副本所在存储服务器中,预设条件可以为选取满足第二预设数量的从副本所在存储服务器中已同步的日志的第二最大编号,并将该第二最大编号确定为目标最大编号。示例性的,主副本所在存储服务器接收到从副本所在存储服务器发送的(编号为301-450的日志)同步成功信息以及从副本所在存储服务器中已同步的日志的第二最大编号后,可以从所有从副本所在存储服务器发送的已同步最大编号中,确定满足第二预设数量的从副本所在存储服务器的日志已同步最大编号为committed_index(例如上述编号为450)的日志,例如,第二预设数量可以是超过80%的从副本所在存储服务器的日志已同步的最大编号;在实际应用中,主副本所在存储服务器在收到多个从副本所在存储服务器发送的同步成功信息时,可以根据大部分从副本所在存储服务器发送的已应用日志的最大编号max_index中,确定被大多数从副本所在存储服务器应用的最大日志index,即committed_index。主副本所在存储服务器再将范围为[applied_index,committed_index]的日志记录(如编号为301-450的日志)应用到主副本所在存储服务器数据引擎中。
通过从所有从副本所在存储服务器发送的已同步的最大编号中确定出被满足第二预设数量的从副本所在存储服务器同步的最大日志编号,能够更加快速且有效的确定出第二最大编号,提高日志应用的同步效率。
在一些实施例中,在上述步骤b)之后,该方法还可以包括以下步骤:
步骤c),将第一最大编号的值更新为目标最大编号的值,向客户端返回写入成功响应。
对于上述步骤c),示例性的,在主副本所在存储服务器将范围为[applied_index,committed_index]的日志记录应用到主副本数据引擎中之后,更新applied index等于committed_index;最后便可以向客户端返回写入成功的响应。
在一种可能的实施方式中,如果主副本所在存储服务器确定某个从副本所在存储服务器日志已同步至编号为450的日志,在之后再向该从副本所在存储服务器发送日志同步请求便只需从451开始发送,即编号为450之前的日志不再考虑该从副本所在存储服务器的同步过程。
通过针对从副本所在存储服务器应用至的最大日志编号之前的所有日志,主副本所在存储服务器可以对其检查是否已经应用,若无则在主副本所在存储服务器中执行应用,若已应用则不再执行应用,能够更加高效的使主副本所在存储服务器和从副本所在存储服务器之间日志的应用程度达到一致。
本申请实施例提供的分布式表格系统的数据同步方法,与上述实施例提供的分布式表格系统的数据同步方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
图3提供了一种分布式表格系统的数据同步装置的结构示意图。其中,分布式表格系统包括多个存储服务器,装置应用于存储服务器中。如图3所示,分布式表格系统的数据同步装置300包括:
接收模块301,用于接收主副本所在的存储服务器发送的日志同步请求,日志同步请求包括待同步日志以及主副本所在存储服务器中已应用的日志的第一最大编号;
同步模块302,用于基于日志同步请求对待同步日志进行同步;
发送模块303,用于向主副本所在存储服务器发送同步成功信息,以使主副本所在存储服务器根据同步成功信息应用日志,同步成功信息包括本地已同步的日志的第二最大编号。
在一些实施例中,该装置还包括:
应用模块,用于基于日志同步请求对待同步日志进行同步之后,将本地日志中编号小于等于第一最大编号的日志进行应用,并确定本地已同步的日志的第二最大编号。
本申请实施例提供的分布式表格系统的数据同步装置,与上述实施例提供的分布式表格系统的数据同步方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
图4提供了一种分布式表格系统的数据同步装置的结构示意图。其中,分布式表格系统包括多个存储服务器,装置应用于存储服务器中。如图4所示,分布式表格系统的数据同步装置400包括:
第一接收模块401,用于接收客户端发送的写入请求;
生成模块402,用于根据写入请求生成主副本日志,基于主副本日志确定待同步日志;
第一发送模块403,用于向分布式表格系统中从副本所在存储服务器发送日志同步请求,日志同步请求包括待同步日志以及本地已应用的日志的第一最大编号,以使从副本所在存储服务器对待同步日志进行同步;
第二接收模块404,用于接收从副本所在存储服务器发送的同步成功信息,同步成功信息包括从副本所在存储服务器中已同步的日志的第二最大编号;
应用模块405,用于根据同步成功信息应用日志。
在一些实施例中,第一发送模块403具体用于:
将待同步日志按照预设数量分批次地发送到分布式表格系统中从副本所在存储服务器中。
在一些实施例中,第一发送模块403还用于:
按照待同步日志的编号从小到大的顺序,将待同步日志按照预设数量分批次地发送到从副本所在存储服务器中。
在一些实施例中,应用模块405具体用于:
根据同步成功信息,对本地日志中编号大于第一最大编号且小于等于第二最大编号的日志进行应用。
在一些实施例中,发送同步成功信息的从副本所在存储服务器的数量为多个;在所有的从副本所在存储服务器中,将满足预设条件的存储服务器中已同步的日志的第二最大编号确定为目标最大编号;该装置还包括:
确定模块,用于在接收所述从副本所在存储服务器发送的同步成功信息之后,确定编号小于等于目标最大编号对应的日志同步成功,以对本地日志中编号大于第一最大编号且小于等于目标最大编号的日志进行应用。
在一些实施例中,该装置还包括:
返回模块,用于在确定编号小于等于所述目标最大编号对应的日志同步成功,以对本地日志中编号大于所述第一最大编号且小于等于所述目标最大编号的日志进行应用之后,将第一最大编号的值更新为目标最大编号的值,向客户端返回写入成功响应。
本申请实施例提供的分布式表格系统的数据同步装置,与上述实施例提供的分布式表格系统的数据同步方法及装置具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例提供的一种服务端设备,如图5所示,服务端设备500包括存储器501、处理器502,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的方法的步骤。
参见图5,服务端设备还包括:总线503和通信接口504,处理器502、通信接口504和存储器501通过总线503连接;处理器502用于执行存储器501中存储的可执行模块,例如计算机程序。
其中,存储器501可能包含高速随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口504(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线503可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器501用于存储程序,所述处理器502在接收到执行指令后,执行所述程序,前述本申请任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器502中,或者由处理器502实现。
处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器501,处理器502读取存储器501中的信息,结合其硬件完成上述方法的步骤。
对应于上述分布式表格系统的数据同步方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述分布式表格系统的数据同步方法的步骤。
本申请实施例所提供的分布式表格系统的数据同步装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述分布式表格系统的数据同步方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种分布式表格系统的数据同步方法,所述分布式表格系统包括多个存储服务器,其特征在于,所述方法应用于所述存储服务器中,包括:
接收主副本所在的存储服务器发送的日志同步请求,所述日志同步请求包括待同步日志以及所述主副本所在存储服务器中已应用的日志的第一最大编号;
基于所述日志同步请求对所述待同步日志进行同步;
向所述主副本所在存储服务器发送同步成功信息,以使所述主副本所在存储服务器根据所述同步成功信息应用日志,所述同步成功信息包括本地已同步的日志的第二最大编号。
2.根据权利要求1所述的方法,其特征在于,基于所述日志同步请求对所述待同步日志进行同步的步骤之后,还包括:
将本地日志中编号小于等于所述第一最大编号的日志进行应用,并确定本地已同步的日志的第二最大编号。
3.一种分布式表格系统的数据同步方法,所述分布式表格系统包括多个存储服务器,其特征在于,所述方法应用于所述存储服务器中,包括:
接收客户端发送的写入请求;
根据所述写入请求生成主副本日志,基于所述主副本日志确定待同步日志;
向所述分布式表格系统中从副本所在存储服务器发送日志同步请求,所述日志同步请求包括所述待同步日志以及本地已应用的日志的第一最大编号,以使所述从副本所在存储服务器对所述待同步日志进行同步;
接收所述从副本所在存储服务器发送的同步成功信息,所述同步成功信息包括所述从副本所在存储服务器中已同步的日志的第二最大编号;
根据所述同步成功信息应用日志。
4.根据权利要求3所述的方法,其特征在于,向所述分布式表格系统中从副本所在存储服务器发送日志同步请求的步骤,包括:
将所述待同步日志按照预设数量分批次地发送到所述分布式表格系统中从副本所在存储服务器中。
5.根据权利要求4所述的方法,其特征在于,将所述待同步日志按照预设数量分批次地发送到所述分布式表格系统中从副本所在存储服务器中的步骤,包括:
按照所述待同步日志的编号从小到大的顺序,将所述待同步日志按照预设数量分批次地发送到所述从副本所在存储服务器中。
6.根据权利要求3所述的方法,其特征在于,根据所述同步成功信息应用日志的步骤,包括:
根据所述同步成功信息,对本地日志中编号大于所述第一最大编号且小于等于所述第二最大编号的日志进行应用。
7.根据权利要求6所述的方法,其特征在于,发送所述同步成功信息的从副本所在存储服务器的数量为多个;在所有的从副本所在存储服务器中,将满足预设条件的存储服务器中已同步的日志的第二最大编号确定为目标最大编号;
接收所述从副本所在存储服务器发送的同步成功信息的步骤之后,还包括:
确定编号小于等于所述目标最大编号对应的日志同步成功,以对本地日志中编号大于所述第一最大编号且小于等于所述目标最大编号的日志进行应用。
8.根据权利要求7所述的方法,其特征在于,所述确定编号小于等于所述目标最大编号对应的日志同步成功,以对本地日志中编号大于所述第一最大编号且小于等于所述目标最大编号的日志进行应用的步骤之后,还包括:
将所述第一最大编号的值更新为所述目标最大编号的值,向所述客户端返回写入成功响应。
9.一种分布式表格系统的数据同步装置,所述分布式表格系统包括多个存储服务器,其特征在于,所述装置应用于所述存储服务器中,包括:
接收模块,用于接收主副本所在的存储服务器发送的日志同步请求,所述日志同步请求包括待同步日志以及所述主副本所在存储服务器中已应用的日志的第一最大编号;
同步模块,用于基于所述日志同步请求对所述待同步日志进行同步;
发送模块,用于向所述主副本所在存储服务器发送同步成功信息,以使所述主副本所在存储服务器根据所述同步成功信息应用日志,所述同步成功信息包括本地已同步的日志的第二最大编号。
10.一种分布式表格系统的数据同步装置,所述分布式表格系统包括多个存储服务器,其特征在于,所述装置应用于所述存储服务器中,包括:
第一接收模块,用于接收客户端发送的写入请求;
生成模块,用于根据所述写入请求生成主副本日志,基于所述主副本日志确定待同步日志;
第一发送模块,用于向所述分布式表格系统中从副本所在存储服务器发送日志同步请求,所述日志同步请求包括所述待同步日志以及本地已应用的日志的第一最大编号,以使所述从副本所在存储服务器对所述待同步日志进行同步;
第二接收模块,用于接收所述从副本所在存储服务器发送的同步成功信息,所述同步成功信息包括所述从副本所在存储服务器中已同步的日志的第二最大编号;
应用模块,用于根据所述同步成功信息应用日志。
11.一种服务端设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至8任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至8任一项所述的方法。
CN202010654403.3A 2020-07-08 2020-07-08 分布式表格系统的数据同步方法、装置以及服务端设备 Pending CN113918531A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010654403.3A CN113918531A (zh) 2020-07-08 2020-07-08 分布式表格系统的数据同步方法、装置以及服务端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010654403.3A CN113918531A (zh) 2020-07-08 2020-07-08 分布式表格系统的数据同步方法、装置以及服务端设备

Publications (1)

Publication Number Publication Date
CN113918531A true CN113918531A (zh) 2022-01-11

Family

ID=79231843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010654403.3A Pending CN113918531A (zh) 2020-07-08 2020-07-08 分布式表格系统的数据同步方法、装置以及服务端设备

Country Status (1)

Country Link
CN (1) CN113918531A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134375A (zh) * 2022-07-01 2022-09-30 国网河北省电力有限公司保定供电分公司 一种分布式光伏系统的数据传输方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134375A (zh) * 2022-07-01 2022-09-30 国网河北省电力有限公司保定供电分公司 一种分布式光伏系统的数据传输方法

Similar Documents

Publication Publication Date Title
CN108121782B (zh) 查询请求的分配方法、数据库中间件系统以及电子设备
CN106899648B (zh) 一种数据处理方法和设备
US11385830B2 (en) Data storage method, apparatus and system, and server, control node and medium
US20180150501A1 (en) Database system, server device, computer program product, and information processing method
CN111274252B (zh) 一种区块链的数据上链方法、装置、存储介质和服务器
US20150213100A1 (en) Data synchronization method and system
CN107919977B (zh) 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
US20140074810A1 (en) Managing a search index
CN105426439A (zh) 一种元数据的处理方法和装置
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
CN105830033A (zh) 用于在分布式数据网格中支持持久存储装置版本化和完整性的系统和方法
CN113220236B (zh) 一种数据管理方法、系统及设备
CN111049928B (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
CN112148798A (zh) 应用于分布式系统的数据处理方法及装置
CN115599747B (zh) 一种分布式存储系统的元数据同步方法、系统及设备
CN113268472A (zh) 一种分布式数据存储系统及方法
CN110417882B (zh) 主节点的确定方法、装置和存储介质
CN112202834A (zh) 一种数据处理方法、数据处理装置及节点服务器
CN110740155A (zh) 分布式系统中的请求处理方法及装置
CN113918531A (zh) 分布式表格系统的数据同步方法、装置以及服务端设备
CN106855869B (zh) 一种实现数据库高可用的方法、装置和系统
CN106951443B (zh) 基于分布式系统的副本同步的方法、设备和系统
CN110825758B (zh) 一种交易处理的方法及装置
CN107547593B (zh) 一种实现日志同步的方法、装置及分布式系统
CN109992447B (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