CN111708780A - 分布式表格系统与分片选主方法、装置、服务器及介质 - Google Patents

分布式表格系统与分片选主方法、装置、服务器及介质 Download PDF

Info

Publication number
CN111708780A
CN111708780A CN202010555091.0A CN202010555091A CN111708780A CN 111708780 A CN111708780 A CN 111708780A CN 202010555091 A CN202010555091 A CN 202010555091A CN 111708780 A CN111708780 A CN 111708780A
Authority
CN
China
Prior art keywords
server
slave
master
message
target
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
CN202010555091.0A
Other languages
English (en)
Other versions
CN111708780B (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.)
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 CN202010555091.0A priority Critical patent/CN111708780B/zh
Publication of CN111708780A publication Critical patent/CN111708780A/zh
Application granted granted Critical
Publication of CN111708780B publication Critical patent/CN111708780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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

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)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种分布式表格系统与分片选主方法、装置、服务器及介质,涉及分布式存储技术领域,可以提高读写服务的可用性。本发明实施例的技术方案包括:当需要更改主服务器存储的副本角色时,主服务器从至少一个从服务器中确定具有最新日志的一个目标服务器,然后向目标服务器发送第一选主消息,并向至少一个从服务器中除目标服务器之外的其他从服务器发送第二选主消息,以使得目标服务器基于第一选主消息发起选主,并使得其他从服务器基于第二选主消息,在延时时长内检测到目标服务器选主未成功时,发起选主。

Description

