分布式数据存储方法及系统技术方案

技术编号:9312312 阅读:132 留言:0更新日期:2013-11-06 18:45
一种分布式数据存储方法,包括以下步骤:获取数据资源和与所述数据资源对应的数据标识;计算所述数据标识的哈希值;根据所述哈希值计算所述数据资源对应的磁盘页在存储单元中的页号和所述磁盘页中的磁盘块的块号;根据所述磁盘页的页号和磁盘块的块号将所述数据资源存储到对应的所述磁盘页的所述磁盘块中。此外,还提供了一种分布式数据存储系统。上述分布式数据存储方法和系统可以减小内存损耗,提高存储效率。

【技术实现步骤摘要】

本专利技术涉及分布式存储领域,特别涉及一种分布式数据存储方法及系统。
技术介绍
分布式存储即将数据资源分散存储在多台独立的设备上,每台设备即为用于存储数据的独立的存储单元。传统的网络存储系统采用集中的存储服务器存放所有数据资源,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。而分布式存储采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。通常当数据量达到TB甚至PB时,对数据资源进行分布式存储。传统技术中的分布式数据存储方法中,预设有全局索引。全局索引中以键值对的形式记录了数据资源的数据标识和数据对应的存储区域。例如,若全局索引中A资源对应1号磁盘,B资源对应2号磁盘,则A资源存储于1号磁盘上,B资源存储于2号磁盘上,通常采用数据库存储该全局索引。当全局索引较大时,则采用分表的形式存储。传统技术中的分布式数据存储方法为了提高查询效率,避免与硬盘的I/O(硬盘读写)操作,全局索引存储于内存中。当存储的单条数据较小时,全局索引会变得非常庞大,且全局索引会随着数据量的增大而增大,从而占用大量内存。例如,web应用中需要存储大量的图片或图标文件作为素材。图片或图标文件通常单个文件占用的存储空间较小,但文件数量庞大,需要在全局索引中存在与其对应的庞大的索引项,从而消耗了大量内存
技术实现思路
基于此,有必要提供一种降低内存消耗的分布式数据存储方法。一种分布式数据存储方法,包括以下步骤:获取数据资源和与所述数据资源对应的数据标识;计算所述数据标识的哈希值;根据所述哈希值计算所述数据资源对应的磁盘页在存储单元中的页号和所述磁盘页中的磁盘块的块号;根据所述磁盘页的页号和磁盘块的块号将所述数据资源存储到对应的所述磁盘页的所述磁盘块中。此外,还提供了一种相应的降低内存消耗的分布式数据存储方法。一种分布式数据存储方法,所述数据存储于存储单元的磁盘页中,所述磁盘页包括基本页和溢出页,包括以下步骤:获取数据资源和与所述数据资源对应的数据标识;计算所述数据标识的哈希值;根据所述哈希值计算所述数据资源对应的基本页在存储单元中的页号和所述基本页中的磁盘块的块号;根据所述基本页的页号和磁盘块的块号将所述数据资源存储到对应的所述基本页的所述磁盘块中。在其中一个实施例中,所述基本页中的磁盘块还包括块头区域,所述块头区域内存储有所述磁盘块和溢出页中的磁盘块之间的对应关系;所述方法还包括:当所述基本页的磁盘块的空间不足时,根据所述磁盘块的块头区域内存储的所述对应关系将所述数据资源存储到所述基本页和与所述基本页中的磁盘块对应的溢出页中的磁盘块中。在其中一个实施例中,所述根据所述磁盘页/基本页的页号和磁盘块的块号将所述数据资源存储到对应的所述磁盘页/基本页的所述磁盘块中的步骤包括:根据所述磁盘页/基本页的页号和磁盘块的块号将所述数据资源以类型-长度-数据的形式存储到对应的所述磁盘页/基本页的所述磁盘块中。在其中一个实施例中,在所述根据所述哈希值计算所述数据资源对应的磁盘页/基本页在存储单元中的页号和所述磁盘页/基本页中的磁盘块的块号的步骤之前,还包括:根据所述哈希值获取所述数据资源对应的存储单元,每个所述的存储单元对应多个哈希值。在其中一个实施例中,所述方法还包括:当需扩容时,添加扩容存储单元;获取存储单元对应的至少1个哈希值;将所述至少1个哈希值在所述存储单元中对应的数据资源移动到所述扩容存储单元中;将所述至少1个哈希值与所述存储单元之间的对应关系更改为所述至少1个哈希值与所述扩容存储单元之间的对应关系。此外,还有必要提供一种降低内存消耗的分布式数据存储系统。一种分布式数据存储系统,包括:数据资源获取模块,用于获取数据资源和与所述数据资源对应的数据标识;哈希值计算模块,用于计算所述数据标识的哈希值;磁盘块定位模块,用于根据所述哈希值计算所述数据资源对应的磁盘页在存储单元中的页号和所述磁盘页中的磁盘块的块号;数据资源存储模块,用于根据所述磁盘页的页号和磁盘块的块号将所述数据资源存储到对应的所述磁盘页的所述磁盘块中。此外,还提供了一种相应的降低内存消耗的分布式数据存储系统。一种分布式数据存储系统,所述数据存储于存储单元的磁盘页中,磁盘页包括基本页和溢出页,包括以下模块:数据资源获取模块,用于获取数据资源和与所述数据资源对应的数据标识;哈希值计算模块,用于计算所述数据标识的哈希值;磁盘块定位模块,用于根据所述哈希值计算所述数据资源对应的基本页在存储单元中的页号和所述基本页中的磁盘块的块号;数据资源存储模块,用于根据所述基本页的页号和磁盘块的块号将所述数据资源存储到对应的所述基本页的所述磁盘块中。在其中一个实施例中,所述基本页中的磁盘块还包括块头区域,所述块头区域内存储有所述磁盘块和溢出页中的磁盘块之间的对应关系;所述数据资源存储模块还用于当所述基本页的磁盘块的空间不足时,根据所述磁盘块的块头区域内存储的所述对应关系将所述数据资源存储到所述基本页和与所述基本页中的磁盘块对应的溢出页中的磁盘块中。在其中一个实施例中,所述数据资源存储模块还用于根据所述磁盘页/基本页的页号和磁盘块的块号将所述数据资源以类型-长度-数据的形式存储到对应的所述磁盘页/基本页的所述磁盘块中。在其中一个实施例中,所述系统还包括:存储单元路由模块,用于根据所述哈希值获取所述数据资源对应的存储单元,每个所述的存储单元对应多个哈希值。在其中一个实施例中,所述系统还包括:扩容模块,用于当需扩容时添加扩容存储单元,获取存储单元对应的至少1个哈希值,将所述至少1个哈希值在所述存储单元中对应的数据资源移动到所述扩容存储单元中;所述扩容模块还用于将所述至少1个哈希值与所述存储单元之间的对应关系更改为所述至少1个哈希值与所述扩容存储单元之间的对应关系。上述分布式数据存储方法和系统,由于存储单元划分多个磁盘页/基本页,而磁盘页/基本页又包含多个磁盘块,根据数据资源的数据标识定位数据资源对应的磁盘页/基本页和磁盘块,并将数据资源存储到对应的磁盘块中。当磁盘块的物理位置连续排列时,不需要在内存中维护数据标识和数据存储位置的全局索引;当磁盘块的物理本文档来自技高网
...

