数据处理的方法、装置及系统制造方法及图纸

技术编号:20865987 阅读:24 留言:0更新日期:2019-04-17 09:15
本发明专利技术公开了一种数据处理的方法、装置及系统,涉及信息技术领域,为解决检索请求大量占用系统内存的问题而发明专利技术。本发明专利技术的方法包括:对检索请求涉及的文件集合进行分组,获得多个文件子集;为第一个文件子集分配缓存,以读取第一个文件子集中的数据;在第一个文件子集中的数据读取完毕后,释放第一个文件子集的缓存,并为下一文件子集分配缓存,以读取下一文件子集中的数据;在读取到各个文件子集的数据后,对所有文件子集的数据进行合并,得到向客户端返回的用户数据。本发明专利技术主要应用于基于分布式存储系统的数据检索过程中。

【技术实现步骤摘要】
数据处理的方法、装置及系统本专利技术是申请日为2014年10月29日、申请号为2014105946768、专利技术名称为《数据处理的方法、装置及系统》的分案申请。
本专利技术涉及信息
,尤其涉及一种数据处理的方法、装置及系统。
技术介绍
Cassandra是一种无中心节点的存储系统,根据哈希Hash算法将数据均等的分散到不同的节点中。与传统的集中式存储系统相比,分布式存储系统可以改善数据集中存储导致的系统性能受限的问题,能够提高数据存储、数据查询及数据处理的效率,更加适应大规模数据存储的场景。MemTable是在分布式节点内存中分配的一定大小的空间,用来存放用户写入的数据。当用户向节点写入数据时,写入的数据会直接追加到节点内存中的MemTable中。当MemTable数据写满后,节点会将MemTable中的所有数据转存储(dump)到磁盘上,形成一个有序字符串表(SortedStringTable,简称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文件分配大量的缓存。由于缓存的分配是以系统内存为支持的,因而分配过多缓存会占用大量的系统内存,使得检索请求的并发吞吐量急剧下降。
技术实现思路
鉴于上述问题,本专利技术提供了一种数据处理的方法、装置及系统,能够解决检索请求大量占用系统内存的问题。为解决该技术问题,本专利技术第一方面提供了一种数据处理的方法,包括:对检索请求涉及的文件集合进行分组,获得多个文件子集;为第一个文件子集分配缓存,以读取第一个文件子集中的数据;在第一个文件子集中的数据读取完毕后,释放第一个文件子集的缓存,并为下一文件子集分配缓存,以读取下一文件子集中的数据;在读取到各个文件子集的数据后,对所有文件子集的数据进行合并,得到向客户端返回的用户数据。本专利技术第二方面提供了一种数据处理的装置,包括:分组单元,用于对检索请求涉及的文件集合进行分组,获得多个文件子集;分配单元,用于为分组单元划分的第一个文件子集分配缓存;读取单元,用于从分配单元分配的缓存中读取分组单元划分的第一个文件子集中的数据;分配单元,还用于在第一个文件子集中的数据读取完毕后,释放第一个文件子集的缓存,并为分组单元划分的下一文件子集分配缓存;读取单元,还用于从分配单元分配的缓存中读取分组单元划分的下一文件子集中的数据;处理单元,用于在读取单元读取到各个文件子集的数据后,对读取单元读取的所有文件子集的数据进行合并,得到向客户端返回的用户数据。本专利技术第三方面提供了一种数据处理的系统,包括:客户端及存储节点,其中,存储节点包括如上第二方面所指的装置。借由上述技术方案,本专利技术提供的数据处理的方法、装置及系统,能够对检索请求涉及的文件集合进行分组,对分组后的多个文件子集先后分配缓存读取数据,并将各个文件子集中读取的数据进行合并从而获得返回客户端用户数据。与现有技术中同时为所有文件分配缓存相比,本专利技术能够将一个完整的检索过程分解为多个子检索过程进行先后执行,从而实现对缓存需求的时序分解。由于将空间维度中的缓存需求分解到了时间维度上,因此检索请求在某个时刻上所占用的系统内存大大缩小,这种“并行”转“串行”的方式可以使系统内存同时支持更多的检索请求,由此提高系统的并发吞吐量。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例中一种数据处理的方法流程图;图2示出了本专利技术应用场景中一种数据处理的流程图;图3示出了本专利技术实施例中一种数据处理的装置的结构示意图;图4示出了本专利技术实施例中另一种数据处理的装置的结构示意图;图5示出了本专利技术实施例中一种数据处理的系统示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了节省Cassandra存储系统的内存资源,以使Cassandra系统可以同时支持更多的检索请求,本专利技术实施例提供了一种数据处理的方法。如图1所示,该方法包括:101、对检索请求涉及的文件集合进行分组,获得多个文件子集。Cassandra存储系统中的任何节点都可以作为接入节点,即接收、转发客户端检索请求,汇总并反馈检索结果。而同一个关键值KEY的数据SStable在分布式存储系统上会存在多个数据节点之上,每个节点都会负责从自己所管辖的文件集合中进行检索,检索结果会反馈给接入节点。接入节点汇总处理后反馈给客户端。如前所述,一个检索请求中的关键值往往会涉及众多文件,换言之,分布式存储系统中的多个文件均包含关键值的数据,因此,一个检索请求往往涉及多个文件,本实施例将一条检索请求涉及的多个文件以文件集合的方式进行表述。示例性的,当检索条件中包含关键词“专利”时,系统会从各个存储节点中查找所有包含关键词“专利”的文件,包括文档、表格、音视频等文件,获得由这些文件组成的文件集合。与现有技术不同的是,在获得文件集合后,系统会对文件集合进行分组,将其划分为多个文件子集。本实施例中,对文件集合进行分组的目的在于,将检索过程分解为多个子过程,以便后续对多本文档来自技高网
...

【技术保护点】
1.一种数据处理的方法,其特征在于,所述方法包括:对检索请求涉及的文件集合进行分组,获得多个文件子集;为第一个文件子集分配缓存,以读取所述第一个文件子集中的数据;在所述第一个文件子集中的数据读取完毕后,释放所述第一个文件子集的缓存,并为下一文件子集分配缓存,以读取所述下一文件子集中的数据;在读取到各个文件子集的数据后,对所有文件子集的数据进行合并,得到向客户端返回的用户数据。

【技术特征摘要】
1.一种数据处理的方法,其特征在于,所述方法包括:对检索请求涉及的文件集合进行分组,获得多个文件子集;为第一个文件子集分配缓存,以读取所述第一个文件子集中的数据;在所述第一个文件子集中的数据读取完毕后,释放所述第一个文件子集的缓存,并为下一文件子集分配缓存,以读取所述下一文件子集中的数据;在读取到各个文件子集的数据后,对所有文件子集的数据进行合并,得到向客户端返回的用户数据。2.根据权利要求1所述的方法,其特征在于,所述对检索请求涉及的文件集合进行分组,包括:根据当前的内存占用情况确定分组系数;通过所述分组系数以及所述文件集合中的文件总数,对所述文件集合进行分组;其中,当前内存占用比例与分组后的文件子集数量之间呈正相关关系。3.根据权利要求2所述的方法,其特征在于,所述分组系数为每个文件子集中的文件数量,所述文件数量与所述当前内存占用比例之间呈负相关关系。4.根据权利要求2所述的方法,其特征在于,所述分组系数为文件子集对所述文集集合的集合占比,所述集合占比与所述当前内存占用比例之间呈负相关关系。5.根据权利要求2所述的方法,其特征在于,所述分组系数为文件子集数量,所述文件子集数量与所述当前内存占用比例之间呈正相关关系。6.根据权利要求1所述的方法,其特征在于,在所述对检索请求涉及的文件集合进行分组之前,所述方法进一步包括:当存在多个检索请求时,对检索对象...

【专利技术属性】
技术研发人员:王锋
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

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

1