分布式表格系统与分片选主方法、装置、服务器及介质
技术领域
本发明涉及分布式存储技术领域,特别是涉及分布式表格系统与分片选主方法、装置、服务器及介质。
背景技术
分布式表格系统中的表格数据通常进行水平切片,形成多个分片,分片对应的数据存在一定的冗余性,每个分片对应的数据会被存储为多个副本,多个副本中包括一个角色为领导者(leader)的副本和一个或多个角色为追随者(follower)的副本。为方便描述,以下将角色为leader的副本所属的服务器称为主服务器,将角色为follower的副本所属的服务器称为从服务器。
在执行写操作时,主服务器将写操作写入日志,向从服务器同步日志,在检测到包括自身在内的多数副本写入日志成功后,执行写操作。
在共识(raft)协议中,主服务器定期向从服务器发送心跳,从服务器若在选主周期内未接收到心跳,则发起选主,重新选举主服务器。为减少由特殊原因引起的选主,通常设置的较长的选主周期,例如特殊原因可以是主服务器存在网络问题无法发送心跳,还可以是从服务器存在网络问题无法接收心跳等。
当主服务器需要变更角色时,停止向从服务器发送心跳,若从服务器在一个选主周期未接收到心跳,则发起选主。例如,主服务器对应的进程需要升级,或者主服务器对应的副本需要删除时,主服务器需要变更角色。由于只有主服务器可以处理用户发送的读写请求,一个选主周期通常为几秒钟,若在一个选主周期后再进行选主,会导致发起选主之前的等待时间过长,影响读写服务的可用性。
发明内容
本发明实施例的目的在于提供分布式表格系统与分片选主方法、装置、服务器及介质,以提高读写服务的可用性。具体技术方案如下:
第一方面,本发明实施例提供了一种分片选主方法,所述方法应用于分布式表格系统中的主服务器,所述分布式表格系统还包括至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;所述方法包括:
当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;
向所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息,以使得所述目标服务器基于所述第一选主消息发起选主,并使得所述其他从服务器基于所述第二选主消息,在延时时长内检测到所述目标服务器选主未成功时,发起选主。
可选的,所述分布式表格系统包括多个从服务器,
所述从所述至少一个从服务器中确定具有最新日志的一个目标服务器,包括:
从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息;
从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
可选的,所述从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器,包括:
比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录;
将该确定出的日志记录所属的从服务器作为目标服务器。
可选的,所述从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息,包括:
从各从服务器发送的反馈信息中,获取每个从服务器日志更新时间最新的日志记录的标记信息。
可选的,所述从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器,包括:
比较每个从服务器日志更新时间最新的日志记录的标记信息,确定出目标日志记录,所述目标日志记录为所述各从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录;
将所述目标日志记录所属的从服务器作为目标服务器。
第二方面,本发明实施例提供了一种分片选主方法,所述方法应用于分布式表格系统中的从服务器,所述分布式表格系统还包括主服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述方法包括:
当需要更改所述主服务器存的副本角色时,通过目标服务器接收所述主服务器发送的第一选主消息,以使所述目标服务器基于所述第一选主消息发起选主,所述目标服务器为所述主服务器从各从服务器中确定具有最新日志的一个从服务器;
以及,通过目标服务器外的其他从服务器接收所述主服务器发送的第二选主消息;
所述其他从服务器基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;
当确定所述目标服务器选主未成功时,所述其他从服务器基于所述第二选主消息发起选主。
可选的,所述目标服务器基于所述第一选主消息发起选主,包括:
所述目标服务器基于所述第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主,所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述目标服务器基于接收到的心跳消息生成的记录。
可选的,所述其他从服务器基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功,包括:
所述其他从服务器基于所述第二选主消息,删除有效心跳时间段内的心跳消息记录;所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述其他从服务器基于接收到的心跳消息生成的记录;
所述其他从服务器在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息;所述延时时长不大于有效心跳时间段的时长;
若在有效心跳时间段内接收到所述目标服务器发送的心跳消息,则所述其他从服务器确定所述目标服务器选主成功;
若在有效心跳时间段内未接收到所述目标服务器发送的心跳消息,则所述其他从服务器确定所述目标服务器选主未成功。
可选的,在所述其他从服务器在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息之前,所述方法还包括:
所述其他从服务器接收延时时长设置指令,以确定所述延时时长。
第三方面,本发明实施例提供了一种分片选主装置,所述装置应用于分布式表格系统中的主服务器,所述分布式表格系统还包括至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;所述装置包括:
确定模块,用于当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;
发送模块,用于向所述确定模块确定的所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息,以使得所述目标服务器基于所述第一选主消息发起选主,并使得所述其他从服务器基于所述第二选主消息,在延时时长内检测到所述目标服务器选主未成功时,发起选主。
可选的,所述分布式表格系统包括多个从服务器,
所述确定模块,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息;
从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
可选的,所述确定模块,具体用于:
比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录;
将该确定出的日志记录所属的从服务器作为目标服务器。
可选的,所述确定模块,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器日志更新时间最新的日志记录的标记信息。
可选的,所述确定模块,具体用于:
比较每个从服务器日志更新时间最新的日志记录的标记信息,确定出目标日志记录,所述目标日志记录为所述各从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录;
将所述目标日志记录所属的从服务器作为目标服务器。
第四方面,本发明实施例提供了一种分片选主装置,所述装置应用于分布式表格系统中的从服务器,所述分布式表格系统还包括主服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述装置包括:选主模块、接收模块和检测模块;
目标服务器中的接收模块,用于当需要更改所述主服务器存的副本角色时,接收所述主服务器发送的第一选主消息,以使所述目标服务器中的选主模块基于所述第一选主消息发起选主,所述目标服务器为所述主服务器从各从服务器中确定具有最新日志的一个从服务器;
所述目标服务器外的其他从服务器中的接收模块,用于接收所述主服务器发送的第二选主消息;
所述其他从服务器中的检测模块,用于基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;
所述其他从服务器中的选主模块,用于当确定所述目标服务器选主未成功时,基于所述第二选主消息发起选主。
可选的,所述目标服务器中的选主模块,具体用于:
基于所述第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主,所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述目标服务器基于接收到的心跳消息生成的记录。
可选的,所述其他服务器中的检测模块,具体用于:
基于所述第二选主消息,删除有效心跳时间段内的心跳消息记录;所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述其他从服务器基于接收到的心跳消息生成的记录;
在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息;所述延时时长不大于有效心跳时间段的时长;
若在有效心跳时间段内接收到所述目标服务器发送的心跳消息,则确定所述目标服务器选主成功;
若在有效心跳时间段内未接收到所述目标服务器发送的心跳消息,则确定所述目标服务器选主未成功。
可选的,所述装置还包括:确定模块;
所述其他服务器中的确定模块,用于在所述在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息之前,接收延时时长设置指令,以确定所述延时时长。
第五方面,本发明实施例提供了一种分布式表格系统,所述分布式表格系统包括主服务器和至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述主服务器,用于当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;向所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息;
所述目标服务器,用于接收所述主服务器发送的所述第一选主消息,基于所述第一选主消息发起选主;
所述其他从服务器,用于接收所述主服务器发送的所述第二选主消息;基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;当确定所述目标服务器选主未成功时,基于所述第二选主消息发起选主。
第六方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一分布式表格系统的分片选主方法的步骤。
第七方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一分布式表格系统的分片选主方法的步骤。
第八方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一分布式表格系统的分片选主方法。
本发明实施例的技术方案至少可以带来以下有益效果:由于主服务器向目标服务器发送第一选主消息,使得目标服务器可以立即发起选主。主服务器还向其他从服务器发送第二选主消息,其他从服务器可以在延时时长内检测到目标服务器选主未成功时,发起选主。使得主服务器存储的副本变更角色时可以让目标服务器立即发起选主,不用等到所有从服务器在选主周期内未接收到心跳后再发起选主,减少了选主之前的等待时间,进而减少了选主过程所消耗的时间,提高了读写服务的可用性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式表格系统结构示意图;
图2为本发明实施例提供的一种分片选主方法流程图;
图3为本发明实施例提供的一种确定目标服务器的方法流程图;
图4为本发明实施例提供的另一种分片选主方法流程图;
图5为本发明实施例提供的一种分片选主装置的结构示意图;
图6为本发明实施例提供的另一种分片选主装置的结构示意图;
图7为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
表格的每个分片对应的数据会被存储为多个副本,多个副本中包括一个角色为领导者(leader)的副本和至少一个角色为追随者(follower)的副本。副本存储在服务器中。
为方便描述,以下将角色为leader的副本称为主副本,将角色为follower的副本称为从副本。并将角色为leader的副本所属的服务器称为主服务器,将角色为follower的副本所属的服务器称为从服务器。
为了提高读写服务的可用性,本发明实施例提供了一种分布式表格系统,参见图1,该系统包括主服务器101和至少一个从服务器102,主服务器101和每个从服务器102分别存储表格分片的一个副本;主服务器101存储表格分片的主副本,从服务器102存储表格分片的从副本;其中:
主服务器101,用于当需要更改主服务器101存储的副本角色时,从至少一个从服务器102中确定具有最新日志的一个目标服务器;向目标服务器发送第一选主消息,并向至少一个从服务器102中除目标服务器之外的其他从服务器102发送第二选主消息。
目标服务器,用于接收主服务器101发送的第一选主消息,基于第一选主消息发起选主。
其他从服务器102,用于接收主服务器101发送的第二选主消息;基于第二选主消息,在延时时长内检测目标服务器是否选主成功;当确定目标服务器选主未成功时,基于第二选主消息发起选主。
需要说明的是,图1中示例性的示出了两个从服务器102,在实际应用中,从服务器102的数量不限于此,本发明实施例对此不作具体限定。
本发明实施例的技术方案至少可以带来以下有益效果:由于主服务器向目标服务器发送第一选主消息,使得目标服务器可以立即发起选主。主服务器还向其他从服务器发送第二选主消息,其他从服务器可以在延时时长内检测到目标服务器选主未成功时,发起选主。使得主服务器存储的副本变更角色时可以让目标服务器立即发起选主,不用等到所有从服务器在选主周期内未接收到心跳后再发起选主,减少了选主之前的等待时间,进而减少了选主过程所消耗的时间,提高了系统的可用性。
本发明实施例提供了一种分片选主方法,该方法应用于图1所示的分布式表格系统中的主服务器,参见图2,该方法包括:
步骤201,当需要更改主服务器存储的副本角色时,从至少一个从服务器中确定具有最新日志的一个目标服务器。
步骤202,向目标服务器发送第一选主消息,并向至少一个从服务器中除目标服务器之外的其他从服务器发送第二选主消息。以使得目标服务器基于第一选主消息发起选主,并使得其他从服务器基于第二选主消息,在延时时长内检测到目标服务器选主未成功时,发起选主。
在本发明实施例中,第一选主消息用于指示目标服务器立即发起选主,第二选主消息用于指示其他从服务器延迟选主。
本发明实施例的技术方案至少可以带来以下有益效果:由于主服务器向目标服务器发送第一选主消息,使得目标服务器可以立即发起选主。主服务器还向其他从服务器发送第二选主消息,其他从服务器可以在延时时长内检测到目标服务器选主未成功时,发起选主。使得主服务器存储的副本变更角色时可以让目标服务器立即发起选主,不用等到所有从服务器在选主周期内未接收到心跳后再发起选主,减少了选主之前的等待时间,进而减少了选主过程所消耗的时间,提高了系统的可用性。
可选的,分布式表格系统可以包括多个从服务器,基于此,参见图3,上述步骤201确定目标服务器的方式包括以下两个步骤。
步骤301,从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息。
可以理解的,主服务器在接收到用户终端发送的写入请求时,可以根据该写入请求生成一条日志记录写入日志,并向从服务器同步日志,从服务器同步日志后,向主服务器发送反馈信息,反馈信息中包括该从服务器自身存储的日志中最新的一条日志记录的标记信息。
可选的,每条日志记录的标记信息中包括两个参数,分别为任期(term)和索引(index)。其中,term表示日志记录产生的任期,index表示日志记录的序号。
步骤302,从多个从服务器中根据日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
在本发明实施例中,主服务器记录各从服务器发送的反馈信息。在需要选取目标服务器时,主服务器可以从反馈信息中获取各从服务器的日志记录的标记信息,然后对比各标记信息,得到最新的日志记录,将记录有该最新的日志记录的服务器,确定为目标服务器。
对比两条日志记录时,假设日志记录1的标记信息1包括term1和index1,日志记录2的标记信息2包括term2和index2;当term1=term2,且index1>index2时,确定日志记录1比日志记录2更新;当term1=term2,且index1=index2时,确定日志记录1和日志记录2一样新;当term1>term2时,确定日志记录2比日志记录1更新;当term1<term2时,确定日志记录1比日志记录2更新。
可选的,上述步骤302确定目标服务器的方法包括以下两种方式。
方式一、比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录,然后将该确定出的日志记录所属的从服务器作为目标服务器。
可以理解的,主服务器中可以记录每次从服务器同步主服务器日志之后,向主服务器发送的反馈消息,其中,反馈消息中包括该从服务器自身存储的当前日志中最新的一条日志记录的标记信息。
一种实施方式中,主服务器可以从自身记录的各从服务器所有日志记录的标记信息中,确定出日志更新时间最新的一条日志记录,并将该日志记录所属的从服务器作为目标服务器。
方式二、从各从服务器发送的反馈信息中,获取每个从服务器中日志更新时间最新的日志记录的标记信息,然后比较每个从服务器的日志更新时间最新的日志记录的标记信息,确定出目标日志记录,并将目标日志记录所属的从服务器作为目标服务器。其中,目标日志记录为每个从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录。
可以理解的,主服务器中可以记录多个从服务器每次发送的反馈消息,也就是说,主服务器中可以记录多个从服务器的反馈消息,对于一个从服务器,主服务器可以记录该从服务器多次同步日志后发送的反馈消息。
在本发明实施例中,主服务器可以先对于每个从服务器,基于标记信息,找到该从服务器日志更新时间最新的日志记录,再根据标记信息,找到各从服务器最新的日志记录中,日志更新时间距离当前时刻最近的目标日志记录。
本发明实施例的技术方案还可以带来以下有益效果:由于主服务器可以让日志最新的从服务器优先发起选主,而且日志最新的从服务器选主成功的可能性较大,使得选主所消耗的时间更短,提高了读写服务的可用性。
参见图4,本发明实施例提供了一种分片选主方法,该方法应用于图1所示的分布式表格系统中的从服务器,该方法包括以下步骤。
步骤401,当需要更改主服务器存的副本角色时,通过目标服务器接收主服务器发送的第一选主消息,以使目标服务器基于第一选主消息发起选主。
其中,目标服务器可以为主服务器从各从服务器中确定具有最新日志的一个从服务器。
步骤402,通过目标服务器外的其他从服务器接收主服务器发送的第二选主消息。
步骤403,其他从服务器基于第二选主消息,在延时时长内检测目标服务器是否选主成功。
一种实施方式中,目标服务器选主成功后,向其他从服务器发送心跳信息,其他从服务器可以检测延时时长内是否接收到目标服务器发送的心跳消息。在延时时长内接收到目标服务器发送的心跳消息时,确定目标服务器选主成功;在延时时长内未接收到目标服务器发送的心跳消息时,确定目标服务器选主未成功。
步骤404,当确定目标服务器选主未成功时,其他从服务器基于第二选主消息发起选主。
本发明实施例的技术方案至少可以带来以下有益效果:由于主服务器向目标服务器发送第一选主消息,使得目标服务器可以立即发起选主。主服务器还向其他从服务器发送第二选主消息,其他从服务器可以在延时时长内检测到目标服务器选主未成功时,发起选主。使得主服务器存储的副本变更角色时可以让目标服务器立即发起选主,不用等到所有从服务器在选主周期内未接收到心跳后再发起选主,减少了选主之前的等待时间,进而减少了选主过程所消耗的时间,提高了系统的可用性。
在本发明实施例中,上述步骤402中基于第一选主消息发起选主的方式包括:目标服务器基于第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主。其中,有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,心跳消息记录为目标服务器基于接收到的心跳消息生成的记录。在本发明实施例中,从服务器每接收到一个心跳消息,基于接收到的心跳消息生成一条心跳消息记录。可以理解的,从服务器接收到第一选主消息,说明该从服务器是主服务器选取的目标服务器。
可以理解的,从服务器会在选主周期内未接收到心跳消息后发起选主,例如选主周期可以是5秒。若目标服务器基于第一选主消息发起的选主失败,则目标服务器会在一个选主周期内未接收到心跳消息后发起选主。为减少上述自动选主逻辑对基于第一选主消息发起选主的影响,可以在基于第一选主消息发起选主之前,清除最近一段时间的心跳消息记录,例如清除最近3秒内的心跳消息记录,在目标服务器基于第一选主消息发起的选主失败后,若再经过2秒也未接收到心跳消息,此时共有5秒没有接收到心跳消息,基于自动选主逻辑,再次发起选主。
在本发明实施例中,上述步骤403检测目标服务器是否选主成功的方式包括:其他从服务器基于第二选主消息,删除有效心跳时间段内的心跳消息记录;然后在经过延时时长后,在有效心跳时间段内检测是否接收到目标服务器发送的心跳消息;若在有效心跳时间段内接收到目标服务器发送的心跳消息,则确定目标服务器选主成功,并取消选主任务。若在有效心跳时间段内未接收到目标服务器发送的心跳消息,则确定目标服务器选主未成功。其中,有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,延时时长不大于有效心跳时间段的时长;心跳消息记录为其他从服务器基于接收到的心跳消息生成的记录。可以理解的,从服务器接收到第二选主消息,说明从服务器不是主服务器选取的目标服务器。
可以理解的,由于延时时长不大于有效心跳时间段的时长,所以经过延时时长后的有效时间段包括延时时长,还可能包括被删除心跳消息记录的部分时间段。例如:假设有效心跳时间段包括3秒,一个从服务器接收到第二选主消息的时刻为1:00,删除1:00时刻前3s内的心跳消息记录,即0:57-1:00时间段内的心跳消息记录被删除。延时时长为1s,在1:01时,检查0:58-1:01时间段内的心跳消息记录,也可以检查1:00-1:01时间段内的心跳消息记录。
例如,有效心跳时间段可以为当前时刻与当前时刻的前3s之间的时间段。选择延时时长时,可以在[100ms,500ms]的范围内随机选取一个时长作为延时时长。其中,s表示秒,ms表示毫秒。
在本发明实施例中,其他从服务器在检测是否接收到目标服务器发送的心跳消息之前,其他从服务器还可以通过以下两种方式确定延时时长。
方式1,根据延时时长的设置,确定延时时长。
一种实施方式中,可以预先设置延时时长,或者预先设置延时时长范围,其他从服务器可以获取预先设置的延时时长,或者从预先设置的延时时长范围中随机选择一个时长,作为延时时长。
方式2,接收延时时长设置指令,以确定延时时长。
一种实施方式中,从服务器可以接收用户设备发送的延时时长设置指令,其中,延时时长设置指令中包括指定的延时时长,或者包括指定的延时时长范围。从服务器可以从延时时长设置指令中提取指定的延时时长;或者从延时时长设置指令中提取指定的延时时长范围,从指定的延时时长范围中选取一个时长,作为延时时长。
可选的,其他从服务器在接收到第二选主消息后,在延时时长内检测到目标服务器选主成功时,确定目标服务器存储的副本角色为leader。并确定自身存储的副本角色为follower。
可选的,在目标服务器接收到第一选主消息后,可以立即发起选主。可以理解的,接收到第一选主消息的从服务器,是主服务器选择的目标服务器。
基于此,目标服务器还可以向其他从服务器发送请求投票消息(GetVotemessage),并接收其他从服务器发送的投票结果,在接收到预设数量的表示同意的投票结果时,将自身存储的副本角色设置为leader,并向其他从服务器发送心跳消息。其中,请求投票消息用于请求将目标服务器存储的副本角色设置为leader,投票结果用于表示同意或者拒绝。
可选的,预设数量可以是超过副本总数一半的数量。其中副本总数为分片包括的副本的数量。
可选的,目标服务器还可以在将自身存储的副本角色设置为leader后,向其他从服务器同步日志。
相应的,接收到请求投票消息的从服务器还可以响应于目标服务器发送的请求投票消息,向目标服务器发送投票结果。
可选的,请求投票消息中可以携带目标服务器日志更新时间最新的日志记录的标记信息,从服务器可以将目标服务器日志更新时间最新的日志记录的标记信息,与自身日志更新时间最新的日志记录的标记信息进行对比。若自身最新的日志记录的标记信息比目标服务器最新的日志记录的标记信息更新,则发送表示拒绝的投票结果。若自身最新的日志记录的标记信息比目标服务器最新的日志记录的标记信息更旧或者一样新,则发送表示同意的投票结果。
相应的,接收到第二选主消息的其他从服务器还可以在延时时长内接收到目标服务器发送的心跳消息时,确定目标服务器存储的副本角色为leader。并确定自身存储的副本角色为follower。
可以理解的,由于目标服务器选主成功后,向其他从服务器发送心跳消息,所以当从服务器在延时时长内接收到目标服务器发送的心跳消息时,表示目标服务器选主成功。
本发明实施例还可以带来以下有益效果:目标服务器可以在接收到第一选主消息时,立即发起选主,且在选主成功时,向其他从服务器发送心跳消息,避免其他从服务器发起选主,造成时间和资源的浪费。
可选的,其他从服务器若延时时长内检测到目标服务器选主未成功,则可以发起选主。基于此,从服务器可以向除自身以外的其他从服务器发送投票消息,并接收投票结果,在接收到预设数量的表示同意的投票结果时,将自身存储的副本角色为设置为leader,确定除自身存储的副本以外的其他副本角色为follower,并向除自身以外的其他从服务器发送心跳消息。可选的,从服务器在将自身存储的副本角色为设置为leader后,该从服务器成为主服务器,可以向从服务器同步日志。
相应的,目标服务器还可以响应于其他从服务器发送的请求投票消息,向其他从服务器返回投票结果。
相应的,目标服务器还可以在接收到其他从服务器发送的心跳消息时,确定发送心跳消息的从服务器存储的副本角色为leader。并确定自身存储的副本角色为follower。
可以理解的,若仅向目标服务器发送第一选主消息,那么当目标服务器选主失败时,需要等到其他从服务器在一个选主周期内未接收到心跳消息时发起选主,使得等待选主的时间较长。而本发明实施例中,其他从服务器可以在目标服务器选主失败时,经过延时时长发起选主。由于可以设置较短的延时时长,使得本发明实施例可以减少选主过程所消耗的时间。
另外,若主服务器向各从服务器发送第一选主消息,那么各从服务器同时开始立即选主,可能造成每个从服务器都无法获得预设数量的表示同意的投票结果,导致选主分裂,需要启动延迟任务再进行下一轮选主,使得选主所消耗的时间过长,影响分布式表格系统的可用性。而本发明实施例中,可以让目标服务器优先发起选主,提高目标服务器选主成功的可能性,减少选主所消耗的时间,提高了分布式表格系统的可用性。
对应于上述方法实施例,本发明还提供了一种分片选主装置,参见图5,该装置应用于分布式表格系统中的主服务器,分布式表格系统还包括至少一个从服务器,主服务器和每个从服务器分别存储表格分片的一个副本,主服务器存储表格分片的主副本,从服务器存储表格分片的从副本;该装置包括:确定模块501和发送模块502;
确定模块501,用于当需要更改主服务器存储的副本角色时,从至少一个从服务器中确定具有最新日志的一个目标服务器;
发送模块502,用于向确定模块501确定的目标服务器发送第一选主消息,并向至少一个从服务器中除目标服务器之外的其他从服务器发送第二选主消息,以使得目标服务器基于第一选主消息发起选主,并使得其他从服务器基于第二选主消息,在延时时长内检测到目标服务器选主未成功时,发起选主。
可选的,分布式表格系统包括多个从服务器,
确定模块501,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息;
从多个从服务器中根据日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
可选的,确定模块501,具体用于:
比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录;
将该确定出的日志记录所属的从服务器作为目标服务器。
可选的,确定模块501,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器日志更新时间最新的日志记录的标记信息。
可选的,确定模块501,具体用于:
比较每个从服务器日志更新时间最新的日志记录的标记信息,确定出目标日志记录,目标日志记录为各从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录;
将目标日志记录所属的从服务器作为目标服务器。
对应于上述方法实施例,本发明还提供了一种分片选主装置,参见图6,该装置应用于分布式表格系统中的从服务器,分布式表格系统还包括主服务器,主服务器和每个从服务器分别存储表格分片的一个副本,主服务器存储表格分片的主副本,从服务器存储表格分片的从副本;该装置包括:接收模块601、检测模块602和选主模块603;
目标服务器中的接收模块601,用于当需要更改主服务器存的副本角色时,接收主服务器发送的第一选主消息,以使目标服务器中的选主模块603基于第一选主消息发起选主,目标服务器为主服务器从各从服务器中确定具有最新日志的一个从服务器;
目标服务器外的其他从服务器中的接收模块601,用于接收主服务器发送的第二选主消息;
其他从服务器中的检测模块602,用于基于第二选主消息,在延时时长内检测目标服务器是否选主成功;
其他从服务器中的选主模块603,用于当确定目标服务器选主未成功时,基于第二选主消息发起选主。
可选的,目标服务器中的选主模块603,具体用于:
基于第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主,有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,心跳消息记录为目标服务器基于接收到的心跳消息生成的记录。
可选的,其他服务器中的检测模块602,具体用于:
基于第二选主消息,删除有效心跳时间段内的心跳消息记录;有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,心跳消息记录为其他从服务器基于接收到的心跳消息生成的记录;
在经过延时时长后,在有效心跳时间段内检测是否接收到目标服务器发送的心跳消息;延时时长不大于有效心跳时间段的时长;
若在有效心跳时间段内接收到目标服务器发送的心跳消息,则确定目标服务器选主成功;
若在有效心跳时间段内未接收到目标服务器发送的心跳消息,则确定目标服务器选主未成功。
可选的,该装置还包括:确定模块604;
其他服务器中的确定模块604,用于在在经过延时时长后,在有效心跳时间段内检测是否接收到目标服务器发送的心跳消息之前,接收延时时长设置指令,以确定延时时长。
本发明实施例还提供了一种服务器,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述方法实施例中由主服务器或者从服务器执行的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一分布式表格系统的分片选主方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一分布式表格系统的分片选主方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (21)

