CN109446114A - 一种空间数据缓存方法、装置和存储介质 - Google Patents

一种空间数据缓存方法、装置和存储介质 Download PDF

Info

Publication number
CN109446114A
CN109446114A CN201811191662.6A CN201811191662A CN109446114A CN 109446114 A CN109446114 A CN 109446114A CN 201811191662 A CN201811191662 A CN 201811191662A CN 109446114 A CN109446114 A CN 109446114A
Authority
CN
China
Prior art keywords
data
data block
block
space
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811191662.6A
Other languages
English (en)
Other versions
CN109446114B (zh
Inventor
李宗祥
严国友
孙波
孙一波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, MIGU Culture Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201811191662.6A priority Critical patent/CN109446114B/zh
Publication of CN109446114A publication Critical patent/CN109446114A/zh
Application granted granted Critical
Publication of CN109446114B publication Critical patent/CN109446114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种空间数据缓存方法,包括:接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。本发明还公开了一种空间数据缓存装置和计算机可读存储介质。

Description

一种空间数据缓存方法、装置和存储介质
技术领域
本发明涉及大数据存储技术,尤其涉及一种空间数据缓存方法、装置和计算机可读存储介质。
背景技术
随着大数据处理技术地日渐成熟,海杜普(Hadoop)成为大数据处理的热门工具。Hadoop将数据分散存储在数据节点(DataNode)集群中,在运行映射归约(MapReduce)任务时,根据数据的分布来决定将任务分配到哪台机器上,实现高效的分布式计算。Hadoop本身是输入/输出(I/O,Input/Output)密集型的数据处理框架,I/O效率对其性能的影响至关重要,而缓存技术可以有效的减少I/O操作次数,提升I/O性能,优化Hadoop集群的性能。
Hadoop本身提供了一种缓存机制,可以允许用户配置要缓存的文件,当一个文件被设置为要被缓存的文件后,DataNode将该文件涉及的数据块加入堆外内存进行缓存,用以提升该文件的访问效率。
Hadoop还可以采用基于索引的缓存机制,例如基于四叉树的分布式空间数据索引;其用四叉树划分空间区域,每个四叉树的叶节点存储一定量的空间数据,将多个叶节点存储在数据块中,并通过Hadoop自身的分布式存储机制分布地存储在DataNode集群中。基于这种索引结构设计了两级缓存:a.首先是DataNode端的缓存,在DataNode端设置对数据块的缓存,使用页面置换(LRU,Least Recently Used)算法进行缓存数据的管理,根据用户对数据块的访问频度进行缓存数据淘汰。b.客户端的缓存,在客户端建立面向四叉树叶节点的缓存,将客户端频繁访问的四叉树叶节点缓存起来,缓存的管理也直接依据LRU算法。
Hadoop本身的缓存粒度一般只到文件级,且其缓存机制只是针对数据块(Block)本身的,然而实际应用***中Hadoop处理的数据往往是有关联的,例如包含空间位置信息的微博数据、咪咕善跑用户的跑步轨迹数据等。如果仅使用Hadoop自身的缓存机制,当用户访问相邻区域时,如果相邻的区域不在内存中,就需要到磁盘上读取相应的数据,从而增加了磁盘I/O,可能会降低缓存的命中率,导致***效率降低。
发明内容
有鉴于此,本发明的主要目的在于提供一种空间数据缓存方法、装置和计算机可读存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种空间数据缓存方法,应用于数据节点,所述方法包括:
接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;
确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;
确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
上述方案中,所述确定所述数据块的优先级,包括:
确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;
获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;
根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
上述方案中,所述根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限,包括:
确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
上述方案中,针对请求读取的数据块,所述确定所述数据块的访问频度,包括:
确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;
根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
上述方案中,针对请求写入的数据块,所述确定所述数据块的访问频度,包括:
确定所述缓存队列中所述数据块的相邻数据块;
确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;
根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;
根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
上述方案中,确定所述数据块与参考缓存块之间的空间距离,包括:
确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;
确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;
根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
上述方案中,所述方法还包括:确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;
所述根据预设策略处理所述数据块,包括:
针对请求读取的数据块,删除所述数据块;
针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入所述数据节点。
本发明实施例提供了一种空间数据缓存方法,应用于客户端,所述方法包括:
调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;
确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;
根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
上述方案中,所述确定所述第一数据和第二数据的参考空间距离,包括:
确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;
确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;
根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
上述方案中,所述根据所述参考空间距离确定是否删除所述第一数据,包括:
判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
本发明实施例提供了一种空间数据缓存装置,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,
所述第一处理模块,用于接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;
所述第二处理模块,用于确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;
所述第三处理模块,用于确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
上述方案中,所述第三处理模块,具体用于确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;
获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;
根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
上述方案中,所述第三处理模块,具体用于确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
上述方案中,所述第三处理模块,具体用于针对请求读取的数据块,确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;
根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
上述方案中,所述第三处理模块,具体用于针对请求写入的数据块,确定所述缓存队列中所述数据块的相邻数据块;
确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;
根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;
根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
上述方案中,所述第三处理模块,具体用于确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;
确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;
根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
上述方案中,所述第三处理模块,还用于确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;
所述第三处理模块,具体用于针对请求读取的数据块,删除所述数据块;针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入数据节点。
本发明实施例提供了一种空间数据缓存装置,所述装置包括:第四处理模块、第五处理模块和第六处理模块;其中,
所述第四处理模块,用于调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;
所述第五处理模块,用于确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;
所述第六处理模块,用于根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
上述方案中,所述第五处理模块,具体用于确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;
确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;
根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
上述方案中,所述第六处理模块,具体用于判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
本发明实施例提供了一种空间数据缓存装置,所述装置包括:第一处理器和用于存储能够在第一处理器上运行的计算机程序的第一存储器;其中,
所述第一处理器用于运行所述计算机程序时,执行数据节点侧的任一项所述空间数据缓存方法的步骤。
本发明实施例提供了一种空间数据缓存装置,所述装置包括:第二处理器和用于存储能够在第二处理器上运行的计算机程序的第二存储器;其中,
所述第二处理器用于运行所述计算机程序时,执行客户端侧的任一项所述空间数据缓存方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现数据节点侧的任一项所述空间数据缓存方法的步骤;或者,所述计算机程序被处理器执行时实现客户端侧的任一项所述空间数据缓存方法的步骤。
本发明实施例所提供的空间数据缓存方法、装置和计算机可读存储介质,接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。本发明实施例中,结合数据间的空间距离关联性对缓存进行管理,提高缓存的命中率,从而提高读或写的效率。
附图说明
图1为本发明实施例提供的一种空间数据缓存方法的流程示意图;
图2为本发明实施例提供的一种四叉树分布式索引结构的结构示意图。
图3为本发明实施例提供的一种子区域空间距离的示意图;
图4为本发明实施例提供的另一种空间数据缓存方法的流程示意图;
图5为本发明实施例提供的一种两级缓存的Hadoop平台的结构示意图;
图6为本发明实施例提供的一种数据节点的缓存结构的示意图;
图7为本发明实施例提供的基于四叉树索引的平面空间等分的示意图;
图8为本发明实施例提供的数据节点读取数据块的缓存方法的流程示意图;
图9为本发明实施例提供的数据节点写入数据块的缓存方法的流程示意图;
图10为本发明实施例提供的Map结构的结构示意图;
图11为本发明实施例提供的客户端的缓存方法的流程示意图;
图12为本发明实施例提供的空间数据缓存装置一的结构示意图;
图13为本发明实施例提供的空间数据缓存装置二的结构示意图;
图14为本发明实施例提供的空间数据缓存装置三的结构示意图;
图15为本发明实施例提供的空间数据缓存装置四的结构示意图。
具体实施方式
在本发明的各种实施例中,接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
下面结合实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的一种空间数据缓存方法的流程示意图;所述方法可以应用于数据节点,如图1所示,所述方法包括:
步骤101、接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块。
步骤102、确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列。
这里,所述数据节点可以包括:
缓存预写入队列,用于存放有可能写入缓存队列的数据块。
缓存队列(也称优先级队列),用于根据数据块的优先级确定是否将数据块存入缓存队列。
Hadoop预写入队列,用于存储即将写入Hadoop的数据块。
步骤103、确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
所述数据块的优先级,考虑到数据块的访问频度,以及所述数据块与热点数据块之间的空间距离。
具体地,所述确定所述数据块的优先级,包括:
确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;
获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;
根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
这里,所述优先级为所述访问频度和所述第一权重的乘积、与所述空间距离和所述第二权重的乘积之和。所述第一权重和所述第二权重可以由Hadoop平台的维护人员预先设定并保存。
这里,所述缓存块指已加入所述缓存队列中的数据块。
具体地,所述数据块可以为请求读取的数据块或请求写入的数据块。
具体来说,针对请求读取的数据块,所述确定所述数据块的访问频度,包括:
确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;
根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
具体来说,针对请求写入的数据块,所述确定所述数据块的访问频度,包括:
确定所述缓存队列中所述数据块的相邻数据块;
确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;
根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;
根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
这里,所述方法还包括:确定所述相邻数据块和所述数据块之间的空间距离;具体包括:确定所述相邻数据块对应的空间区域的中心点坐标和所述数据块对应的空间区域的中心点坐标;根据确定的两个中心点坐标确定空间距离。
具体地,确定所述数据块与参考缓存块之间的空间距离,包括:
确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;
确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;
根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
具体地,所述根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限,包括:
确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
本实施例中,所述方法还包括:确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块。
所述根据预设策略处理所述数据块,包括:
针对请求读取的数据块,删除所述数据块;
针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入所述数据节点。
需要说明的是,本实施例的Hadoop采用基于四叉树分布式索引的缓存机制,如图2所示,为本发明实施例提供的一种四叉树分布式索引结构的结构示意图。采用四叉树可以将数据空间划分为不相交多个子区域,因此可以用四叉树来划分空间数据集。本实施例中,不再将数据只存储到索引的叶节点中,而是给索引的每个节点都关联一个数据块,并在数据块中存储索引的数据。当有新数据要***,先找到新数据要***的节点,查看该节点关联的数据块是否已满,如果满了则按四叉树的规则***这个节点生成四个子节点,再将数据***相应的子节点中向Hadoop申请数据块来存储;否则,直接将数据追加写入该叶节点关联的数据块中。这样每个数据块都是属于某个被划分的子区域,从而拥有了空间位置信息。
图3为本发明实施例提供的一种子区域空间距离的示意图;如图3所示,各节点可以生成四个子节点,图中A、B、……、K为各个子节点的中心点,根据中心点的坐标可以确定各子节点之间的空间距离,即可以计算各子节点关联的数据块之间的空间距离。
图4为本发明实施例提供的另一种空间数据缓存方法的流程示意图;所述方法应用于Hadoop平台的客户端,如图4所示,所述方法包括:
步骤201、调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据。
这里,各数据的访问频度可以根据预设时间段内的访问次数、及访问次数对应的初始访问时间和最近一次访问时间的时间间隔计算获取。
步骤202、确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度。
具体地,所述确定所述第一数据和第二数据的参考空间距离,包括:
确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
步骤203、根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
具体地,所述根据所述参考空间距离确定是否删除所述第一数据,包括:
判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
这里,所述预设空间阈值由Hadoop平台的维护人员预先设定并保存。
图5为本实施例中提供的一种两级缓存的Hadoop平台的结构示意图;如图5所示,所述Hadoop平台包括:客户端和数据节点(即DataNode1、DataNode2……DataNodeN)。
在客户端设有一个可存放、查询空间数据的缓存队列。在查找时如果所要查找的空间数据在客户端的缓存队列中,则客户端可直接响应用户的查询请求而不必再对Hadoop集群进行分布式查询。
在数据节点设有一个针对该数据节点所存储的数据块的缓存队列,可以根据图1所示的方法进行缓存管理,当数据节点接收用户读取数据块的请求时,可以先访问缓存队列查看数据块是否已在缓存队列中,如果在则直接返回给客户端而不用进行磁盘I/O的读写;当新数据块要写入数据节点时,也根据上述方法进行判断,确定将待写入的数据块直接写入磁盘或加入缓存队列。
所述两级缓存指客户端对空间数据的缓存和数据节点对数据块的缓存。
所述数据节点的缓存是针对数据块的缓存,图6为本发明实施例提供的一种数据节点的缓存结构的示意图,如图6所示,所述数据节点通过以下三个队列来管理缓存的读或写:
A、缓存队列(也称优先级队列),用于根据数据块的优先级(所述优先级涉及到数据块的访问频度和空间位置的关联性)确定是否将数据块加入缓存队列。所述缓存队列可以时刻保持队满的状态,运用上述方法进行缓存管理。
B、缓存预写入队列,用于存放有可能加入缓存队列的数据块。这里,加入的数据块来源可以分为两类:被客户端请求访问的数据块和将要写入Hadoop的新数据块。数据块的去向分为三类:加入缓存队列、直接删除和直接写入Hadoop平台。
C、Hadoop预写入队列,用于存储即将写入Hadoop的数据块。具体将被缓存队列淘汰下来的未写入Hadoop的数据块放入该队列,等待写入Hadoop平台。
针对缓存队列涉及的优先级的计算方法做以下说明。
图7为本发明实施例提供的基于四叉树索引的平面空间等分的示意图;如图7所示,假设空间区域被划分为10个子区域:A、B、C、D、E、F、G、H、I、J,每个子区域对应Hadoop中的一个数据块,在Hadoop的运行过程中需要将部分数据块加入缓存。
本实施例中,数据块的优先级既考虑了数据块访问频度,也考虑了数据块之间的空间位置关联度。
针对访问频度来说:假设需确定数据块A的访问频度,确定数据块A的访问次数为c,相邻两次数据块被访问的时间间隔可以表示为ti–ti-1,i表示访问次数;从而可以确定数据块A在一段时间内的访问频度为c/Σ(ti–ti-1)。
针对空间距离来说:可以根据方形区域的中心点坐标来计算数据块之间的空间距离。
假设B区域表示在缓存队列中优先级最高的数据块,现需考虑数据块A是否应该加入缓存队列,则需要计算数据块A的优先级。确定A区域中心点坐标为(xi,yi),B区域中心点坐标为(xj,yj)。根据点坐标计算出两点之间的距离以表示数据块之间的位置距离。
结合数据块A的访问频度,则可以得到数据块A的优先级:
其中,Σ(ti–ti-1)表示缓存的数据块的存在时间,即所述访问次数对应的初次访问时间和最后一次访问时间,表示权重,h表示缓存队列能存放数据块的最大数量。
需要说明的是,基于与热点数据块相邻的数据块也有较大的概率成为热点块这个思想,本实施例中在优先级中加入空间距离,从而兼顾了数据块访问频度与数据块的空间位置关联度,使得即使访问次数少但与热点数据块距离近的数据块也拥有较大的优先级,进而使新访问但是和热点数据块相近的数据块也加入到缓存队列中,提升热点数据块的缓存命中率,减少磁盘I/O,从而优化整个Hadoop平台的读写性能。从上述计算公式中可以看出,随着缓存容量的增大,优先级的取值更加倾向于空间距离,这将使更多的与热点数据块相邻的数据块被加载到缓存中,热点数据块缓存的命中率会进一步提升。
数据节点的缓存管理涉及两种情况:一种情况是当客户端要访问一个不在缓存中的数据块时,需要判断从磁盘读取数据块后是将新读取的数据块放入缓存队列还是直接删除。具体流程如下图8所示:
步骤301、根据客户端的读取请求,确定请求读取的数据节点磁盘上的数据块。
步骤302、将读取的数据块反馈给客户端后写入缓存预写入队列。
步骤303、确定数据块的优先级。
这里,所述步骤303包括:确定数据块的访问频度、数据块与缓存块之间的空间距离,根据确定的所述访问频度和空间距离确定数据块的优先级。
这里,所述缓存块具体指缓存对列中优先级最高的缓存块,即热点数据块。
步骤304、判断数据块是否可加入缓存队列,确定可以加入则进入步骤305,否则进入步骤306。
这里,确定所述数据块的优先级高于缓存队列中任意一个缓存块的优先级,即可确定所述数据块可加入缓存对列。
步骤305、将缓存对列中优先级最低的缓存块出队并删除,将所述数据块加入缓存队列。
步骤306、数据块出队并删除。
这里,请求读取的数据块从所述缓存预写入队列中出队并删除。
第二种情况是当有新的数据块要写入数据节点的磁盘时,先将数据块写入缓存预写入队列,判断其是否可以写进缓存队列,若不能写入缓存队列则直接写入Hadoop预写队列。具体流程如下图9所示:
步骤401、接收客户端写入数据块的请求,将请求写入的数据块发送到相应的数据节点。
步骤402、将待写入的数据块写入缓存预写入队列。
步骤403、确定待写入的数据块的优先级。
与请求读取数据块的情况类似,这里需同时考虑数据块的访问频度和空间位置的关联性,确定数据块的优先级。因为新加入的数据块还没被请求过,本实施例中设计使用缓存队列中与待写入数据块空间距离最近的数据块的访问频度除以二者之间的空间距离作为待写入数据块的初始访问频度。
需要说明的是,因为新写入的数据块还未被访问也就无法计算该数据的访问频度,然而访问频度高的数据块对应热点访问区域,而与该区域相近的区域也有较大的概率成为热点区域,基于上述思想本实施例中根据空间距离近的数据块的访问频度来计算新数据块的访问频度,可以将那些有较大概率成为热点数据的数据块在一开始就写入缓存,提升数据访问效率。这里,将访问频度除以空间距离就可以让距离远近在新数据块的优先级值中体现,让距离远的数据块获得小的优先级,避免新写入的数据块因优先级计算值较大都写入缓存队列影响缓存的效率。
步骤404、判断待写入的数据块是否可加入缓存队列,确定可以加入则进入步骤405,否则进入步骤406。
步骤405、根据缓存管理策略,淘汰缓存队列中优先级最低的缓存块(即直接删除缓存块),将待写入的数据块加入缓存队列。
步骤406、将待写入的数据块直接通过Hadoop自身的机制写入Hadoop平台。
针对客户端的缓存策略做以下说明。
本实施例中,在客户端设计一个Map结构用于存储缓存的空间数据,如图10所示;使用空间数据的空间坐标作为Map的键(Key),而Map的值(Value)则使用一个List结构,该List结构中存放空间坐标相同的所有数据。对于每条空间数据的存储,除了存储空间数据自身的信息外还存储空间数据被访问的访问频度,所述访问频度用于衡量空间数据是否该被淘汰出缓存队列。
在进行客户端缓存管理时,也需考虑数据之间的空间位置关联度。缓存数据的淘汰除了要依据数据的访问频度,还需依据淘汰数据与没有被淘汰的热点数据之间的空间距离,空间距离近的则本次不进行淘汰,在下次缓存需要淘汰时才再次进行判断是否要淘汰。具体流程如图11所示,所述方法包括:
步骤501、调用缓存淘汰机制,开始进行缓存淘汰,确定认为该被淘汰出缓存的数据,作为待淘汰数据。
这里,将访问频度低的数据确定为所述待淘汰数据。
步骤502、确定待淘汰数据与热点数据的空间距离。
步骤503、比较待淘汰数据与热点数据的空间距离,根据所述空间距离确定是否删除所述待淘汰数据,确定删除则进入步骤504,否则进入步骤505。
这里,所述客户端设有一个预设空间阈值,比较所述空间距离和所述预设空间阈值,确定所述空间距离大于所述预设空间阈值,则认为可以删除,进入步骤504,否则认为不可以删除,则进入步骤505。
步骤504、执行缓存数据的淘汰操作。
步骤505、不进行淘汰,等待下一次缓存淘汰发起时再处理。
图12为本发明实施例提供的空间数据缓存装置一的结构示意图;所述装置可以应用于数据节点,如图12所示,所述装置,包括:第一处理模块601、第二处理模块602和第三处理模块603。
所述第一处理模块601,用于接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块。
所述第二处理模块602,用于确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列。
所述第三处理模块603,用于确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
具体地,所述第三处理模块603,具体用于确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
具体地,所述第三处理模块603,具体用于确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
具体地,所述第三处理模块603,具体用于针对请求读取的数据块,确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
具体地,所述第三处理模块603,具体用于针对请求写入的数据块,确定所述缓存队列中所述数据块的相邻数据块;确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
具体地,所述第三处理模块603,具体用于确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
具体地,所述第三处理模块603,还用于确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块。
所述第三处理模块603,具体用于针对请求读取的数据块,删除所述数据块;针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入数据节点。
需要说明的是:上述实施例提供的空间数据缓存装置在进行空间数据缓存时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的空间数据缓存装置与空间数据缓存方法(具体指数据节点侧的方法)实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13为本发明实施例提供的空间数据缓存装置二的结构示意图;所述装置可以应用于客户端;如图13所示,所述装置包括:第四处理模块701、第五处理模块702和第六处理模块703。
所述第四处理模块701,用于调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据。
所述第五处理模块702,用于确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度。
所述第六处理模块703,用于根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
具体地,所述第五处理模块702,具体用于确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
具体地,所述第六处理模块703,具体用于判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
需要说明的是:上述实施例提供的空间数据缓存装置在进行空间数据缓存时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的空间数据缓存装置与空间数据缓存方法(具体指客户端侧的方法)实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
为实现本发明实施例的方法,本发明实施例提供一种空间数据缓存装置,设置在数据节点上,具体来说,如图14所示,所述装置包括第一处理器801和用于存储能够在所述第一处理器上运行的计算机程序的第一存储器802;其中,所述第一处理器801用于运行所述计算机程序时,执行:接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定所述缓存队列中所述数据块的相邻数据块;确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
在一实施例中,所述第一处理器801用于运行所述计算机程序时,执行:确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;所述根据预设策略处理所述数据块,包括:针对请求读取的数据块,删除所述数据块;针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入所述数据节点。
需要说明的是:上述实施例提供的空间数据缓存装置与空间数据缓存方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
当然,实际应用时,如图14所示,该装置80还可以包括:至少一个网络接口803。空间数据缓存装置80中的各个组件通过总线***804耦合在一起。可理解,总线***804用于实现这些组件之间的连接通信。总线***804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线***804。其中,所述第一处理器804的个数可以为至少一个。网络接口803用于空间数据缓存装置80与其他设备之间有线或无线方式的通信。
本发明实施例中的第一存储器802用于存储各种类型的数据以支持空间数据缓存装置80的操作。
上述本发明实施例揭示的方法可以应用于第一处理器801中,或者由第一处理器801实现。第一处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器801可以是通用处理器、数字信号处理器(DSP,Digital SignalProcessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。第一处理器801可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器802,第一处理器801读取第一存储器802中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,空间数据缓存装置80可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明实施例还提供一种空间数据缓存装置,设置在客户端上,具体来说,如图15所示,该装置90包括:第二处理器901和用于存储能够在所述第一处理器上运行的计算机程序的第二存储器902;其中,所述第二处理器901用于运行所述计算机程序时,执行:调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
在一实施例中,所述第二处理器901用于运行所述计算机程序时,执行:确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
在一实施例中,所述第二处理器901用于运行所述计算机程序时,执行:判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
需要说明的是:上述实施例提供的空间数据缓存装置与空间数据缓存方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
当然,实际应用时,如图15所示,该装置90还可以包括:至少一个网络接口903。空间数据缓存装置90中的各个组件通过总线***904耦合在一起。可理解,总线***904用于实现这些组件之间的连接通信。总线***904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图15中将各种总线都标为总线***904。其中,所述第二处理器901的个数可以为至少一个。网络接口903用于空间数据缓存装置90与其他设备之间有线或无线方式的通信。
本发明实施例中的第二存储器902用于存储各种类型的数据以支持空间数据缓存装置90的操作。
上述本发明实施例揭示的方法可以应用于第二处理器901中,或者由第二处理器901实现。第二处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第二处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第二处理器901可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。第二处理器901可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器902,第二处理器901读取第二存储器902中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,空间数据缓存装置90可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
可以理解,本发明实施例中的存储器(比如第一存储器802及第二存储器902),可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random AccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的第一存储器802,上述计算机程序可由空间数据缓存装置80的第一处理器801执行,以完成前述方法所述步骤。
具体地,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
在一实施例中,所述计算机程序被处理器运行时,执行:确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述缓存队列中所述数据块的相邻数据块;确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;所述根据预设策略处理所述数据块,包括:针对请求读取的数据块,删除所述数据块;针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入所述数据节点。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的第二存储器902,上述计算机程序可由空间数据缓存装置90的第二处理器901执行,以完成前述方法所述步骤。
具体地,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
在一实施例中,所述计算机程序被处理器运行时,执行:判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
需要说明的是:本发明实施例提供的计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
为实现本发明实施例的方法,本发明实施例还提供了一种空间数据缓存***,所述***包括:客户端和至少一个数据节点;其中,
所述数据节点,用于接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
所述客户端,用于调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
需要说明的是:所述客户端、所述数据节点的具体处理过程已在上文详述,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (23)

1.一种空间数据缓存方法,其特征在于,应用于数据节点,所述方法包括:
接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;
确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;
确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
2.根据权利要求1所述的方法,其特征在于,所述确定所述数据块的优先级,包括:
确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;
获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;
根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限,包括:
确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
4.根据权利要求2所述的方法,其特征在于,针对请求读取的数据块,所述确定所述数据块的访问频度,包括:
确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;
根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
5.根据权利要求2所述的方法,其特征在于,针对请求写入的数据块,所述确定所述数据块的访问频度,包括:
确定所述缓存队列中所述数据块的相邻数据块;
确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;
根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;
根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
6.根据权利要求2所述的方法,其特征在于,确定所述数据块与参考缓存块之间的空间距离,包括:
确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;
确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;
根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;
所述根据预设策略处理所述数据块,包括:
针对请求读取的数据块,删除所述数据块;
针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入所述数据节点。
8.一种空间数据缓存方法,其特征在于,应用于客户端,所述方法包括:
调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;
确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;
根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
9.根据权利要求8所述的方法,其特征在于,所述确定所述第一数据和第二数据的参考空间距离,包括:
确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;
确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;
根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
10.根据权利要求8所述的方法,其特征在于,所述根据所述参考空间距离确定是否删除所述第一数据,包括:
判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
11.一种空间数据缓存装置,其特征在于,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,
所述第一处理模块,用于接收操作请求;所述操作请求用于请求读取数据块或请求写入数据块;
所述第二处理模块,用于确定所述操作请求对应的数据块,将所述数据块加入缓存预写入队列;
所述第三处理模块,用于确定所述数据块的优先级,根据所述数据块的优先级确定所述数据块获得加入缓存队列的权限时,将所述数据块加入所述缓存队列;所述优先级与所述数据块和所述缓存队列中的参考缓存块的关联程度相关。
12.根据权利要求11所述的装置,其特征在于,所述第三处理模块,具体用于确定所述数据块的访问频度,以及所述数据块与所述参考缓存块之间的空间距离;所述参考缓存块表征所述缓存队列中优先级最高的缓存块;
获取所述访问频度对应的第一权重和所述空间距离对应的第二权重;
根据所述访问频度、所述第一权重、所述空间距离和所述第二权重,确定所述数据块的优先级。
13.根据权利要求11所述的装置,其特征在于,所述第三处理模块,具体用于确定所述数据块的优先级大于所述缓存队列中至少一个缓存块的优先级时,确定所述数据块获得加入缓存队列的权限。
14.根据权利要求12所述的装置,其特征在于,所述第三处理模块,具体用于针对请求读取的数据块,确定预设时间段内所述数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第一时间间隔;
根据所述访问次数和所述第一时间间隔,确定所述数据块的访问频度。
15.根据权利要求12所述的装置,其特征在于,所述第三处理模块,具体用于针对请求写入的数据块,确定所述缓存队列中所述数据块的相邻数据块;
确定预设时间段内所述相邻数据块的访问次数,以及预设时间段内的初次访问时间和最近一次的访问时间的第二时间间隔;
根据所述访问次数和所述第二时间间隔,确定所述相邻数据块的访问频度;
根据所述相邻数据块的访问频度、以及所述相邻数据块和所述数据块之间的空间距离,确定所述数据块的访问频度。
16.根据权利要求12所述的装置,其特征在于,所述第三处理模块,具体用于确定所述数据块对应的第一空间区域和所述参考缓存块对应的第二空间区域;
确定所述第一空间区域的第一中心点坐标和所述第二空间区域的第二中心点坐标;
根据所述第一中心点坐标和所述第二中心点坐标确定所述空间距离。
17.根据权利要求11所述的装置,其特征在于,所述第三处理模块,还用于确定所述数据块未获得加入所述缓存队列的权限时,根据预设策略处理所述数据块;
所述第三处理模块,具体用于针对请求读取的数据块,删除所述数据块;针对请求写入的数据块,将所述数据块写入Hadoop预写入队列,所述Hadoop预写入队列内的数据块用于等待写入数据节点。
18.一种空间数据缓存装置,其特征在于,所述装置包括:第四处理模块、第五处理模块和第六处理模块;其中,
所述第四处理模块,用于调用缓存淘汰机制后,确定第一数据和第二数据;所述第一数据表征访问频度低于第一阈值的数据,所述第二数据表征访问频度最高的数据;
所述第五处理模块,用于确定所述第一数据和第二数据的参考空间距离;所述参考空间距离表征所述第一数据和第二数据的关联程度;
所述第六处理模块,用于根据所述参考空间距离确定是否删除所述第一数据,确定删除所述第一数据时,针对所述第一数据执行删除操作。
19.根据权利要求18所述的装置,其特征在于,所述第五处理模块,具体用于确定所述第一数据对应的第三空间区域和所述第二数据对应的第四空间区域;
确定所述第三空间区域的第三中心点坐标和所述第四空间区域的第四中心点坐标;
根据所述第三中心点坐标和所述第四中心点坐标确定所述参考空间距离。
20.根据权利要求18所述的装置,其特征在于,所述第六处理模块,具体用于判断所述参考空间距离是否超过预设空间阈值,确定所述参考空间距离超过预设空间阈值时,确定删除所述第一数据。
21.一种空间数据缓存装置,其特征在于,所述装置包括:第一处理器和用于存储能够在第一处理器上运行的计算机程序的第一存储器;其中,
所述第一处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
22.一种空间数据缓存装置,其特征在于,所述装置包括:第二处理器和用于存储能够在第二处理器上运行的计算机程序的第二存储器;其中,
所述第二处理器用于运行所述计算机程序时,执行权利要求8至10任一项所述方法的步骤。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤;或者,所述计算机程序被处理器执行时实现权利要求8至10任一项所述方法的步骤。
CN201811191662.6A 2018-10-12 2018-10-12 一种空间数据缓存方法、装置和存储介质 Active CN109446114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811191662.6A CN109446114B (zh) 2018-10-12 2018-10-12 一种空间数据缓存方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811191662.6A CN109446114B (zh) 2018-10-12 2018-10-12 一种空间数据缓存方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN109446114A true CN109446114A (zh) 2019-03-08
CN109446114B CN109446114B (zh) 2020-12-18

Family

ID=65546420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811191662.6A Active CN109446114B (zh) 2018-10-12 2018-10-12 一种空间数据缓存方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN109446114B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287007A (zh) * 2019-05-20 2019-09-27 深圳壹账通智能科技有限公司 数据调用响应方法、服务器及计算机可读存储介质
CN112035498A (zh) * 2020-08-31 2020-12-04 北京奇艺世纪科技有限公司 数据块调度方法、装置、调度层节点及存储层节点
CN112260952A (zh) * 2020-10-20 2021-01-22 四川天邑康和通信股份有限公司 一种wifi6路由器快速数据存取保护方法
CN113407620A (zh) * 2020-03-17 2021-09-17 北京信息科技大学 基于异构Hadoop集群环境的数据块放置方法及***
CN113742095A (zh) * 2021-01-14 2021-12-03 北京沃东天骏信息技术有限公司 一种缓存数据处理方法、装置、电子设备及存储介质
CN116383258A (zh) * 2023-05-23 2023-07-04 菏泽全胜建筑装饰工程有限公司 基于bim的建筑施工数据管理方法及***
CN117170590A (zh) * 2023-11-03 2023-12-05 沈阳卓志创芯科技有限公司 一种基于云计算的计算机数据存储方法及***

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019962A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 数据缓存处理方法、装置以及***
CN103092775A (zh) * 2013-01-31 2013-05-08 武汉大学 一种基于键值结构的空间数据双缓存方法及机制
CN103701886A (zh) * 2013-12-19 2014-04-02 中国信息安全测评中心 一种云计算环境下的服务及资源分层调度方法
CN103942289A (zh) * 2014-04-12 2014-07-23 广西师范大学 一种Hadoop上面向范围查询的内存缓存方法
CN104217019A (zh) * 2014-09-25 2014-12-17 中国人民解放军信息工程大学 基于多级缓存模块的内容查询方法和装置
CN104794064A (zh) * 2015-04-21 2015-07-22 华中科技大学 一种基于区域热度的缓存管理方法
CN104809179A (zh) * 2015-04-16 2015-07-29 华为技术有限公司 访问哈希表的装置和方法
US20160202935A1 (en) * 2015-01-13 2016-07-14 Elastifile Ltd. Distributed file system with speculative writing
US20170351620A1 (en) * 2016-06-07 2017-12-07 Qubole Inc Caching Framework for Big-Data Engines in the Cloud
CN107644086A (zh) * 2017-09-25 2018-01-30 咪咕文化科技有限公司 空间数据的分布方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019962A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 数据缓存处理方法、装置以及***
CN103092775A (zh) * 2013-01-31 2013-05-08 武汉大学 一种基于键值结构的空间数据双缓存方法及机制
CN103701886A (zh) * 2013-12-19 2014-04-02 中国信息安全测评中心 一种云计算环境下的服务及资源分层调度方法
CN103942289A (zh) * 2014-04-12 2014-07-23 广西师范大学 一种Hadoop上面向范围查询的内存缓存方法
CN104217019A (zh) * 2014-09-25 2014-12-17 中国人民解放军信息工程大学 基于多级缓存模块的内容查询方法和装置
US20160202935A1 (en) * 2015-01-13 2016-07-14 Elastifile Ltd. Distributed file system with speculative writing
CN104809179A (zh) * 2015-04-16 2015-07-29 华为技术有限公司 访问哈希表的装置和方法
CN104794064A (zh) * 2015-04-21 2015-07-22 华中科技大学 一种基于区域热度的缓存管理方法
US20170351620A1 (en) * 2016-06-07 2017-12-07 Qubole Inc Caching Framework for Big-Data Engines in the Cloud
CN107644086A (zh) * 2017-09-25 2018-01-30 咪咕文化科技有限公司 空间数据的分布方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张少将: "基于Hadoop的地理空间大数据存储与查询技术", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287007A (zh) * 2019-05-20 2019-09-27 深圳壹账通智能科技有限公司 数据调用响应方法、服务器及计算机可读存储介质
CN113407620A (zh) * 2020-03-17 2021-09-17 北京信息科技大学 基于异构Hadoop集群环境的数据块放置方法及***
CN113407620B (zh) * 2020-03-17 2023-04-21 北京信息科技大学 基于异构Hadoop集群环境的数据块放置方法及***
CN112035498A (zh) * 2020-08-31 2020-12-04 北京奇艺世纪科技有限公司 数据块调度方法、装置、调度层节点及存储层节点
CN112035498B (zh) * 2020-08-31 2023-09-05 北京奇艺世纪科技有限公司 数据块调度方法、装置、调度层节点及存储层节点
CN112260952A (zh) * 2020-10-20 2021-01-22 四川天邑康和通信股份有限公司 一种wifi6路由器快速数据存取保护方法
CN113742095A (zh) * 2021-01-14 2021-12-03 北京沃东天骏信息技术有限公司 一种缓存数据处理方法、装置、电子设备及存储介质
CN116383258A (zh) * 2023-05-23 2023-07-04 菏泽全胜建筑装饰工程有限公司 基于bim的建筑施工数据管理方法及***
CN116383258B (zh) * 2023-05-23 2023-08-11 菏泽全胜建筑装饰工程有限公司 基于bim的建筑施工数据管理方法及***
CN117170590A (zh) * 2023-11-03 2023-12-05 沈阳卓志创芯科技有限公司 一种基于云计算的计算机数据存储方法及***
CN117170590B (zh) * 2023-11-03 2024-01-26 沈阳卓志创芯科技有限公司 一种基于云计算的计算机数据存储方法及***

Also Published As

Publication number Publication date
CN109446114B (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN109446114A (zh) 一种空间数据缓存方法、装置和存储介质
CN100476742C (zh) 基于对象存储设备的负载平衡方法
US20150127691A1 (en) Efficient implementations for mapreduce systems
CN106331153B (zh) 一种业务请求的过滤方法、装置及***
CN107247675B (zh) 一种基于分类预测的缓存选择方法和***
US10120810B2 (en) Implementing selective cache injection
US20220179585A1 (en) Management of Idle Time Compute Tasks in Storage Systems
US10956322B2 (en) Storage drive dependent track removal in a cache for storage
CN111309805B (zh) 数据库的数据读写方法及装置
CN114625762A (zh) 一种元数据获取方法、网络设备及***
US10831662B1 (en) Systems and methods for maintaining cache coherency
CN106528451A (zh) 针对小文件的二级缓存预取的云存储框架及构建方法
CN104158863A (zh) 基于事务级别全程高速缓冲的云存储机制
US20180018361A1 (en) Index Table Update Method, and Device
CN106991059A (zh) 对数据源的访问控制方法
CN116560562A (zh) 一种读、写数据方法及装置
CN107133183A (zh) 一种基于tcmu虚拟块设备的缓存数据访问方法及***
US8539135B2 (en) Route lookup method for reducing overall connection latencies in SAS expanders
CN109144431A (zh) 数据块的缓存方法、装置、设备及存储介质
CN109582233A (zh) 一种数据的缓存方法和装置
US10686906B2 (en) Methods for managing multi-level flash storage and devices thereof
CN115509437A (zh) 存储***、网卡、处理器、数据访问方法、装置及***
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
CN115794366A (zh) 一种内存预取方法及装置
CN114207602A (zh) 使用概率数据结构减少请求

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant