【技术实现步骤摘要】
分布式表格系统的分片分裂方法、装置、服务器及介质
[0001]本专利技术涉及分布式存储
,特别是涉及一种分布式表格系统的分片分裂方法、装置、服务器及介质。
技术介绍
[0002]在表格的数据量较大时,可以对表格进行水平切片,获得多个分片,每个分片覆盖该表格的一定范围,即每个分片的数据库文件存储该表格一定范围的数据。一张表格对应的各分片覆盖的范围没有交集,各分片覆盖的范围的并集等于该表格所覆盖的范围。需要向表格中读写数据时,客户端会向代理服务器发送请求,代理服务器接收到请求后,首先向元数据服务器请求获取该请求所请求的数据所在的分片所属的数据服务器的信息,接着代理服务器向该数据服务器发送此请求。
[0003]为了提高分片的读写效率及数据服务器的空间利用率,当分片对应的数据库文件的数据量达到阈值时,可以将该分片分裂成两个子分片。目前的分裂方法为:暂停待分裂分片的写入,复制一份待分裂分片的数据库文件,得到一份复制文件,复制文件是新生成的文件,且复制文件包括的内容与数据库文件相同。创建两个子分片,记作子分片1和子分片2。子分片1的数据库文件为待分裂分片的数据库文件,子分片2的数据库文件为复制文件。删除子分片1的数据库文件中的部分数据,并删除子分片2的数据库文件中的另一部分数据,两个子分片保留的数据没有交集,且两个子分片保留的数据并集等于待分裂分片的数据库文件中数据。
[0004]由于在进行分片的分裂时,需要先暂停分片的写入,且分片的数据库文件数据量较大,复制数据库文件所耗费的时间较长,分裂完成之后才会继续 ...
【技术保护点】
【技术特征摘要】
1.一种分布式表格系统的分片分裂方法,其特征在于,应用于分布式表格系统的存储服务器,所述分布式表格系统中包括至少一个表格,每个表格包括多个分片,所述多个分片存储在不同的存储服务器中,所述方法包括:从所述多个分片中确定出待分裂分片;建立所述待分裂分片的硬链接文件,所述硬链接文件为所述待分裂分片的数据库文件的索引;基于所述硬链接文件,对所述待分裂分片进行分裂。2.根据权利要求1所述的方法,其特征在于,所述基于所述硬链接文件,对所述待分裂分片进行分裂,包括:创建第一子分片和第二子分片;将所述待分裂分片的数据库文件作为所述第一子分片的数据库文件,并将所述第一子分片的数据库文件包括的数据范围设置为:所述待分裂分片的数据库文件中的第一指定范围;将所述硬链接文件作为所述第二子分片的数据库文件,并将所述第二子分片的数据库文件包括的数据范围设置为:所述待分裂分片的数据库文件中的第二指定范围,所述第一指定范围与所述第二指定范围的交集为空集,所述第一指定范围与所述第二指定范围的并集为所述待分裂分片的数据库文件包括的数据范围。3.根据权利要求1所述的方法,其特征在于,所述从所述多个分片中确定出待分裂分片,包括:检测每个主分片的数据量;将数据量满足预设条件的主分片确定为待分裂分片。4.根据权利要求3所述的方法,其特征在于,在所述从所述多个分片中确定出待分裂分片之后,所述方法还包括:生成分裂请求,所述分裂请求用于请求分裂所述待分裂分片对应的从分片;将所述分裂请求写入日志,并向所述待分裂分片对应的从分片所属的从服务器发送所述日志;在检测到预设数量的从服务器存储所述日志成功时,执行所述建立所述待分裂分片的硬链接文件的步骤。5.根据权利要求4所述的方法,其特征在于,在所述基于所述硬链接文件,对所述待分裂分片进行分裂之后,所述方法还包括:确定所述第一子分片为主分片,并确定所述第二子分片为从分片;基于预设选举规则,从所述待分裂分片的第二子分片和其他第二子分片中选举主分片,所述其他第二子分片为:所述待分裂分片对应的从分片分裂后得到的第二子分片。6.根据权利要求2所述的方法,其特征在于,所述从所述多个分片中确定出待分裂分片,包括:接收主分片所属的主服务器发送的日志,所述日志中包括分裂请求,所述分裂请求用于请求分裂所述主分片对应的从分片;将所述主分片对应的从分片,确定为所述待分裂分片。7.根据权利要求6所述的方法,其特征在于,在所述基于所述硬链接文件,对所述待分
裂分片进行分裂之后,所述方法还包括:确定所述第一子分片和所述第二子分片为从分片;基于预设选举规则,从所述待分裂分片的第二子分片和其他第二子分片中选举主分片,所述其他第二子分片包括:对所述待分裂分片对应的主分片分裂后得到的第二子分片。8.一种分布式表格系统的分片分裂装置,其特征在于,应用于分布式表格系统的存储服务器,所述分布式表格系统中包括至少一个表格,每个表格包括多个分片,所述多个分片存储在不同的存储服务器中,所述装置包括:确定模块,由于从所述多个分片中确定出待分裂分片;建立模块,由于建立所述确定模块确定的所述待分裂分片的硬链接...
【专利技术属性】
技术研发人员:万进,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。