1.一种分片选主方法,其特征在于,所述方法应用于分布式表格系统中的主服务器,所述分布式表格系统还包括至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;所述方法包括:
当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;
向所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息,以使得所述目标服务器基于所述第一选主消息发起选主,并使得所述其他从服务器基于所述第二选主消息,在延时时长内检测到所述目标服务器选主未成功时,发起选主。
2.根据权利要求1所述的方法,其特征在于,所述分布式表格系统包括多个从服务器,
所述从所述至少一个从服务器中确定具有最新日志的一个目标服务器,包括:
从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息;
从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
3.根据权利要求2所述的方法,其特征在于,所述从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器,包括:
比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录;
将该确定出的日志记录所属的从服务器作为目标服务器。
4.根据权利要求2所述的方法,其特征在于,所述从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息,包括:
从各从服务器发送的反馈信息中,获取每个从服务器日志更新时间最新的日志记录的标记信息。
5.根据权利要求4所述的方法,其特征在于,所述从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器,包括:
比较每个从服务器日志更新时间最新的日志记录的标记信息,确定出目标日志记录,所述目标日志记录为所述各从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录;
将所述目标日志记录所属的从服务器作为目标服务器。
6.一种分片选主方法,其特征在于,所述方法应用于分布式表格系统中的从服务器,所述分布式表格系统还包括主服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述方法包括:
当需要更改所述主服务器存的副本角色时,通过目标服务器接收所述主服务器发送的第一选主消息,以使所述目标服务器基于所述第一选主消息发起选主,所述目标服务器为所述主服务器从各从服务器中确定具有最新日志的一个从服务器;
以及,通过目标服务器外的其他从服务器接收所述主服务器发送的第二选主消息;
所述其他从服务器基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;
当确定所述目标服务器选主未成功时,所述其他从服务器基于所述第二选主消息发起选主。
7.根据权利要求6所述的方法,其特征在于,所述目标服务器基于所述第一选主消息发起选主,包括:
所述目标服务器基于所述第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主,所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述目标服务器基于接收到的心跳消息生成的记录。
8.根据权利要求6所述的方法,其特征在于,所述其他从服务器基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功,包括:
所述其他从服务器基于所述第二选主消息,删除有效心跳时间段内的心跳消息记录;所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述其他从服务器基于接收到的心跳消息生成的记录;
所述其他从服务器在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息;所述延时时长不大于有效心跳时间段的时长;
若在有效心跳时间段内接收到所述目标服务器发送的心跳消息,则所述其他从服务器确定所述目标服务器选主成功;
若在有效心跳时间段内未接收到所述目标服务器发送的心跳消息,则所述其他从服务器确定所述目标服务器选主未成功。
9.根据权利要求8所述的方法,其特征在于,在所述其他从服务器在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息之前,所述方法还包括:
所述其他从服务器接收延时时长设置指令,以确定所述延时时长。
10.一种分片选主装置,其特征在于,所述装置应用于分布式表格系统中的主服务器,所述分布式表格系统还包括至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;所述装置包括:
确定模块,用于当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;
发送模块,用于向所述确定模块确定的所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息,以使得所述目标服务器基于所述第一选主消息发起选主,并使得所述其他从服务器基于所述第二选主消息,在延时时长内检测到所述目标服务器选主未成功时,发起选主。
11.根据权利要求10所述的装置,其特征在于,所述分布式表格系统包括多个从服务器,
所述确定模块,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器的日志记录的标记信息;
从所述多个从服务器中根据所述日志记录的标记信息确定具有最新日志的从服务器,将该从服务器确定为目标服务器。
12.根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:
比较每个从服务器的日志记录的标记信息,以确定出日志更新时间最新的一条日志记录;
将该确定出的日志记录所属的从服务器作为目标服务器。
13.根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:
从各从服务器发送的反馈信息中,获取每个从服务器日志更新时间最新的日志记录的标记信息。
14.根据权利要求13所述的装置,其特征在于,所述确定模块,具体用于:
比较每个从服务器日志更新时间最新的日志记录的标记信息,确定出目标日志记录,所述目标日志记录为所述各从服务器的日志更新时间最近的日志记录中,日志更新时间距离当前时间最近的日志记录;
将所述目标日志记录所属的从服务器作为目标服务器。
15.一种分片选主装置,其特征在于,所述装置应用于分布式表格系统中的从服务器,所述分布式表格系统还包括主服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述装置包括:选主模块、接收模块和检测模块;
目标服务器中的接收模块,用于当需要更改所述主服务器存的副本角色时,接收所述主服务器发送的第一选主消息,以使所述目标服务器中的选主模块基于所述第一选主消息发起选主,所述目标服务器为所述主服务器从各从服务器中确定具有最新日志的一个从服务器;
所述目标服务器外的其他从服务器中的接收模块,用于接收所述主服务器发送的第二选主消息;
所述其他从服务器中的检测模块,用于基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;
所述其他从服务器中的选主模块,用于当确定所述目标服务器选主未成功时,基于所述第二选主消息发起选主。
16.根据权利要求15所述的装置,其特征在于,所述目标服务器中的选主模块,具体用于:
基于所述第一选主消息,删除有效心跳时间段内的心跳消息记录,并发起选主,所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述目标服务器基于接收到的心跳消息生成的记录。
17.根据权利要求15所述的装置,其特征在于,所述其他服务器中的检测模块,具体用于:
基于所述第二选主消息,删除有效心跳时间段内的心跳消息记录;所述有效心跳时间段为当前时刻与当前时刻之前距离当前时刻预设时长的时刻之间的时间段,所述心跳消息记录为所述其他从服务器基于接收到的心跳消息生成的记录;
在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息;所述延时时长不大于有效心跳时间段的时长;
若在有效心跳时间段内接收到所述目标服务器发送的心跳消息,则确定所述目标服务器选主成功;
若在有效心跳时间段内未接收到所述目标服务器发送的心跳消息,则确定所述目标服务器选主未成功。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:确定模块;
所述其他服务器中的确定模块,用于在所述在经过延时时长后,在有效心跳时间段内检测是否接收到所述目标服务器发送的心跳消息之前,接收延时时长设置指令,以确定所述延时时长。
19.一种分布式表格系统,其特征在于,所述分布式表格系统包括主服务器和至少一个从服务器,所述主服务器和每个从服务器分别存储表格分片的一个副本,所述主服务器存储所述表格分片的主副本,所述从服务器存储所述表格分片的从副本;
所述主服务器,用于当需要更改所述主服务器存储的副本角色时,从所述至少一个从服务器中确定具有最新日志的一个目标服务器;向所述目标服务器发送第一选主消息,并向所述至少一个从服务器中除所述目标服务器之外的其他从服务器发送第二选主消息;
所述目标服务器,用于接收所述主服务器发送的所述第一选主消息,基于所述第一选主消息发起选主;
所述其他从服务器,用于接收所述主服务器发送的所述第二选主消息;基于所述第二选主消息,在延时时长内检测所述目标服务器是否选主成功;当确定所述目标服务器选主未成功时,基于所述第二选主消息发起选主。
20.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5或6-9任一项所述的方法步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5或6-9任一项所述的方法步骤。
CN202010555091.0A 2020-06-17 2020-06-17 分布式表格系统与分片选主方法、装置、服务器及介质 Active CN111708780B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010555091.0A CN111708780B (zh) 2020-06-17 2020-06-17 分布式表格系统与分片选主方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010555091.0A CN111708780B (zh) 2020-06-17 2020-06-17 分布式表格系统与分片选主方法、装置、服务器及介质

