[发明专利]数据处理的方法、装置及系统在审
申请号: | 201811617963.0 | 申请日: | 2014-10-29 |
公开(公告)号: | CN109634933A | 公开(公告)日: | 2019-04-16 |
发明(设计)人: | 王锋 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/172;G06F16/2455 |
代理公司: | 北京鼎佳达知识产权代理事务所(普通合伙) 11348 | 代理人: | 王伟锋;刘铁生 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件子集 读取 缓存 装置及系统 检索请求 数据处理 分布式存储系统 数据检索过程 信息技术领域 数据读取 所有文件 文件集合 系统内存 用户数据 客户端 分配 子集 占用 分组 合并 释放 返回 应用 | ||
本发明公开了一种数据处理的方法、装置及系统,涉及信息技术领域,为解决检索请求大量占用系统内存的问题而发明。本发明的方法包括:对检索请求涉及的文件集合进行分组,获得多个文件子集;为第一个文件子集分配缓存,以读取第一个文件子集中的数据;在第一个文件子集中的数据读取完毕后,释放第一个文件子集的缓存,并为下一文件子集分配缓存,以读取下一文件子集中的数据;在读取到各个文件子集的数据后,对所有文件子集的数据进行合并,得到向客户端返回的用户数据。本发明主要应用于基于分布式存储系统的数据检索过程中。
本发明是申请日为2014年10月29日、申请号为2014105946768、发明名称为《数据处理的方法、装置及系统》的分案申请。
技术领域
本发明涉及信息技术领域,尤其涉及一种数据处理的方法、装置及系统。
背景技术
Cassandra是一种无中心节点的存储系统,根据哈希Hash算法将数据均等的分散到不同的节点中。与传统的集中式存储系统相比,分布式存储系统可以改善数据集中存储导致的系统性能受限的问题,能够提高数据存储、数据查询及数据处理的效率,更加适应大规模数据存储的场景。
MemTable是在分布式节点内存中分配的一定大小的空间,用来存放用户写入的数据。当用户向节点写入数据时,写入的数据会直接追加到节点内存中的MemTable中。当MemTable数据写满后,节点会将MemTable中的所有数据转存储(dump)到磁盘上,形成一个有序字符串表(Sorted StringTable,简称SSTable)文件,从而完成对写入数据的存储,也就是说,数据是以SSTable文件格式存储在节点磁盘上的。通常,节点中的每个SSTable文件都会存储一组任意有序的键值(Key)对,Key作为SSTable文件的关键值,用于对SSTable文件中的数据进行标识(在客户端层面上,可以将Key简单理解为存储或查找数据的关键词)。对于每个Key而言,用户可以在同一时刻向节点写入同一Key值的多列(Column)信息,也可以在不同时刻向节点写入同一Key的多列Column。由于MemTable会在内存写满后转储SSTable文件,因此同一Key在不同时刻写入到MemTable中的Column会被持久化到不同的SSTable文件中,由此使得同一个Key会对应到不同的SSTable文件里。此外,客户端对对应某一Key数据的不定期修改也会导致同一个Key会分散到不同的SSTable文件中。
目前对于Cassandra这种分布式存储系统而言,当客户端检索某个Key的数据时,系统首先要找到所有包含该Key的SSTable文件,然后从这些文件中读取该Key的所有相关数据到缓存中,并对这些数据进行合并后返回给客户端。
在上述检索数据的过程中,发明人发现现有技术中至少存在如下问题:系统需要为每个SSTable文件分配一段缓存空间,以存储该SSTable文件中与Key相关的数据。实际应用中,当某个检索请求涉及的SSTable文件数量较少时,系统的缓存开销相对较少,但是随着时间的推移,同一个key的相关数据会分散到越来越多的SSTable文件中去,因此在进行检索请求时,系统会为SSTable文件分配大量的缓存。由于缓存的分配是以系统内存为支持的,因而分配过多缓存会占用大量的系统内存,使得检索请求的并发吞吐量急剧下降。
发明内容
鉴于上述问题,本发明提供了一种数据处理的方法、装置及系统,能够解决检索请求大量占用系统内存的问题。
为解决该技术问题,本发明第一方面提供了一种数据处理的方法,包括:
对检索请求涉及的文件集合进行分组,获得多个文件子集;
为第一个文件子集分配缓存,以读取第一个文件子集中的数据;
在第一个文件子集中的数据读取完毕后,释放第一个文件子集的缓存,并为下一文件子集分配缓存,以读取下一文件子集中的数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811617963.0/2.html,转载请声明来源钻瓜专利网。