[发明专利]基于Bigtable存储系统的数据批量插入方法有效
申请号: | 201410010115.9 | 申请日: | 2014-01-09 |
公开(公告)号: | CN103731500B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 樊凯;史晓丽;李晖;谈苗苗 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 陕西电子工业专利中心61205 | 代理人: | 王品华,朱红星 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 bigtable 存储系统 数据 批量 插入 方法 | ||
技术领域
本发明属于数字信息存储技术领域,特别涉及基于Bigtable存储系统的数据批量插入方法,可用于存储系统的存储和管理。
背景技术
Bigtable存储系统是Google开发的第三项云计算关键技术,用于管理Google中的结构化数据。Bigtable是一个稀疏、分布式、持久化存储的多维有序映射表,表中的行关键字可以是任意字符串,目前最大支持64KB。Bigtable按照行关键字的字典序组织数据,表的行区间可以动态划分,每个行区间称为一个子表。子表是Bigtable中数据分布和负载均衡的基本单位,不同的子表可以有不同的大小,但为了限制移子表的移动成本和恢复成本,每个子表默认的最大尺寸为200MB。
Bigtable的架构如图1所示。数据以子表的形式存储在不同的子表服务器上,每个子表服务器管理一组子表,负责其上子表的读写请求,并在子表过大时进行子表分割。Bigtable中的数据按行区间进行划分,并以子表的形式分布到多个子表服务器,使数据请求得以并行处理。由于每个子表服务器可以包含几百个子表,且每个子表都可以分配到任意子表服务器。系统可以将过载服务器上的子表移动到较为空闲的服务器上,进行细粒度的负载均衡。Bigtable中的主服务器是一个单独的服务器,持有当前的子表分配信息,由主服务器负责系统的负载均衡。
在包括Google在内的许多大规模应用集群中,批量插入都是一种非常常见的操作。比如一个网络日志分析系统,每小时从世界各地的Web服务器中收集数据,然后批量插入数据库进行统计分析。在区间划分的数据存储系统中,必须小心地避免单台服务器过载,尤其是某一段键值区间是热点的时候。在Bigtable中并无专门针对批量插入的研究,Bigtable把批量插入看作一系列常规插入来处理。但由于Bigtable是区间划分的,即每个分区都对应一组关键字,并持有相应关键字的记录。因此,在现有的数据分区中进行批量插入,其分布非常不均。
由于负载集中于少量子表,主服务器和相关的子表服务器可能会过载,而其它子表服务器几乎没有什么负载,这样势必会严重影响相关子表服务器的性能,造成系统的整体吞吐量被拉低。如果在批量插入的同时还有常规的数据操作,与过载服务器相关的操作就会经历较大的时延,批量插入本身也会消耗很长时间。因此,Bigtable需要一种高效的批量插入方法,既能很好的解决常规方法在性能方面的不足,又不会给系统带来太大的开销。
发明内容
本发明目的在于提出一种基于Bigtable存储系统的数据批量插入方法,以解决Bigtable现有方法在处理批量插入时的数据分布不均和服务器过载所造成的系统吞吐量低、读写操作时延大的问题。
为实现上述目的,本发明的技术方案包括如下步骤:
(1)在数据批量插入Bigtable之前新增一组暂存服务器,将待插入的数据在批量插入之前先转移至暂存服务器;
(2)分别对暂存服务器中的数据和Bigtable存储系统中子表服务器内部的数据进行统计抽样,获取这两类服务器中数据的统计信息;
(3)Bigtable利用得到的这两类统计信息,对系统中子表服务器内部的子表进行预拆分;
(4)将拆分后的子表在子表服务器之间进行移动,使得拆分后的子表均匀存储在多台子表服务器上;
(5)将待插入数据并行插入到分割后的多个子表中。
本发明与现有技术相比具有以下优点:
第一,本发明通过引入一组暂存服务器,将输入的数据转移至暂存服务器,可以最大化批量插入的并行度;通过对暂存服务器中的数据进行随机化处理,使得插入负载更加均衡;
第二,本发明通过对子表进行预拆分,从而为数据的批量插入预留了空间,并通过为不同的子表选择不同的拆分点,使得子表在经过批量插入后的大小基本相等,从而简化了负载均衡和数据恢复;
第三,本发明通过给出了批量插入问题的一种全局最优解,在平衡插入成本的同时,兼顾了子表移动引入的移动成本。
附图说明
图1为现有Bigtable存储系统的架构图;
图2为现有Bigtable存储系统的存储格式图;
图3为本发明的实现总流程图;
图4为本发明中对暂存服务器中数据的统计抽样子流程图;
图5为本发明中对子表服务器中数据的统计抽样子流程图;
图6为本发明中对子表服务器内部的子表进行预拆分的子流程图;
图7为采用本发明的批量插入方法和Bigtable存储系统的常规插入方法在数据批量插入时的对比图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410010115.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于水泥基材料的磷渣微粉制备方法
- 下一篇:弹性存储服务系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置