【技术保护点】
一种分布式数据存储方法,包括以下步骤:获取数据资源和与所述数据资源对应的数据标识;计算所述数据标识的哈希值;根据所述哈希值计算所述数据资源对应的磁盘页在存储单元中的页号和所述磁盘页中的磁盘块的块号;根据所述磁盘页的页号和磁盘块的块号将所述数据资源存储到对应的所述磁盘页的所述磁盘块中。

【技术特征摘要】
1.一种分布式数据存储方法,包括以下步骤:
获取数据资源和与所述数据资源对应的数据标识;
计算所述数据标识的哈希值;
根据所述哈希值计算所述数据资源对应的磁盘页在存储单元中的页号和所
述磁盘页中的磁盘块的块号;
根据所述磁盘页的页号和磁盘块的块号将所述数据资源存储到对应的所述
磁盘页的所述磁盘块中。
2.一种分布式数据存储方法,其特征在于,所述数据存储于存储单元的磁
盘页中,所述磁盘页包括基本页和溢出页,包括以下步骤:
获取数据资源和与所述数据资源对应的数据标识;
计算所述数据标识的哈希值;
根据所述哈希值计算所述数据资源对应的基本页在存储单元中的页号和所
述基本页中的磁盘块的块号;
根据所述基本页的页号和磁盘块的块号将所述数据资源存储到对应的所述
基本页的所述磁盘块中。
3.根据权利要求2所述的分布式数据存储方法,其特征在于,所述基本页
中的磁盘块还包括块头区域,所述块头区域内存储有所述磁盘块和溢出页中的
磁盘块之间的对应关系;
所述方法还包括:
当所述基本页的磁盘块的空间不足时,根据所述磁盘块的块头区域内存储
的所述对应关系将所述数据资源存储到所述基本页和与所述基本页中的磁盘块
对应的溢出页中的磁盘块中。
4.根据权利要求1或2所述的分布式数据存储方法,其特征在于,所述根
据所述磁盘页/基本页的页号和磁盘块的块号将所述数据资源存储到对应的所述
磁盘页/基本页的所述磁盘块中的步骤包括:
根据所述磁盘页/基本页的页号和磁盘块的块号将所述数据资源以类型-长
度-数据的形式存储到对应的所述磁盘页/基本页的所述磁盘块中。
5.根据权利要求1至4任意一项所述的分布式数据存储方法,其特征在于,
在所述根据所述哈希值计算所述数据资源对应的磁盘页/基本页在存储单元中的
页号和所述磁盘页/基本页中的磁盘块的块号的步骤之前,还包括:
根据所述哈希值获取所述数据资源对应的存储单元,每个所述的存储单元
对应多个哈希值。
6.根据权利要求5所述的分布式数据存储方法,其特征在于,所述方法还
包括:
当需扩容时,添加扩容存储单元;
获取存储单元对应的至少1个哈希值;
将所述至少1个哈希值在所述存储单元中对应的数据资源移动到所述扩容
存储单元中;
将所述至少1个哈希值与所述存储单元之间的对应关系更改为所述至少1
个哈希值与所述扩容存储单元之间的对应关系。
7.一种...

【专利技术属性】
技术研发人员:李雅卿朱建平程彬
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1