CN101916302B - 基于哈希表的三维空间数据自适应缓存管理方法及系统 - Google Patents
基于哈希表的三维空间数据自适应缓存管理方法及系统 Download PDFInfo
- Publication number
- CN101916302B CN101916302B CN2010102691241A CN201010269124A CN101916302B CN 101916302 B CN101916302 B CN 101916302B CN 2010102691241 A CN2010102691241 A CN 2010102691241A CN 201010269124 A CN201010269124 A CN 201010269124A CN 101916302 B CN101916302 B CN 101916302B
- Authority
- CN
- China
- Prior art keywords
- cache
- cache pool
- data
- pool
- time
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及空间信息管理技术领域,尤其涉及一种基于哈希表的三维空间数据自适应缓存管理方法及系统。本发明采用面向对象的思想,将数据库运行统计分析结果与计算机系统资源使用情况相结合用于缓存自适应调整,并使用基于哈希表的对象缓存池进行数据存储管理。该缓存管理方法综合数据库实际运行情况、设备硬件信息以及对象调度信息,对缓存和缓存池设置、替换算法函数进行自适应调整,提高查询命中效率;并通过对象关联查询在基于哈希表存储结构的缓存池中组织调度对象,缩短对象查询组织时间。该缓存管理方法具有高效的性能,能减少系统资源争夺,有效解决对象模型无法动态组织和统一调度的问题,能在多种面向对象的空间数据管理软件中推广使用。
Description
技术领域
本发明涉及空间信息管理技术领域,尤其涉及一种基于哈希表的三维空间数据自适应缓存管理方法及系统。
背景技术
由于三维空间数据具有结构复杂、类型繁多、数据量庞大、空间分布不均衡、个体对象的差异性以及多细节层次表达的特性,针对三维实时可视化应用的高效数据调度需求,如何高效、一体化的组织、管理、调度不均匀分布的地上地下、室外室内的三维空间数据成为亟需突破的难点。与此同时,地理、地质特征相关信息的一体化存储与访问是GIS软件平台研发的关键技术。
缓存(Cache)是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。在应用程序中缓存数据有以下好处:
1)降低需要做的磁盘访问次数,减少硬盘读写数据的耗时;
2)减少交互的数据读取量,缓存数据能有效减少在应用程序进程和机器硬件间的数据传输量;
3)降低系统中的数据处理量,减少数据修改处理次数。
依据缓存技术的应用领域不同,主要有存储器缓存技术、磁盘缓存技术、Web服务器的缓存技术以及数据缓存技术等;根据缓存的应用位置不同可以分为:客户端数据缓存系统、集中式数据缓存系统、分布式数据缓存系统以及虚拟数据缓存系统等。
内存驻留缓存,包含在内存中临时存储数据的所有实现方法,通常使用在应用程序频繁使用同样的数据和应用程序需要经常获取数据这两类情况中。通过将数据保留在内存中,可以有效降低昂贵的磁盘访问操作,也可以通过将数据保留在使用者进程中来最大程度的减少跨进程的数据传输。
磁盘驻留缓存,包含所有使用磁盘作为存储介质的缓存技术,如文件和数据库。基于磁盘的缓存有效的应用在处理大数据量;应用服务提供的数据可能并不是总能使用(比如离线的情况);缓存的数据必须能在进程回收和机器重启的情况下保持有效等应用中。
从三维空间数据库中动态调度数据时,需要频繁地进行数据库的访问操作。目前,绝大多数的数据库管理系统都是基于磁盘管理的体系架构,如Oracle、SQL Server、DB2等,频繁的磁盘读写操作往往成为影响空间数据动态调度性能的主要瓶颈,如果将经常被访问的数据保存在内存中,则可以大大降低或消除数据库读取数据的开销。因此,缓存技术成为提高数据访问效率的有效方法。对于对响应速度与数据存取性能要求极高的三维空间数据库来说,采用缓存技术可以大幅度提高海量三维空间数据并发访问能力以及动态调度的性能。
缓存技术作为缓解处理器的速度和磁盘I/O性能之间的差距的主要技术,一直是工业界和学术界的研究热点。随着网络存储、数据服务器架构、云存储等新技术的出现,数据存储的层次越来越复杂,对缓存技术又提出了新的要求。缓存替换算法作为缓存技术的核心技术之一受到广泛的关注,而频率和时间综合考虑的缓存替换方法、多级缓存的替换技术则是研究的热点。通过缓存处理过的数据,可以有效降低数据处理的负担,同时可减少数据交互的代价。
替换策略以最小化损耗(如失误率、字节失误率、平均延时和总体损耗)为标准。传统的缓存替换算法主要利用对数据块的访问频率或者最近的访问时间为标准判断数据块在本次替换操作中应该被替换掉。
传统的缓存替换算法主要有LRU、MRU、LFU三类代表。单级缓存替换算法研究中基于频率和时间平衡策略的算法有很多,比如UFU、ARC、MQ/2Q等。这些替换算法的判断标准都比较单一,且基本上只对一类访问模式有比较好的效果,对其他的访问模式其效果明显不好。当前单级缓存算法的研究更加侧重于对各种应用访问模式的自适应能力。因为基于特殊应用策略的缓存替换算法,比如DBMIN、Application-Controlled File Caching等一般属于为专有系统特殊的应用场景而定制的,其通用性很有限。
多级缓存算法又可以划分成两类:Hierarchy-aware Caching和Aggressively-collaborativeCaching。Hierarchy-aware Caching存储服务器知道在它的前端存在大量的客户端缓存,但不需要对自己I/O接口和存储客户端软件有任何改变。主要通过猜测的手段对缓存的冗余等情况进行判断,可以通过数据块的地址、文件语义等信息进行猜测。Aggressively-collaborativeCaching修改I/O接口和存储客户端软件。又可以分为基于线索的方式hitbased,比如TQ,DEMOTE等,客户端控制的方式client-controlle。基于recency/frequency平衡策略仍然是研究的热点。
为了提高三维空间数据从三维空间数据库中动态调度的效率,满足三维实时可视化的快速数据请求,高效的缓存机制成为有效的解决方法之一。由于硬件条件的不断提高,内存数据量在不断增大,缓存内查询效率成为影响数据调度速度的因素之一。一般的线性表、树,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一种确定的对应关系,使每个关键字和结构中一个唯一的存储位置相对应。哈希表正是按照这个思想建立的,不需要进行比较便可直接取得所查记录,大大缩短了查找消耗的时间。
发明内容
针对上述存在的技术问题,本发明的目的是提供一种基于哈希表的三维空间数据自适应缓存管理方法及系统,针对三维空间数据实时可视化应用的高效调度需求,解决高效、一体化的组织、管理、调度不均匀分布的地上地下、室外室内的三维空间数据,并在服务器/客户端、硬盘/内存/显存等多个层次建立高效的数据缓存和应用缓存,用于提高三维空间数据的调度能力以及并发访问能力,同时针对文件系统、关系型数据库管理系统及其集群并行管理系统等三种不同的应用模式的需要,实现缓存的自适应设置。
为达到上述目的,本发明采用如下的技术方案:
一种基于哈希表的三维空间数据自适应缓存管理系统,包括:
综合数据库运行信息的替换模块,用于依据对象类型指定缓存池,根据数据库查询特性,依据数据组织耗时、命中时间间隔和频率计算缓存项命中效果值;
面向对象的缓存池管理模块,各缓存池采用哈希表存储缓存对象,统一管理缓存池状态,各缓存池自维护缓存项的替换、查询和缓存池的自适应调整;
三维空间对象关联查询模块,空间对象查询时,对其关联对象以及子对象通过ID标识在对应类型的缓存池中进行查询,对未找到的对象在下一级缓存或数据库中进行调度,返回包含详细完全信息的完整三维空间对象;
基于数据对象查询和系统资源的自适应调整模块,缓存项及缓存池记录查询特性信息,综合当前物理资源使用信息,评估、调整缓存替换策略和缓存设置,调整缓存池深度和粒度。
所述综合数据库运行信息的替换模块,记录缓存池中缓存项记录项进入缓存池的时间、缓存项最后一次命中的时间、缓存项有效命中次数、对象组织调度耗时和对象可否修改标志;
其中,缓存项的权值表示为:
w=a*ht/b*T*to
其中,T为读取时间间隔,ht为有效命中,to为对象组织调度耗时,a、b分别为权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重,可依据查询特性设定;
所述综合数据库运行信息的替换模块的替换原理为替换缓存池中缓存项权值最小并且最早进入缓存池的数据对象。
所述面向对象的缓存池管理模块,按照数据对象类型进行分池管理,根据三维空间数据的内容分别建立多个独立的缓存池,包括三维空间对象要素缓存池、纹理数据缓存池、材质数据缓存池、共享模型数据缓存池、地形数据缓存池;
所述面向对象的缓存池管理模块的各缓存池采用哈希表存储缓存对象,由缓存管理类统一管理缓存池状态,缓存池各自维护缓存项的替换、查询和缓存池自适应调整。
所述面向对象的缓存池管理模块进行插入操作的时候,包括以下步骤:
①向缓存中插入数据对象Object;
②由缓存管理类判断数据对象Object的数据类型;
③指定执行插入操作的缓存池CachePool;
④对比对象Object所需内存空间与缓存池CachePool设定内存空间,若对比对象Object所需内存空间大于缓存池CachePool设定内存空间,结束插入操作;否则进入步骤⑤;
⑤计算缓存池CachePool已使用的内存空间;
⑥判断缓存池是否有空余内存空间插入对象Object,有空余内存空间则将对象Object插入缓存池CachePool,结束插入操作;如果没有空余内存空间,进行缓存项替换,进入步骤⑦;
⑦计算缓存池CachePool中缓存项的命中权值;
⑧删除缓存项中命中权值最小的缓存项;
⑨计算缓存池空余内存空间,
⑩判断是否有足够空余内存空间插入对象Object,有则将对象Object插入缓存池CachePool,结束插入操作;如果没有足够空余内存空间,进入步骤⑧。
所述三维空间对象关联查询模块,在进行空间对象查询操作时,包括以下步骤:
①根据三维空间对象ID在三维空间对象要素缓存池中查找三维空间对象,将命中的三维空间对象要素数据返回,将未命中的三维空间数据对象ID放在按需查询任务队列中;
②根据三维空间对象要素中的纹理ID、材质ID、共享模型ID等子对象信息,分别在纹理缓存池、材质缓存池、共享模型缓存池等进行查找;
③将命中的纹理数据、材质数据、共享模型数据返回,将未命中的数据对象ID放在按需查询任务队列中;
④在下一级缓存或者数据库中根据查询任务队列中的数据对象ID查找数据,并返回数据对象;
⑤将通过查询操作得到的三维空间对象要素、纹理数据、材质数据、共享模型数据等组织成为包含详细完全信息的完整三维空间对象返回给查询请求;
⑥将从下一级缓存或者数据库中查找返回的三维空间对象要素、纹理数据、材质数据、共享模型数据等数据对象插入缓存的对应缓存池中。
一种基于哈希表的三维空间数据自适应缓存管理方法,包括以下步骤:
在基于数据对象查询和系统资源的自适应调整过程中的调整步骤包括:
①缓存在内存中总占用量的设置步骤:设定缓存在内存中总占用量的比例,通过获取计算机硬件实时使用情况,实时调整缓存池占用内存空间的总量;
②各缓存池占用内存空间比例的调整步骤:根据各缓存池记录遍历次数、有效命中次数、已占用内存大小、最后一次遍历时间等信息,提高最近常遍历并且对象使用频率高的缓存池占用内存空间的比例;
③根据关联查询调整缓存池粒度和缓存池深度步骤:将关联查询频度高的,与其他对象无被包含或相交关系的多个缓存对象类型合并成一个对象类型,减少缓存池类型,增大缓存池对象粒度,减小缓存池深度;将查询中需要在对象中提取子对象频度高的缓存对象类型分解成多个子对象类型,新增缓存池类型,缩小缓存池对象粒度,增大缓存池深度;
④根据缓存池有效命中次数,缓存池中缓存项记录项的进入缓存池的时间、缓存项最后一次命中的时间、缓存项命中次数,调整权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重。
本发明具有以下优点和积极效果:
1)本发明缓存替换算法综合考量数据组织耗时、访问频率和时间,可依据查询特性设定权值计算中访问次数和最近一次访问的时间的权重,通过运行统计调整替换算法到最佳命中效果;
2)本发明缓存统一管理各缓存池,结合系统资源使用情况,把数据库与查询运行的实际执行信息加入考虑,调整缓存状态及各缓存池的深度和粒度;
3)本发明按对象类型分缓存池存储,按数据类型遍历缩短了数据查找时间。解决了一般的数据缓存中只存在一个缓存队列,队列中有多种类型的数据项。会出现某个用户请求偶尔存取一个很少使用的类型的数据项,将缓存中其它用户经常使用的类型的对象替换掉了的情况;
4)本发明对象分缓存池存储、关联查询,缩短了空间对象读取时几何数据与属性数据组织时间,满足三维实时可视化应用的高效数据调度需求,能高效、一体化的组织、管理、调度不均匀分布的地上地下、室外室内的三维空间数据;
5)本发明可用于多层次缓存结构,对服务器/客户端、硬盘/内存/显存等多个层次具有普适性,满足文件系统、关系型数据库管理系统及其集群并行管理系统等三种不同的应用模式的需要,实现缓存的自适应设置。
附图说明
图1是本发明中插入操作流程图。
图2是本发明中查询时序示意图。
图3是本发明中对象关联查询流程图。
具体实施方式
下面以具体实施实例结合附图对本发明作进一步说明:
本发明提出的基于哈希表的三维空间数据自适应缓存管理系统,从面向对象的思想入手,将数据库运行统计结合系统资源使用情况用于自适应调整,基于哈希表存储提出的适用于三维空间数据的缓存管理系统,下面结合附图对本系统的构成和实现进行详细描述:
基于哈希表的三维空间数据自适应缓存管理系统,包括四个组成模块:综合数据库运行信息的替换模块、面向对象的缓存池管理模块、三维空间对象关联查询模块、基于数据对象查询和系统资源的自适应调整模块,下面对每个模块的具体实现进行详细描述:
1、综合数据库运行信息的替换模块
为了能够实现查询缓存的动态管理,把数据库查询运行的实际执行信息加入考虑,替换策略从每个缓存项的数据组织时间、读取时间间隔和执行的频率三方面来考虑。综合数据库运行信息的替换算法的基础思想为替换对象组织耗时长,替换访问次数最少的,并且是最近最久没有被访问的缓存项。
缓存项记录对象进入缓存池的时间、缓存项最后一次命中的时间、缓存项有效命中次数、对象组织调度耗时和对象可否修改标志,五个基本信息。
缓存项的权值表示为:w=a*ht/b*T*to,T为读取时间间隔,ht为有效命中,to为对象组织调度耗时,a、b分别为权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重,可依据查询特性设定。缓存池中缓存项被读取时ht=ht+1。
向缓存中插入数据对象Object,进行插入操作流程。当缓存没有足够空间插入数据对象Object时,需要进行替换操作,选择替换项的原则是:
1)数据对象Object与指定操作缓存池中所存对象的数据类型相同;
2)被替换对象的权值w为该缓存池中缓存项权值的最小值;
3)删除被替换对象后,有足够的内存空间插入数据对象Object。
通过计算,如若有多个缓存项的权值均为最小值,则通过判断缓存项记录的数据对象进入缓存池的时间,将最早进入缓存池的缓存项确定为被替换对象。即替换掉缓存项权值最小并且最早进入缓存池的数据对象。
由于空间对象数据类型复杂,同数据类型的各对象间数据大小差异较大。当需要插入一个数据量较大的对象时,一次删除被替换对象操作后条件(3)无法满足,这样就需要依据原则(2)作多次被替换对象的确定,删除多个对象。直至满足条件(3),完成替换。
2、面向对象的缓存池管理模块
本系统中由缓存管理类统一管理缓存池。缓存池初始化时依据数据对象类型确定缓存池存储对象类型。通过对象缓存池方式管理缓存数据对象,采用哈希表结构存储数据对象,按照数据对象类型进行分池管理,根据三维空间数据的内容分别建立多个独立的缓存池,包括三维空间对象要素缓存池、纹理数据缓存池、材质数据缓存池、共享模型数据缓存池、地形数据缓存池等,各缓存池都分配一块独立的内存空间。缓存池采用hash-map存储数据对象,使用对象ID作为查找唯一标识。
当有数据对象需要插入或者查询时,由缓存管理类判断对象类型,指定操作的缓存池。各缓存池记录遍历次数、有效命中次数、设定占用内存大小、最后一次遍历时间等信息。
向缓存中插入数据对象Object,插入操作流程如图1所示,包括以下步骤:
①由缓存管理类判断数据对象Object的数据类型;
②指定执行插入操作的缓存池CachePool;
③对比对象Object所需内存空间与缓存池CachePool设定内存空间,若对比对象Object所需内存空间大于缓存池CachePool设定内存空间,结束插入操作;否则进入步骤④;
④计算缓存池CachePool已使用的内存空间;
⑤判断缓存池是否有空余内存空间插入对象Object,有空余内存空间则将对象Object插入缓存池CachePool,结束插入操作;如果没有空余内存空间,进行缓存项替换,进入步骤⑥;
⑥计算缓存池CachePool中缓存项的命中权值;
⑦删除缓存项中命中权值最小的缓存项;
⑧计算缓存池空余内存空间,
⑨判断是否有足够空余内存空间插入对象Object,有则将对象Object插入缓存池CachePool,结束插入操作;如果没有足够空余内存空间,进入步骤⑦;
向缓存发出查询指令,传递所需查询的对象ID。查询操作时序如图2,步骤如下:
①由缓存管理类判断查找对象类型,指定要查找的缓存池;
②返回进行查询操作的缓存池类型;
③通过对象ID为哈希表的关键字在指定的缓存池中进行对象查找;
④返回在缓存池中找到的对象数据;
⑤将未找到的对象ID发送到下一级缓存或者数据库中进行数据查找;
⑥在下一级缓存或者数据库中获取数据;
⑦将新获取的数据放入缓存中。
3、三维空间对象关联查询模块
对查询对象进行关联调度,以其关联对象以及子对象的ID作为唯一标识,在各缓存池中进行查找、调度,组织包含完整信息的三维空间对象。通过缓存管理类管理所有缓存池,各对象缓存池采用独立管理模式。查询操作采用对象关联查询,查找流程如图3,在相关缓存池内同时进行查询,组织成一个包含详细完全信息的完整三维空间对象。空间对象查询请求有两类,即三维空间对象ID集查询和范围查询。三维空间对象关联查询最终接收的一系列三维空间对象的唯一ID。
三维空间对象关联查询步骤如下:
①根据三维空间对象ID在三维空间对象要素缓存池中查找三维空间对象,将命中的三维空间对象要素数据返回,将未命中的三维空间数据对象ID放在按需查询任务队列中;
②根据三维空间对象要素中的纹理ID、材质ID、共享模型ID等子对象信息,分别在纹理缓存池、材质缓存池、共享模型缓存池等进行查找;
③将命中的纹理数据、材质数据、共享模型数据返回,将未命中的数据对象ID放在按需查询任务队列中;
④在下一级缓存或者数据库中根据查询任务队列中的数据对象ID查找数据,并返回数据对象;
⑤将通过查询操作得到的三维空间对象要素、纹理数据、材质数据、共享模型数据等组织成为包含详细完全信息的完整三维空间对象返回给查询请求;
⑥将从下一级缓存或者数据库中查找返回的三维空间对象要素、纹理数据、材质数据、共享模型数据等数据对象插入缓存的对应缓存池中。
4、基于数据对象查询和系统资源的自适应调整模块
根据缓存项、缓存池的历史查询记录,综合计算机硬件实时使用情况,调整各缓存池占用内存空间、缓存池对象粒度(缓存对象类型)、各缓存池替换算法权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重。四项调整方法具体如下:
①缓存在内存中总占用量的设置。根据计算机硬件实时使用情况,主要是物理内存和逻辑内存使用情况,实时调整缓存池占用内存空间的总量。即设定缓存在内存中总占用量的比例,通过获取计算机硬件实时使用情况,动态设置缓存可使用内存空间。
②各缓存池占用内存空间比例的调整。根据各缓存池记录遍历次数、有效命中次数、已占用内存大小、最后一次遍历时间等信息,分配各缓存池在缓存管理中占用内存空间的比例。分配依据是依照有效命中次数与记录遍历次数的比值,提高最近常遍历并且对象使用频率高的缓存池占用比例。通过缓存池可占用内存空间的动态调整提高系统资源的利用率。
③根据关联查询调整缓存池粒度和缓存池深度。将关联查询频度高的,与其他对象无被包含或相交关系的多个缓存对象类型合并成一个对象类型,减少缓存池类型,增大缓存池对象粒度,减小缓存池深度;将查询中需要在对象中提取子对象频度高的缓存对象类型分解成多个子对象类型,新增缓存池类型,缩小缓存池对象粒度,增大缓存池深度。
④根据缓存池有效命中次数,缓存池中缓存项记录项的进入缓存池的时间、缓存项最后一次命中的时间、缓存项命中次数,调整权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重a、b,提高各缓存池有效命中次数。
以上实施例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,因此所有等同的技术方案,都落入本发明的保护范围。
Claims (3)
1.一种基于哈希表的三维空间数据自适应缓存管理系统,其特征在于,包括:
综合数据库运行信息的替换模块,用于依据对象类型指定缓存池,根据数据库查询特性,依据数据组织耗时、命中时间间隔和频率计算缓存项命中效果值;
面向对象的缓存池管理模块,各缓存池采用哈希表存储缓存对象,统一管理缓存池状态,各缓存池自维护缓存项的替换、查询和缓存池的自适应调整;
三维空间对象关联查询模块,空间对象查询时,对其关联对象以及子对象通过ID标识在对应类型的缓存池中进行查询,对未找到的对象在下一级缓存或数据库中进行调度,返回包含详细完全信息的完整三维空间对象;
基于数据对象查询和系统资源的自适应调整模块,缓存项及缓存池记录查询特性信息,综合当前物理资源使用信息,评估、调整缓存替换策略和缓存设置,调整缓存池深度和粒度;
所述综合数据库运行信息的替换模块,记录缓存池中缓存项记录项进入缓存池的时间、缓存项最后一次命中的时间、缓存项有效命中次数、对象组织调度耗时和对象可否修改标志;
其中,缓存项的权值表示为:
w=a*ht/b*T*to
其中,T为读取时间间隔,ht为有效命中,to为对象组织调度耗时,a、b分别为权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重,依据查询特性设定;
所述综合数据库运行信息的替换模块的替换原理为替换缓存池中缓存项权值最小并且最早进入缓存池的数据对象;
所述面向对象的缓存池管理模块,按照数据对象类型进行分池管理,根据三维空间数据的内容分别建立多个独立的缓存池,包括三维空间对象要素缓存池、纹理数据缓存池、材质数据缓存池、共享模型数据缓存池、地形数据缓存池;
所述面向对象的缓存池管理模块的各缓存池采用哈希表存储缓存对象,由缓存管理类统一管理缓存池状态,缓存池各自维护缓存项的替换、查询和缓存池自适应调整;
所述面向对象的缓存池管理模块进行插入操作的时候,包括以下步骤:
①向缓存中插入数据对象Object;
②由缓存管理类判断数据对象Object的数据类型;
③指定执行插入操作的缓存池CachePool;
④对比对象Object所需内存空间与缓存池CachePool设定内存空间,若对比对象Object所需内存空间大于缓存池CachePool设定内存空间,结束插入操作;否则进入步骤⑤;
⑤计算缓存池CachePool已使用的内存空间;
⑥判断缓存池是否有空余内存空间插入对象Object,有空余内存空间则将对象Object插入缓存池CachePool,结束插入操作;如果没有空余内存空间,进行缓存项替换,进入步骤⑦;
⑦计算缓存池CachePool中缓存项的命中权值;
⑧删除缓存项中命中权值最小的缓存项;
⑨计算缓存池空余内存空间,
⑩判断是否有足够空余内存空间插入对象Object,有则将对象Object插入缓存池CachePool,结束插入操作;如果没有足够空余内存空间,进入步骤⑧;
所述基于数据对象查询和系统资源的自适应调整模块的四项调整方法具体如下:
缓存在内存中总占用量的设置:根据计算机硬件实时使用情况,主要是物理内存和逻辑内存使用情况,实时调整缓存池占用内存空间的总量;
①各缓存池占用内存空间比例的调整:根据各缓存池记录遍历次数、有效命中次数、已占用内存大小、最后一次遍历时间,分配各缓存池在缓存管理中占用内存空间的比例;分配依据是依照有效命中次数与记录遍历次数的比值,提高最近常遍历并且对象使用频率高的缓存池占用比例;通过缓存池可占用内存空间的动态调整提高系统资源的利用率;
②根据关联查询调整缓存池粒度和缓存池深度:将关联查询频度高的,与其他对象无被包含或相交关系的多个缓存对象类型合并成一个对象类型,减少缓存池类型,增大缓存池对象粒度,减小缓存池深度;将查询中需要在对象中提取子对象频度高的缓存对象类型分解成多个子对象类型,新增缓存池类型,缩小缓存池对象粒度,增大缓存池深度;
③根据缓存池有效命中次数,缓存池中缓存项记录项的进入缓存池的时间、缓存项最后一次命中的时间、缓存项命中次数,调整权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重a、b,提高各缓存池有效命中次数。
2.根据权利要求1所述的基于哈希表的三维空间数据自适应缓存管理系统,其特征在于:所述三维空间对象关联查询模块,在进行空间对象查询操作时,包括以下步骤:
①根据三维空间对象ID在三维空间对象要素缓存池中查找三维空间对象,将命中的三维空间对象要素数据返回,将未命中的三维空间数据对象ID放在按需查询任务队列中;
②根据三维空间对象要素中的纹理ID、材质ID、共享模型ID,分别在纹理缓存池、材质缓存池、共享模型缓存池进行查找;
③将命中的纹理数据、材质数据、共享模型数据返回,将未命中的数据对象ID放在按需查询任务队列中;
④在下一级缓存或者数据库中根据查询任务队列中的数据对象ID查找数据,并返回数据对象;
⑤将通过查询操作得到的三维空间对象要素、纹理数据、材质数据、共享模型数据组织成为包含详细完全信息的完整三维空间对象返回给查询请求;
⑥将从下一级缓存或者数据库中查找返回的三维空间对象要素、纹理数据、材质数据、共享模型数据插入缓存的对应缓存池中。
3.一种基于哈希表的三维空间数据自适应缓存管理方法,其特征在于:
在基于数据对象查询和系统资源的自适应调整过程中的调整步骤包括:
①缓存在内存中总占用量的设置步骤:设定缓存在内存中总占用量的比例,通过获取计算机硬件实时使用情况,实时调整缓存池占用内存空间的总量;
②各缓存池占用内存空间比例的调整步骤:根据各缓存池记录遍历次数、有效命中次数、已占用内存大小、最后一次遍历时间,提高最近常遍历并且对象使用频率高的缓存池占用内存空间的比例;
③根据关联查询调整缓存池粒度和缓存池深度步骤:将关联查询频度高的,与其他对象无被包含或相交关系的多个缓存对象类型合并成一个对象类型,减少缓存池类型,增大缓存池对象粒度,减小缓存池深度;将查询中需要在对象中提取子对象频度高的缓存对象类型分解成多个子对象类型,新增缓存池类型,缩小缓存池对象粒度,增大缓存池深度;
④根据缓存池有效命中次数,缓存池中缓存项记录项的进入缓存池的时间、缓存项最后一次命中的时间、缓存项命中次数,调整权值计算中有效命中次数、时间间隔和对象组织调度耗时的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102691241A CN101916302B (zh) | 2010-09-01 | 2010-09-01 | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102691241A CN101916302B (zh) | 2010-09-01 | 2010-09-01 | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101916302A CN101916302A (zh) | 2010-12-15 |
CN101916302B true CN101916302B (zh) | 2012-11-21 |
Family
ID=43323814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102691241A Expired - Fee Related CN101916302B (zh) | 2010-09-01 | 2010-09-01 | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101916302B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11856077B2 (en) | 2014-04-30 | 2023-12-26 | Open Text Inc. | Smart caching based on reputation information |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184236B (zh) * | 2011-05-16 | 2013-06-12 | 复旦大学 | 一种空间数据库中基于距离的自适应页面替换方法 |
CN102404207B (zh) * | 2011-11-04 | 2018-02-09 | 中兴通讯股份有限公司 | 一种以太网数据的处理方法及装置 |
CN102710763B (zh) * | 2012-05-29 | 2015-11-25 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN103841144A (zh) * | 2012-11-23 | 2014-06-04 | 中兴通讯股份有限公司 | 云存储系统、方法、用户端及云存储服务器 |
CN103077209B (zh) * | 2012-12-28 | 2016-01-20 | 深圳先进技术研究院 | 一种支持大规模并发的三维空间数据放置方法 |
CN108351873B (zh) * | 2015-09-23 | 2021-05-11 | 华为技术有限公司 | 一种缓存管理方法和装置 |
CN105373439A (zh) * | 2015-12-15 | 2016-03-02 | 福建升腾资讯有限公司 | 基于Windows显示体系下与显卡端口驱动通信方法 |
CN105740167B (zh) * | 2016-01-28 | 2018-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种文件系统缓存删除的方法及系统 |
CN106339419A (zh) * | 2016-08-16 | 2017-01-18 | 福建中金在线信息科技有限公司 | 邮币卡行情快速获取方法及系统 |
CN107517266A (zh) * | 2017-09-05 | 2017-12-26 | 江苏电力信息技术有限公司 | 一种基于分布式缓存的即时通讯方法 |
CN109685712B (zh) * | 2017-10-18 | 2023-05-23 | 阿里巴巴集团控股有限公司 | 图像缓存和使用方法及装置、终端 |
CN107885828B (zh) * | 2017-11-07 | 2020-01-31 | Oppo广东移动通信有限公司 | 查找匹配对象的方法、装置、存储介质及电子设备 |
CN108573012B (zh) * | 2017-11-24 | 2021-06-11 | 北京金山云网络技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN108182084B (zh) * | 2017-12-28 | 2021-05-11 | 中国科学院计算技术研究所 | 哈希混合加速系统及应用其进行哈希连接的方法 |
CN110309079B (zh) * | 2018-03-27 | 2023-06-02 | 阿里巴巴集团控股有限公司 | 一种数据缓存的方法及装置 |
CN108900617B (zh) * | 2018-07-03 | 2020-09-18 | 东南大学 | 一种雾无线接入网的三层协作式缓存方法 |
CN109447253B (zh) * | 2018-10-26 | 2021-04-27 | 杭州比智科技有限公司 | 显存分配的方法、装置、计算设备及计算机存储介质 |
CN109766143A (zh) * | 2019-01-16 | 2019-05-17 | 广州虎牙信息科技有限公司 | 对象加载方法、装置、终端及存储介质 |
CN110134650B (zh) | 2019-04-28 | 2022-03-25 | 深圳市腾讯网域计算机网络有限公司 | 一种文件加载方法、装置、设备及存储介质 |
CN110263010B (zh) * | 2019-05-31 | 2023-05-02 | 广东睿江云计算股份有限公司 | 一种缓存文件自动更新方法及装置 |
CN110209701A (zh) * | 2019-06-10 | 2019-09-06 | 天津神舟通用数据技术有限公司 | 一种基于内存多级缓存的数据快速分页查询访问的方法 |
CN112650613B (zh) * | 2020-12-29 | 2023-09-26 | 北京天融信网络安全技术有限公司 | 一种错误信息处理方法、装置、电子设备及存储介质 |
CN112988754B (zh) * | 2021-04-08 | 2023-07-14 | 中煤科工集团重庆研究院有限公司 | 一种面向数据集成的快速查询方法 |
CN113434516A (zh) * | 2021-08-03 | 2021-09-24 | 深圳华锐金融技术股份有限公司 | 行情数据存储方法、装置、计算机设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236530A (zh) * | 2008-01-30 | 2008-08-06 | 清华大学 | 高速缓存替换策略的动态选择方法 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
-
2010
- 2010-09-01 CN CN2010102691241A patent/CN101916302B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236530A (zh) * | 2008-01-30 | 2008-08-06 | 清华大学 | 高速缓存替换策略的动态选择方法 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11856077B2 (en) | 2014-04-30 | 2023-12-26 | Open Text Inc. | Smart caching based on reputation information |
Also Published As
Publication number | Publication date |
---|---|
CN101916302A (zh) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101916302B (zh) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 | |
CN101692229B (zh) | 基于数据内容的三维空间数据自适应多级缓存系统 | |
CN103488581B (zh) | 数据缓存系统和数据缓存方法 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
US9495296B2 (en) | Handling memory pressure in an in-database sharded queue | |
US7143240B2 (en) | System and method for providing a cost-adaptive cache | |
CN103365929B (zh) | 一种数据库连接的管理方法及系统 | |
US6961835B2 (en) | System and method for autonomically reallocating memory among buffer pools | |
CN105302744B (zh) | 高速缓存器的无效数据区 | |
Bornea et al. | Semi-streamed index join for near-real time execution of ETL transformations | |
US8825959B1 (en) | Method and apparatus for using data access time prediction for improving data buffering policies | |
CN107040422A (zh) | 一种基于物化缓存的网络大数据可视化方法 | |
CN110188080A (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
CN101510209A (zh) | 实现实时检索的方法、系统和服务器 | |
CN102163195A (zh) | 一种基于分布式、异构数据库统一视图的查询优化方法 | |
CN107832401A (zh) | 数据库数据访问方法、系统、装置及计算机可读存储介质 | |
CN104376109B (zh) | 一种基于数据分布库的多维度数据分布方法 | |
CN105917319A (zh) | 存储器单元和方法 | |
CN101957861A (zh) | 新型元数据服务器集群和基于调整表的元数据管理方法 | |
CN104111898A (zh) | 基于多维数据相似性的混合存储系统及数据管理方法 | |
CN101067820A (zh) | 预取对象的方法 | |
CN103200245B (zh) | 一种基于Device Mapper的分布式网络缓存方法 | |
Chen et al. | icache: An importance-sampling-informed cache for accelerating i/o-bound dnn model training | |
CN104765572B (zh) | 一种节能的虚拟存储服务器系统及其调度方法 | |
CN104112024A (zh) | 数据库的高性能查询方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121121 Termination date: 20190901 |