[发明专利]一种数据存储方法、数据存储设备和分布式存储系统有效
申请号: | 201310657140.1 | 申请日: | 2013-12-06 |
公开(公告)号: | CN103699494A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 王锋 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F11/08 |
代理公司: | 北京思睿峰知识产权代理有限公司 11396 | 代理人: | 赵爱军 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 设备 分布式 存储系统 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种数据存储方法、数据存储设备和分布式存储系统。
背景技术
Cassandra是依赖分布式哈希表(Distributed Hash Table,DHT)技术实现的一种典型的无中心节点的环形结构的分布式存储系统。DHT是一种分布式存储技术,在不需要中心节点的情况下,每个存储节点负责一个小范围的路由,并负责存储小部分数据,从而实现整个DHT分布式集群的寻址和存储。
Cassandra的数据存储空间可以抽象为一个环形结构,数据就是通过hash(哈希)分散在这个环形存储空间上。分布式存储系统的每个节点负责管理这个环形存储空间上的某一块连续的范围(也叫Range),落在此Range空间上的数据就存储在这个节点上。如图1所示,在具有A/B/C/D四个节点规模的集群中,存储空间被划分成了R0/R1/R2/R3四个Range,每个节点负责的Range分布如下表所示:
例如,当数据的hash落在R0上时,这个数据就存储在节点B上。
Cassandra节点的角色分为两种:接入节点和数据节点。接入节点负责计算数据及副本的分布,数据节点负责数据副本的存储。在Cassandra系统中,每个节点都既作为接入节点,又作为数据节点而存在。
为了保证数据的可靠性,Cassandra一般要将数据写多份副本,并分散在不同的数据节点上。当某个副本由于磁盘故障或机器故障等异常而丢失,其他副本也能够正常提供访问,并能够在故障恢复后的某些条件下完成丢失副本的修复。
在Cassandra的生产环境下,一般会采用3副本策略:即对于每条数据记录(或者称为数据块)除了在一个数据节点存储原始数据之外,还要将数据的另外2个副本存储在其他两个数据节点中。如图2所示,数据块的hash落在R0空间范围内,则原始数据存储在节点B中,另外两个副本分别存储在节点C和节点D中。
从现有技术的实现来看,一条数据记录在Cassandra中存储,事实上需要存储三个数据副本,占用了大量的存储空间,冗余副本开销过大,造成空间浪费,存储服务成本过高。而若降低副本的数量,如改为两副本存储,又会极大降低数据的可靠性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储方法、数据存储设备和分布式存储系统。
根据本发明的一个方面,提供了一种数据存储方法,包括:
分布式存储系统的接入节点将用户写入的数据块切分成若干预定大小的数据分片;
采用冗余校验算法计算出切分得到的若干数据分片对应的若干校验分片;
将所述数据分片和所述校验分片存储到所述分布式存储系统的数据节点中,且每个数据分片和每个校验分片仅存储一个副本。
可选地,所述将所述数据分片和所述校验分片存储到所述分布式存储系统的数据节点中,包括:
分别计算各数据分片和各校验分片的数字签名;
根据各自的数字签名将各数据分片和各校验分片分别存储到所述分布式存储系统的一个数据节点中。
可选地,所述数据存储方法还包括:
对所有数字签名进行编码形成元数据;
将所述元数据存储到所述分布式存储系统的多个数据节点中。
可选地,所述采用冗余校验算法计算出切分得到的若干数据分片对应的若干校验分片,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310657140.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种施工围墙
- 下一篇:车载无线发射机的综合散热装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置