[发明专利]分布式顺序表片内二级索引方法及系统在审
申请号: | 201410345063.0 | 申请日: | 2014-07-18 |
公开(公告)号: | CN104133867A | 公开(公告)日: | 2014-11-05 |
发明(设计)人: | 查礼;万浩;程学旗 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 顺序 表片内 二级 索引 方法 系统 | ||
技术领域
本发明涉及分布式顺序表信息处理技术,特别涉及一种分布式顺序表片内二级索引方法及系统。
背景技术
分布式顺序表(Distributed Ordered Table简称DOT)是一种最适用于海量数据下多维区间查询的数据库系统,与本专利相关的现有技术是一个名为“一种对分布式顺序表进行多维区间查询的方法及其系统”的专利,专利号为201210517589.3,其实现方案包括,分别为所述分布式顺序表的每个索引列创建一张对应的二级索引表,各索引列对应的二级索引表的主键为该列值、所述分布式顺序表的主键值和该列值的长度三者的拼接值;当接收到区间查询请求时,依据所述查询请求的字段名称,从各所述二级索引表中查找所述字段名称对应的二级索引表,依据所述查询请求的字段值,从所述对应的二级索引表中查找所述查询请求字段值对应的记录位置,直接从所述分布式顺序表中的该记录位置读取相应的数据。该现有技术的缺点和不足包括如下几个方面:
(1)需要更改原来机制或增加新的机制来保证数据和索引的一致性。因为分布式顺序表缺少跨表、跨行的事务支持,所以必须要更改原有的预写日志机制或者额外添加一致性保证机制来保证索引和数据的一致性。
(2)数据写入性能下降严重。由于额外的索引操作开销,在对表进行写入操作的时候的性能将会有很大下降,而且索引越多,写入性能下降也越多。
(3)查询性能不好,仅对较小的查询有加速效果。对于大多数多维区间查询,这种索引带来的速度提升很有限,因为数据表数据读取速度慢,客户端和服务端的来回网络开销大,只有在查询很小的时候才相对于全表扫描有速度上的优势。
(4)索引带来的额外存储开销较大。直接使用存储数据的数据结构来存储索引,没有针对索引存储的特点进行优化,会存储一些无用的数据,存储开销较大。
(5)一次查询不能使用多列索引。在一次多维区间查询中,因为索引的读取和对数据表的读取都在客户端完成,客户端资源有限,在面对存储海量数据的分布式顺序表的时候,客户端难以完成多个索引数据合并的任务。索引不能用于带聚集函数的服务端计算。服务端计算是单独处理每个数据分片,对局部数据进行计算,该索引是一种全局的索引,无法对索引进行划分获得局部数据对应的索引。
发明人在进行分布式顺序表索引及多维区间查询技术研究时,发现现有技术中的缺陷是因为在较高的存储层级,即表级维护索引,没有针对索引存储、使用特点,以及分布式顺序表设计原理、内部结构特点来设计和优化索引导致的,发明人经过对索引和分布式顺序表的特点进行深入研究发现,解决该项缺陷可以通过在更低的存储级别,即存储文件级来维护索引,重新设计专用的索引存储结构,充分利用分布式顺序表的框架来维护和管理索引的方法来实现。
发明内容
为解决上述问题,本发明提出了一种分布式顺序表片内二级索引方法及系统,本发明通过对索引和分布式顺序表的特点进行深入研究,重新设计索引存储结构,来减小索引存储开销,提高索引查询性能,解决了一次查询不能使用多列索引,索引不能用于服务端计算等问题,通过一致性更新模块、合并和分裂模块保证索引和数据的一致性,通过内存存储刷写模块提高数据写入性能。
为了达到本发明的目的,本发明提供了一种分布式顺序表片内二级索引方法,包括如下步骤:
S1索引布局管理步骤,为分布式顺序表的每个数据分片中的每个数据存储文件创建对应的索引存储文件,该索引存储文件存储列名、列值、主键;
S2一致性更新步骤,向该分布式顺序表写入数据时,先将该数据写入预写日志中,再写入内存存储中,若该内存存储中该数据部分丢失,将该预写入日志中未成功写入磁盘上的该数据重新写入该内存存储中;
S3内存存储刷写步骤,若该内存存储存量达到某阈值,先生成该内存存储中类型不为“删除”的数据记录对应的索引记录,并刷写该索引记录到该磁盘上生成该索引存储文件,再刷写数据记录到磁盘上生成该数据存储文件;
S4合并和分裂步骤,在数据分片合并时,先将多个索引存储文件合并成一个新的索引存储文件,再将对应的多个数据存储文件合并成一个新的数据存储文件;以及
在该数据片按照某主键分裂成两个新数据分片时,首先将该数据分片内的每个索引存储文件按照该主键分裂成两个新索引存储文件后分别加入到所述两个新数据分片中,然后再把该数据分片内的每个数据存储文件按照该主键分裂成两个新数据存储文件后分别加入到所述的两个新的数据分片中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410345063.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用户标签的生成方法和装置
- 下一篇:搜索页面评论方法及装置