[发明专利]数据拖取的方法和装置在审
申请号: | 201410510515.6 | 申请日: | 2014-09-28 |
公开(公告)号: | CN104199992A | 公开(公告)日: | 2014-12-10 |
发明(设计)人: | 王锋 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/14;H04L29/08 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;孙晓芳 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别是一种数据拖取的方法和装置。
背景技术
Cassandra是依赖DHT(Distributed Hash Table,分布式哈希表)技术实现的一种典型的无中心节点的环形结构的分布式存储系统。Cassandra数据存储空间可以抽象为一个环形结构,数据就是通过hash(哈希)分散在这个环形存储空间上。每个节点负责管理这个环形存储空间上的某一块连续的Range(范围),落在此Range空间上的数据就存储在这个节点上。
当Cassandra集群剩余容量不足时,则需要向环形结构中增加一些新节点进行扩容。或者,当现有的环形结构中某个数据节点因故障无法恢复时,则需要使用一个新节点顶替故障节点。无论是增加新节点进行扩容,或是增加新节点顶替故障节点,都需要从环形结构上的其他节点拖取该新节点未来负责管理的数据,即该新节点未来负责管理的某一块连续的Range的数据,从而对外提供数据访问服务,这种拖取数据的过程也称为Streaming(流)过程。
相关技术中,实现上述Streaming过程如图1所示。首先,数据索取方A节点(即新节点)计算出未来负责管理环形存储空间上的某一块Range,从Cassandra环形结构上的原始节点中选择可以提供该Range的数据的节点,如B节点。接着,A节点主动与B节点建立连接,之后A节点将获取该Range的数据请求发送给B节点,B节点根据该Range生成文件列表。随后,B节点将文件列表中的文件(File 0、File 1、File 2……)逐个发送给A节点。A节点在收到文件后进行校验,如果文件数据有错误或异常,则向B节点发送RETRY(重试)指令告知B节点重传该文件;反之,发送NEXT(下一个)指令告知B节点传输下一文件。当B节点向A节点发送完最后一个文件,并且收到A节点回复的NEXT指令,则B节点向A节点发送FINISHED(完成)指令,并断开连接,从而完成数据拖取。最后,A节点接收完所有的文件后,遍历读取文件数据建立索引。图1所示的Streaming过程,虽然是由A节点发起,但是A节点只是被动接收文件数据,它只知道某个文件数据是否正确的传输过来,并根据传输正确与否来给出相应的回复。然而A节点并不清楚到底有多少文件数据需要接收,即其无法记录断点信息,无法获知Streaming进度。如果在Streaming过程中发生机器故障或网络异常,导致A节点与B节点的连接断开,由于没有断点信息,即使恢复了连接也无法恢复Streaming过程,因而只能从头开始Streaming。而在大容量的分布式存储系统的集群中,单节点存储容量往往有几十TB,从头开始Streaming是完全不可以接受的。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据拖取的方法和相应的装置。
依据本发明的一个方面,提供了一种数据拖取的方法,包括:获取在分布式存储系统集群中增加新节点的触发事件,计算所述新节点即将在所述分布式存储系统的环形存储空间上管理数据的第一范围;从所述分布式存储系统集群的、保存有所述第一范围的数据副本的原始节点中选择提供所述第一范围的数据的拖取节点;将所述第一范围划分成N个细粒度的第二范围,根据所述第二范围的划分状态分别从所述拖取节点拖取每个所述第二范围对应的数据,直至从所述拖取节点拖取N个所述第二范围对应的数据。
可选地,根据所述第二范围的划分状态分别从所述拖取节点拖取每个所述第二范围对应的数据,包括:对N个所述第二范围进行排序,根据所述第二范围的划分状态依序从所述拖取节点拖取每个所述第二范围对应的数据。
可选地,根据所述第二范围的划分状态依序从所述拖取节点拖取每个所述第二范围对应的数据,包括:根据所述第二范围的划分状态依序从所述拖取节点拖取每个所述第二范围对应的结构化数据,其中,所述结构化数据是由所述拖取节点获取所述第二范围对应的文件列表、并利用所述文件列表中的文件生成。
可选地,依序从所述拖取节点拖取每个所述第二范围对应的结构化数据,包括:在所述新节点与所述拖取节点之间建立长连接;依序向所述拖取节点发送拖取每个所述第二范围的数据的拖取请求,其中,所述拖取请求中携带有所述第二范围;接收所述拖取节点返回的每个所述第二范围对应的结构化数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司;,未经北京奇虎科技有限公司;奇智软件(北京)有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410510515.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置