Publications (2)

Publication Number Publication Date
CN111708780A true CN111708780A (zh) 2020-09-25
CN111708780B CN111708780B (zh) 2023-05-02

Family

ID=72541301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010555091.0A Active CN111708780B (zh) 2020-06-17 2020-06-17 分布式表格系统与分片选主方法、装置、服务器及介质

Country Status (1)

Country Link
CN (1) CN111708780B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579039A (zh) * 2020-12-02 2022-06-03 北京金山云网络技术有限公司 一种表格副本的扩展方法、系统、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037283A1 (en) * 2001-08-15 2003-02-20 Anand Srinivasan Electing a master server using election periodic timer in fault-tolerant distributed dynamic network systems
US20080071853A1 (en) * 2006-09-18 2008-03-20 Mosier Timothy J Distributed-leader-election service for a distributed computer system
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
US20170270176A1 (en) * 2010-12-23 2017-09-21 Eliot Horowitz System and method for determining consensus within a distributed database
CN107203420A (zh) * 2016-03-18 2017-09-26 北京京东尚科信息技术有限公司 任务调度实例的主从切换方法和装置
CN107809326A (zh) * 2016-09-09 2018-03-16 阿里巴巴集团控股有限公司 数据一致性的处理方法、装置和设备
CN108810046A (zh) * 2017-04-28 2018-11-13 华为技术有限公司 一种选举领导者Leader的方法、装置及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037283A1 (en) * 2001-08-15 2003-02-20 Anand Srinivasan Electing a master server using election periodic timer in fault-tolerant distributed dynamic network systems
US20080071853A1 (en) * 2006-09-18 2008-03-20 Mosier Timothy J Distributed-leader-election service for a distributed computer system
US20170270176A1 (en) * 2010-12-23 2017-09-21 Eliot Horowitz System and method for determining consensus within a distributed database
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN107203420A (zh) * 2016-03-18 2017-09-26 北京京东尚科信息技术有限公司 任务调度实例的主从切换方法和装置
CN107809326A (zh) * 2016-09-09 2018-03-16 阿里巴巴集团控股有限公司 数据一致性的处理方法、装置和设备
CN108810046A (zh) * 2017-04-28 2018-11-13 华为技术有限公司 一种选举领导者Leader的方法、装置及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579039A (zh) * 2020-12-02 2022-06-03 北京金山云网络技术有限公司 一种表格副本的扩展方法、系统、装置及电子设备
CN114579039B (zh) * 2020-12-02 2024-02-02 北京金山云网络技术有限公司 一种表格副本的扩展方法、系统、装置及电子设备

Also Published As

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

Similar Documents

Publication Publication Date Title
US9778998B2 (en) Data restoration method and system
US7865763B2 (en) Data replication method
CN109284073B (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
US11233874B2 (en) Ordinary write in distributed system maintaining data storage integrity
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
CN110008041B (zh) 一种消息处理方法及装置
CN105468718B (zh) 数据一致性处理方法、装置和系统
CN112367149B (zh) 消息获取方法、装置、设备及存储介质
CN112202834B (zh) 一种数据处理方法、数据处理装置及节点服务器
CN111049928A (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
US10761748B2 (en) Future write in distributed system maintaining data storage integrity
CN112835885B (zh) 一种分布式表格存储的处理方法、装置及系统
US20180349432A1 (en) Database system, transaction management node, method, and medium
CN111125240B (zh) 一种分布式事务实现方法、装置、电子设备及存储介质
CN111708780B (zh) 分布式表格系统与分片选主方法、装置、服务器及介质
CN112000850B (zh) 进行数据处理的方法、装置、系统及设备
CN112084264A (zh) 一种日志数据同步方法、装置及服务器
CN112749172A (zh) 一种缓存与数据库之间的数据同步方法及系统
CN116540938A (zh) 数据读取方法、装置、分布式存储系统、设备和存储介质
CN109542643B (zh) 一种OpenStack系统中消息的恢复方法及装置
CN110764697A (zh) 一种数据管理方法及装置
CN111291127A (zh) 一种数据同步方法、装置、服务器及存储介质
CN114584572B (zh) 一种分布式对象存储中数据同步方法、装置、设备及介质
CN111182014B (zh) 一种数据同步方法和装置
CN111245876B (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