CN113254366A - 一种基于时空老化模型的服务端瓦片缓存置换方法 - Google Patents
一种基于时空老化模型的服务端瓦片缓存置换方法 Download PDFInfo
- Publication number
- CN113254366A CN113254366A CN202110717187.7A CN202110717187A CN113254366A CN 113254366 A CN113254366 A CN 113254366A CN 202110717187 A CN202110717187 A CN 202110717187A CN 113254366 A CN113254366 A CN 113254366A
- Authority
- CN
- China
- Prior art keywords
- tile
- cache
- space
- tiles
- aging
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于时空老化模型的服务端瓦片缓存置换方法,属于信息检索领域。本发明在老化算法的基础上,综合瓦片的时间老化程度、瓦片空间访问热度、瓦片大小特征和瓦片主题特征设计了一种瓦片数据的时空老化模型,并在时空老化模型的基础上实现了服务端的瓦片缓存置换。本发明充分考虑了瓦片数据特征和访问模式特点,可实现较高的请求命中率和字节命中率,降低瓦片访问的平均访问时长,并能兼顾算法性能与资源消耗,具备高效性和扩展性,对于高性能的地理信息服务的建设具有重要意义。
Description
技术领域
本发明属于信息检索领域,具体涉及一种云服务器中地图瓦片的缓存置换方法。
背景技术
遥感影像作为地球观测数据的重要组成部分,为人类了解地球系统中的大气、海洋、陆地、植被等方面提供了至关重要的作用。近年来,随着遥感影像数据量的快速增长,NGIS正在向云服务的方向发展,这种趋势进一步促使NGIS在服务端集成海量影像,并提供高效实时的遥感影像预览、可视化及漫游服务,以提高用户筛选影像的效率。但由于遥感影像单幅数据量过大,并不适合在网络中频繁传输,在实际应用中往往使用地图瓦片来实现影像的漫游、预览和可视化。瓦片数据作为NGIS的重要数据源,是由遥感影像或地图按照某种金字塔模型(如四叉树模型)切割而成的数据单元,高效、实时的瓦片服务是支撑高性能NGIS的基础技术之一。然而随着数据量和用户量的激增,瓦片服务器面临高并发和服务过载的挑战,导致瓦片服务存在延迟与低效问题。使用瓦片缓存可以减少对瓦片服务器直接访问的频率,减轻瓦片服务器压力。目前的缓存架构主要分为客户端缓存和服务端缓存两种,由于客户端缓存在云环境下存在应用局限性,Google Earth建议使用服务端缓存来解决瓦片服务延迟等问题。在实际应用中,缓存的可用容量往往小于瓦片的数据总量,当缓存空间无法容纳新的瓦片时,需要按照预设的缓存置换算法将符合条件的瓦片换出缓存。良好的缓存置换算法可以有效提高缓存命中率,进一步减小瓦片服务器压力,因此,设计高命中率的瓦片缓存置换算法正在成为当前研究的热点和难点。
基于瓦片访问模式和瓦片数据特征,现有技术中对瓦片缓存置换算法开展了大量的研究,提出的算法均考虑了瓦片访问模式的时间局部性,部分考虑了空间局部性和瓦片类型特征,结合时空特性定义了各自瓦片价值模型,并根据价值大小来置换瓦片,能在一定程度上提高瓦片缓存命中率。但这些方法在应用于服务端瓦片缓存时,还存在以下问题:(1)相较于先进先出(First In First Out, FIFO)、最不经常使用(Least FrequentlyUsed, LFU)以及最近最少使用(Least Recently Used, LRU)等传统的缓存置换算法,上述算法的复杂性大、效率低,不适合海量瓦片缓存置换的应用场景;(2)大多数为客户端缓存置换算法,不适用于基于网络的服务端瓦片缓存置换场景;(3)考虑了瓦片的访问对其水平维度周围瓦片的影响,但未考虑垂直维度上对其上下层瓦片的影响;(4)未考虑瓦片数据大小特征对缓存命中率的影响。因此,亟需提供一种能够综合考虑瓦片数据综合特点的缓存置换方法。
发明内容
本发明的目的是克服现有技术存在的不足,提供一种基于时空老化模型的服务端瓦片缓存置换方法,以解决现有的缓存置换方法在应用时存在的复杂性大、效率低、大多数为客户端缓存置换算法、未考虑瓦片数据特征等问题,使瓦片缓存置换方法能够应用于服务端的海量瓦片高效置换场景。
为实现本发明目的,提供的技术方案如下:
一种基于时空老化模型的服务端瓦片缓存置换方法,该方法包括:
S1:缓存服务器启动后,通过同步启动的主线程建立缓存索引和瓦片老化表,设置瓦片时钟周期,创建定时器线程,同时开始监听用户请求;所述缓存索引以单张遥感影像金字塔瓦片为基本处理单元,通过哈希映射的方式建立;
S2:周期性执行所述定时器线程,每过一个瓦片时钟周期,按照老化算法对每张瓦片对应的R位和计数器进行移位操作,由移位操作后的计数器值代表所在瓦片在该瓦片时钟周期内的时间老化程度;
S3:主线程监听到访问瓦片的用户请求后,启动瓦片请求响应线程,对用户请求对应的目标瓦片进行哈希编码,进而通过编码值查找缓存索引,若命中,则直接向用户返回,若未命中,则从磁盘中读取目标瓦片数据并进一步判断缓存中剩余空间是否充足,若缓存空间充足,则将目标瓦片直接放到缓存中并为其创建缓存索引,若缓存空间不足,则由时空老化模型结合瓦片空间访问热度、瓦片大小和瓦片主题对代表时间老化程度的计数器值进行向右移位调节,得到缓存中每张瓦片的时空老化程度,再按照时空老化程度从小到大的淘汰顺序进行缓存置换。
作为优选,所述缓存索引采用哈希表结构,其中哈希表的键由瓦片的层级、行号和列号通过哈希编码唯一确定,哈希表的值包含瓦片信息、R位、计数器、瓦片空间访问热度值、瓦片大小和瓦片主题属性值。
进一步的,所述哈希编码方法为CityHash64算法。
作为优选,对于每一张瓦片,所述移位操作的方法为:在一个瓦片时钟周期内由R位记录是否被访问,被访问记录为1,否则记录为0;一个瓦片时钟周期结束后,先把老化表中该瓦片对应的计数器值整体右移一位,再将R位的值赋予计数器右移后空出的最高位,最后把R位重新设置为0,赋值后的计数器值代表瓦片的时间老化程度。
作为优选,所述时空老化模型中,单张瓦片的时空老化程度由瓦片时间老化程度、瓦片空间访问热度价值、瓦片大小价值和瓦片主题价值综合确定,其计算方法如下:
S21:将缓存中每张瓦片移位操作后的计数器值分别记录于老化表中,每过一个瓦片时钟周期更新一次老化表中的计数器值,得到最新的瓦片时间老化程度;当出现缓存空间不足时,执行S22~S25;
S22:获取缓存中每张瓦片的瓦片空间访问热度heat,计算每张瓦片的瓦片空间访问热度价值V heat 为:
式中:maxHeat表示缓存中最大的瓦片空间访问热度,heat表示单张瓦片的瓦片空
间访问热度,Me表示缓存中所有瓦片的瓦片空间访问热度中位数,表示向下取整操作;
其中单张瓦片的瓦片空间访问热度heat由瓦片自身以及瓦片水平邻域和瓦片垂直邻域的
累计访问频次确定,当一张瓦片被访问命中后,被访问的瓦片空间访问热度增加1,其水平
邻域和垂直邻域中每张瓦片的空间访问热度也增加一个瓦片空间访问热度权重值;瓦片的
水平邻域为在同一层级中与被访问的瓦片直接相邻的八张瓦片;瓦片的垂直邻域为在下一
层级中由被访问的瓦片分裂得到的四张瓦片;
S23:读取缓存中每张瓦片的瓦片大小,计算每张瓦片的瓦片大小价值V size 为:
式中,size表示瓦片的大小,K表示用于对小数部分进行进位操作的常数项,S表示瓦片的大小阈值;
S24:统计缓存中不同主题的瓦片数目,计算每张瓦片的瓦片主题价值V theme 为:
其中,themeCount表示缓存中主题为theme的瓦片数目,maxThemeCount表示缓存中所有themeCount的最大值;
S25:针对每张瓦片,从老化表中读取其当前最新的计数器值,然后将该计数器值整体进行向右移位得到瓦片的时空老化程度,移动位数为瓦片的V heat 、V size 和V theme 之和。
作为优选,所述瓦片时钟周期为10秒。
进一步的,所述瓦片空间访问热度权重值为1。
进一步的,所述瓦片的大小阈值S为1 KB。
进一步的,所述常数项K为1/4。
作为优选,在执行缓存置换时,按时空老化程度从小到大的顺序从缓存中逐张淘汰已有瓦片,直至缓存空间足以容纳所述目标瓦片后,将目标瓦片放入缓存中并更新瓦片索引。
本发明与现有技术相比具有的有益效果:
现有技术中的老化算法原本用于页面缓存置换,它同时具备LRU和LFU两种算法的优点,在短期流行度拟合和运行性能方面具备优势。本发明将老化算法引入服务端瓦片缓存置换场景,综合瓦片访问的长短期流行度、时空局部性、瓦片大小特征和瓦片主题特征对老化算法进行改造,提出时空老化模型,并设计了基于时空老化模型的服务端瓦片缓存置换方法,具有以下优势:(1)计算量小,运行效率高,适用于高并发的海量瓦片缓存置换场景;(2)更好地拟合了瓦片访问的时间局部性特点;(3)兼顾了水平和垂直两个空间维度对瓦片访问模式的影响,能更全面地体现空间局部性特点;(4)顾及瓦片大小特征和瓦片主题特征,进一步提高了瓦片缓存命中率。
附图说明
图1为基于时空老化模型的服务端瓦片缓存置换方法步骤流程图;
图2为瓦片水平邻域和垂直邻域示意图;
图3为服务端瓦片缓存置换方法执行流程图;
图4为时空老化模型中两个参数对于缓存命中率的影响;其中 (a)瓦片时钟周期T对缓存命中率的影响;(b)瓦片空间访问热度权重值vol对缓存命中率的影响;
图5为四种缓存置换算法的请求命中率和增长率对比图;其中(a)瓦片请求命中率;(b)瓦片字节命中率;(c)瓦片请求命中增长率;(d)瓦片字节命中增长率;
图6为四种缓存置换算法平均访问时长及节省率对比图;
图7为四种缓存置换算法CPU占用率和累计占用率对比图;其中(a)本发明方法;(b)LRU算法;(c)LFU算法;(d)FIFO算法。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
本发明中将原本用于页面缓存置换的老化算法引入服务端瓦片缓存置换场景,综合瓦片访问的长短期流行度、时空局部性、瓦片大小特征和瓦片主题特征对老化算法进行优化,提出了一种时空老化模型,并设计了基于时空老化模型的服务端瓦片缓存置换方法,其基本流程如图1所示。
缓存服务器会在运行过程中逐渐保存大量的瓦片,当客户端请求到达缓存服务器时,需要通过高效的索引机制从缓存中检索是否存在目标瓦片。因此,为了实现服务端瓦片缓存置换,需要事先对加入缓存的每一张瓦片数据建立高效的索引,即构建缓存索引。本发明中以单张瓦片为基本处理单元,通过哈希映射的方式建立缓存索引结构,实现常数级别的查询。
由于哈希表是一种读写效率非常高的数据结构,在理想条件下能达到常数级别的查询效率,因此本发明中设置哈希表作为缓存索引的结构,以单张遥感影像金字塔瓦片为基本处理单元,通过哈希映射的方式建立缓存索引。哈希表中包含键和每个键对应的值。
在NGIS系统中,用户通过统一资源定位器(Uniform Resource Locator, URL)来请求瓦片服务,开放地理空间联盟(Open Geospatial Consortium, OGC)为瓦片服务制定了规范化访问的标准,即网络地图瓦片服务(Web Map Tile Service, WMTS)。客户端通过在URL中指明瓦片类型、层级(level)、行号(row)和列号(col)等信息请求瓦片。因此本发明中哈希表的键由遥感影像金字塔瓦片的层级(level)、行号(row)和列号(col)通过哈希编码唯一确定,哈希编码公式为:
Hashkey= CityHash64(level,row,col)
其中Hashkey表示索引的键,CityHash64表示哈希算法,CityHash64算法能有效降低哈希碰撞出现的概率。
另外,哈希表中每个键还包含相应的值。为了建立瓦片时空老化模型,因此哈希值需要包括瓦片信息(tileNode),R位(referenceBit),计数器(counter),瓦片空间访问热度值(tileSpatailHeat),瓦片大小(size)和瓦片主题属性值(theme)六个部分。瓦片进入缓存后,这六个部分将会写入哈希表的值中,以便后续索引调用,而且R位、计数器和瓦片空间访问热度值的值会在后续定期被更新,以便实现时空老化模型的计算。
本发明的核心是构建一个能够计算单张瓦片的时空老化程度的时空老化模型。该时空老化模型是在老化算法的基础上,顾及瓦片访问模式的空间局部性、瓦片大小特征和瓦片主题特征构建的,由瓦片时间老化程度、瓦片空间访问热度价值、瓦片大小价值和瓦片主题价值综合确定。其中瓦片时间老化程度可采用老化算法中的计数器对瓦片的访问情况进行记录得到,计数器值实际上是一种二进制流。时空老化模型可结合瓦片空间访问热度、瓦片大小和瓦片主题对代表时间老化程度的计数器值进行向右移位调节,得到缓存中每张瓦片的时空老化程度。瓦片空间访问热度、瓦片大小和瓦片主题分别代表了瓦片的时空信息、大小特征和主题属性,三者对计数器值进行向右移位调节的基本原则如下:对于任一瓦片,该瓦片自身、其水平邻域和其水平邻域的访问热度越高,则该瓦片的瓦片空间访问热度值小,对计数器值进行向右移位的位数越小;该瓦片的瓦片大小越小,对计数器值进行向右移位的位数越小;该瓦片的瓦片主题在缓存内所有瓦片的主题分布中占比越高,则对计数器值进行向右移位的位数越小。由于时空老化程度是通过对计数器值进行向右移位得到的,移位位数越多其值越小,因此计数器值越小表明瓦片的老化程度越高,当缓存空间不足时被淘汰的优先级也越高。
因此,时空老化模型中时空老化程度的计算表达式为:
V ssat = V age ≫( V heat +V size +V theme )
其中,≫表示向右移位操作,≫左侧为被移位的二进制流,≫右侧为移位的位数,V age 表示瓦片时间老化程度,V heat 表示瓦片空间访问热度价值,V size 表示瓦片大小价值,V theme 表示瓦片主题价值。在老化算法中,V ssat 随时钟周期进行右移操作,因此V heat 、V size 和V theme 三者调节V age 的方式也是将三者加和后,以三者之和( V heat +V size +V theme )作为对V age 向右移位的位数,经过( V heat +V size +V theme )移位的V age 即为V ssat 。
下面对瓦片时间老化程度、瓦片空间访问热度价值、瓦片大小价值和瓦片主题价值的具体定义和计算过程分别进行介绍。
1:瓦片时间老化程度V age
老化算法在原理上利用了时间局部性,因此本方法直接用老化表计数器值来表示瓦片访问的短期流行度,做出如下定义:
定义1:瓦片老化表。每张瓦片在老化表中都各自对应一个32位(当然也可以用64位)的计数器,瓦片老化表就是计数器的集合。同时计数器的左侧具有一个R位,在一个瓦片时钟周期内由R位记录是否被访问,被访问记录为1,否则记录为0。
定义2:瓦片老化时钟周期。根据老化算法的计算过程,每经过一个瓦片老化时钟周期T,首先会把瓦片老化表中每个计数器值右移一位,再把计数器的最高位设置为R位的值即将R位的值赋给计数器向右移位后空出来的最高位,最后把R位重新设置为0,以便于记录下一个周期的被访问情况。
定义3:瓦片时间老化程度。赋值后的计数器值代表了瓦片的时间老化程度,值越小表示瓦片的时间老化程度越高。瓦片时间老化程度比老化算法具有位数更长的计数器和间隔更长的时钟周期,记为V age 。
2:瓦片空间访问热度价值V heat
瓦片数据常用于实现地图漫游、数据查询预览、地图贴图等功能,若两张瓦片在金字塔组织结构中相邻,则代表的地理空间位置相邻,位置上相邻的瓦片在访问时间上也倾向于相邻。如何定义单张瓦片影响的邻域空间以及设置瓦片访问热度的累计过程,是提高瓦片缓存命中率的关键。因此,本发明做出如下定义:
定义4:瓦片水平邻域:以被访问的瓦片为中心,在同层中与该瓦片直接相邻的八张瓦片。
定义5:瓦片垂直邻域:在下一层级中,由被访问的瓦片分裂得到的四张瓦片。
定义6:瓦片空间访问热度权重:由于瓦片访问存在空间局部性,瓦片空间访问热度权重表示被访问的瓦片对其水平邻域和垂直邻域的影响程度,记为vol。
定义7:瓦片空间访问热度:即瓦片的累计访问频次,当瓦片被访问命中后,该瓦片空间访问热度值增加1,其水平邻域和垂直邻域中的瓦片的空间热度值增加vol,计算过程如图2所示。
定义8:瓦片空间访问热度价值:将瓦片空间访问热度进行归一化处理,得到瓦片空间访问热度价值,记为V heat ,以右移的形式对老化表计数器进行调节。在调节的过程中,热度不同的瓦片之间应该体现出适当的差距。本方法定义V heat 为:
本方法设置Me是为了避免当瓦片的heat与缓存的maxHeat相差较大时,会对V age 产生过大的移位影响。假设缓存中有三张瓦片A、B和C,其heat分别为1000、500和10,缓存中maxHeat为10000,Me为100。此时瓦片A的V heat = 3,瓦片B的V heat = 4,在时空老化模型中,瓦片A将影响V age 右移3位,瓦片B影响V age 值右移4位,即heat值相差2倍的瓦片,相当于一个瓦片时钟周期没有被访问。而瓦片C的heat与maxHeat相差1000倍,若直接使用heat计算将得到V heat =10,这对于32位的V age 来说,产生的移位影响过大,会造成V age 信息的丢失。若取heat=Me进行计算则得到V heat =7,这既能体现出差距,又避免了对V age 信息产生移位污染。因此上述瓦片空间访问热度价值的计算方式可以满足应用需求。
3:瓦片大小价值V size
遥感影像金字塔瓦片的大小可能相差近百倍。瓦片的大小会影响缓存内所能容纳瓦片的最大数量,如果小瓦片拥有更高的优先级,则会提高瓦片缓存命中率。本方法把不同大小的瓦片所对应不同的优先级称为瓦片大小价值,记为V size 。与V heat 的作用类似,V size 也是以向右移位的形式对老化表计数器进行调节。在调节的过程中,大小不同的瓦片之间应该体现出适当的差距。本方法定义V size 为:
其中,size表示瓦片的大小,K表示,用来对小数部分很大的V size 值进行进位操作的常数项,S表示瓦片的大小阈值。本发明中,经过大量试验,设置K=1⁄4,使得小数部分超过0.75后即可被进位。
另外瓦片的大小阈值S可根据具体的瓦片大小分布情况而定,本发明中可设置为1KB。由此,假设有三张瓦片A、B、C,其size值分别为2KB、20KB、200KB,则三张瓦片的V size 分是0、1、2,在时空老化模型中相当于V age 分别右移0位、1位、2位,即size值相差10倍的瓦片,相当于一个瓦片时钟周期没有被访问。瓦片大小价值能体现出size的差距,而且不会对老化表产生过大移位影响。
4:瓦片主题价值V theme
瓦片数据在访问时具有主题倾向性,能反映在缓存中各主题瓦片的数量上。缓存中某主题的瓦片数目越大,则表示下一时刻有越大的概率仍然访问该主题的瓦片,本方法把不同主题的瓦片所对应不同的优先级称为瓦片主题价值,记为V theme 。与V heat 和V size 的作用类似,V theme 也是以移位的形式调节老化表。本方法定义V theme 为:
其中,themeCount表示缓存中主题为theme的瓦片数目,maxThemeCount表示缓存中所有themeCount的最大值。
假设缓存中有两张瓦片A和B,分别属于主题themeA和主题themeB,两类主题对应的themeCount分别为1000和100,缓存中maxThemeCount为10000。在进行缓存置换的时候,瓦片A的V theme = 1,瓦片B的V theme = 2,在时空老化模型中,瓦片A将影响V age 右移1位,瓦片B影响V age 值右移2位,即themeCount相差10倍的瓦片,也相当于1个瓦片时钟周期没有被访问,这既能体现出差距,又避免了信息污染。
由此,在本发明中,可通过获取瓦片时间老化程度、瓦片空间访问热度价值、瓦片大小价值和瓦片主题价值,通过前述时空老化模型中时空老化程度的计算表达式,得到瓦片的时空老化程度,进而执行缓存置换。
本发明提供的基于时空老化模型的服务端瓦片缓存置换方法,在执行过程中可通过启动多个线程来进行相关操作。一般而言,为了实现该方法需陆续启动一个主线程和两个工作线程,主线程随缓存服务器的启动而启动,负责初始化算法运行环境。工作线程包括定时器线程和瓦片请求响应线程,定时器线程主要负责瓦片老化表周期性移位;瓦片请求响应线程负责处理客户端的瓦片访问请求、查询瓦片缓存以及置入换出瓦片等。
具体参见如图3所示,下面将详细描述本发明的基于时空老化模型的服务端瓦片缓存置换方法的实现过程:
S1:缓存服务器启动后,通过同步启动的主线程建立缓存索引和瓦片老化表,设置瓦片时钟周期,创建定时器线程,同时开始监听用户请求。
其中,缓存索引的构建方式如前所述,以单张遥感影像金字塔瓦片为基本处理单元,通过哈希映射的方式建立。用户通过URL来请求瓦片服务,可通过在客户端中向服务器发送指明瓦片类型、层级(level)、行号(row)和列号(col)等信息的URL来请求瓦片。
S2:按照主线程设定的瓦片时钟周期,可周期性执行定时器线程,每过一个瓦片时钟周期,按照前述的老化算法对每张瓦片对应的R位和计数器进行移位操作,由移位操作后的计数器值代表所在瓦片在该瓦片时钟周期内的时间老化程度。
S3:主线程监听到访问瓦片的用户请求后,启动瓦片请求响应线程,对用户请求对应的目标瓦片的level、row、col进行哈希编码(该哈希编码与初始建立缓存索引采用的哈希映射方式中哈希编码需保持一致),进而通过编码值查找缓存索引,若命中,则直接向用户返回,若未命中,则从磁盘中读取目标瓦片数据并进一步判断缓存中剩余空间是否充足,并按照判断结果执行如下:
若缓存空间充足,则将目标瓦片直接放到缓存中按照相同的哈希映射方式并为其创建缓存索引;
若缓存空间不足,则由前述的时空老化模型结合瓦片空间访问热度、瓦片大小和瓦片主题对代表时间老化程度的计数器值进行向右移位调节,得到缓存中每张瓦片的时空老化程度,再按照时空老化程度从小到大的淘汰顺序进行缓存置换。
在该进程中,时空老化模型计算瓦片时空老化程度的过程如下:
1)将缓存中每张瓦片移位操作后的计数器值分别记录于老化表中,每过一个瓦片时钟周期更新一次老化表中的计数器值,得到最新的瓦片时间老化程度;当出现缓存空间不足时,执行下列2)~5)步骤;
2)获取缓存中每张瓦片的瓦片空间访问热度heat,按照前述公式计算每张瓦片的瓦片空间访问热度价值V heat ;
3)读取缓存中每张瓦片的瓦片大小,按照前述公式计算每张瓦片的瓦片大小价值V size ;
4)统计缓存中不同主题的瓦片数目,按照前述公式计算每张瓦片的瓦片主题价值V theme ;
5)针对每张瓦片,从老化表中读取其当前最新的计数器值,然后将该计数器值整体进行向右移位得到瓦片的时空老化程度,每张瓦片对应的移动位数为该瓦片的V heat 、V size 和V theme 之和,即( V heat +V size +V theme )。
另外,需要注意的是,在执行缓存置换时,单次被置换淘汰的瓦片数量可能是一张,也可能是多张,具体需要视目标瓦片所需的存储空间而定。在实际操作中,可以按时空老化程度从小到大的顺序从缓存中逐张淘汰已有瓦片,直至缓存空间足以容纳目标瓦片后,然后将目标瓦片放入缓存中并更新瓦片索引。更新瓦片索引时,需要从哈希索引表删除被淘汰的瓦片的索引,同时将新放入的瓦片的索引添加值哈希索引表中。
下面基于该上述方法,将其应用至实施例中,以直观展示其技术效果,具体的过程如前所述,不再赘述,下面主要展示其具体参数设置和实现效果。
实施例
下面以多套谷歌瓦片数据为实验对象,对本发明进行具体描述,其具体步骤如下;
1)实施例所用谷歌地图瓦片共21层(最高为0层,最低为20层),共6077501张,总大小为6.84GB,其中最大的瓦片大小为1492KB,最小的瓦片为6KB,包括专题图、卫星图、道路网、地形图、标签图等12种不同图层的瓦片。实施例中设置的可用缓存空间为500兆。
2)上述时空老化模型中还存在瓦片时钟周期T和瓦片空间热度权重vol两个参数
需要调整优化。为了确定两者的最优值,本发明中通过实验设置不同和vol的值,并判断
两个参数对于缓存命中率的影响。在缓存大小为500MB的条件下启动算法进行实验,分别记
录了不同T值和不同vol值对缓存命中率的影响,结果如图4所示,当T=10(s),vol=1时将得
到最高的请求命中率和字节命中率。
3)本实施例采用上述确定的两组参数进行服务端瓦片缓存置换,同时为了对比传统方法与本发明的缓存置换方法(记为本方法)之间的性能,本实施例中还设置了FIFO、LFU、LRU三种方法作为对照。使用三台相同配置的服务器,分别部署瓦片数据、瓦片缓存服务和客户端。服务器配置:Windows Server 2012 操作系统,Intel(R) Core(TM) i7-8750HCPU @2.2GHz, 512GB SSD和8GB RAM。
遵循控制变量法进行实验,第一步为缓存服务设置的最大可用缓存为500MB,并以50MB为间隔设置了10个不同的缓存大小;第二步,提取日志中的瓦片层级、行列号和请求时间,生成瓦片访问次序列表;第三步,按照列表顺序依次访问瓦片缓存服务,并统计总访问次数、请求命中次数、访问时长等信息。
图5中(a)(b)是FIFO、LFU、LRU和本方法在不同缓存大小条件下的请求命中率和字节命中率的实验结果。分析可知,四种算法的命中率均会随缓存的增大而增大,且增长趋势大致相同。当缓存空间为100MB时,缓存中出现的大量置换操作会极大地消耗系统性能,因此四种算法均表现出小于7%的请求命中率和小于10%的字节命中率。在缓存空间达到500MB时,四种算法的命中率显著提高,请求命中率分别为44%、55%、65%和73%,字节命中率分别为47%、56%、66%和76%。图5中(c)(d)是四种算法在不同缓存大小下命中增长率的实验结果。当缓存空间小于100MB时,四种算法的命中增长率较低,每增加1MB的缓存空间分别能提升0.03%、0.04%、0.03%和0.06%的请求命中增长率以及0.03%、0.03%、0.03%和0.07%的字节命中增长率。在缓存空间从100MB增加到300MB的过程中,四种算法的请求和字节命中率迅速增加,增长率均大于0.15%/MB,其中本方法的请求命中增长率和字节命中增长率分别达到0.24%/MB和0.23%/MB。当缓存空间大于300MB时,空间容量对命中率的影响降低,因此四种算法的命中率增长再次变得平缓,平均降低到0.05%/MB左右。总的来说,相较于FIFO、LFU和LRU,本方法在各种缓存大小条件中均呈现出最高的命中率及增长率,且命中率优势会随着缓存的增大而变得更加显著。
瓦片平均访问时长和平均访问时长节省率可以直观地体现瓦片服务的性能。访问时长越短,节省率越高,表示在使用某种缓存置换算法的条件下,能够更大程度地降低访问延迟。图6是在不同缓存大小的条件下分别使用四种缓存置换算法的瓦片平均访问时长及节省率,四种算法的平均访问时长随缓存大小的增加而减小,相应的平均访问时长节省率随瓦片缓存的增大而增大。当缓存空间大于300M时,使用缓存置换算法可以有效的缩短瓦片请求的平均访问时长,降低延迟率。当缓存空间为500M时,本方法、LRU、LFU、FIFO四种算法分别可以缩短35%、28%、20%和17%的平均访问时间。
瓦片缓存置换算法的引入,为NGIS系统带来了更高效的瓦片服务,但同时也会提高对CPU资源的占用率,这可能会降低系统的其他性能。因此,本方法对不同缓存算法对CPU资源的占用情况进行实验。图7是缓存为500MB时四种缓存置换算法的CPU占用率及累计占用率的统计结果。分析可知,四种算法对CPU资源的占用率从大到小依次是LRU,本方法,LFU和FIFO。LRU有良好的缓存命中率,但其资源消耗过大;FIFO虽然占用最小的资源,但其缓存命中率过低;LFU和本方法资源消耗适中,但FIFO的缓存命中率远低于本方法; 本方法能够兼顾性能和消耗。
本实施例结果表明,与传统的FIFO、LFU和LRU缓存置换算法相比,本方法显著提高了瓦片请求命中率和字节命中率,明显缩短了平均访问时长,并且能兼顾对计算机资源的消耗,是一种有效的瓦片缓存置换方法。
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,包括:
S1:缓存服务器启动后,通过同步启动的主线程建立缓存索引和瓦片老化表,设置瓦片时钟周期,创建定时器线程,同时开始监听用户请求;所述缓存索引以单张遥感影像金字塔瓦片为基本处理单元,通过哈希映射的方式建立;
S2:周期性执行所述定时器线程,每过一个瓦片时钟周期,按照老化算法对每张瓦片对应的R位和计数器进行移位操作,由移位操作后的计数器值代表所在瓦片在该瓦片时钟周期内的时间老化程度;
S3:主线程监听到访问瓦片的用户请求后,启动瓦片请求响应线程,对用户请求对应的目标瓦片进行哈希编码,进而通过编码值查找缓存索引,若命中,则直接向用户返回,若未命中,则从磁盘中读取目标瓦片数据并进一步判断缓存中剩余空间是否充足,若缓存空间充足,则将目标瓦片直接放到缓存中并为其创建缓存索引,若缓存空间不足,则由时空老化模型结合瓦片空间访问热度、瓦片大小和瓦片主题对代表时间老化程度的计数器值进行向右移位调节,得到缓存中每张瓦片的时空老化程度,再按照时空老化程度从小到大的淘汰顺序进行缓存置换。
2.如权利要求1所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述缓存索引采用哈希表结构,其中哈希表的键由瓦片的层级、行号和列号通过哈希编码唯一确定,哈希表的值包含瓦片信息、R位、计数器、瓦片空间访问热度值、瓦片大小和瓦片主题属性值。
3.如权利要求2所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述哈希编码方法为CityHash64算法。
4.如权利要求1所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,对于每一张瓦片,所述移位操作的方法为:在一个瓦片时钟周期内由R位记录是否被访问,被访问记录为1,否则记录为0;一个瓦片时钟周期结束后,先把老化表中该瓦片对应的计数器值整体右移一位,再将R位的值赋予计数器右移后空出的最高位,最后把R位重新设置为0,赋值后的计数器值代表瓦片的时间老化程度。
5.如权利要求1所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述时空老化模型中,单张瓦片的时空老化程度由瓦片时间老化程度、瓦片空间访问热度价值、瓦片大小价值和瓦片主题价值综合确定,其计算方法如下:
S21:将缓存中每张瓦片移位操作后的计数器值分别记录于老化表中,每过一个瓦片时钟周期更新一次老化表中的计数器值,得到最新的瓦片时间老化程度;当出现缓存空间不足时,执行S22~S25;
S22:获取缓存中每张瓦片的瓦片空间访问热度heat,计算每张瓦片的瓦片空间访问热度价值V heat 为:
式中:maxHeat表示缓存中最大的瓦片空间访问热度,heat表示单张瓦片的瓦片空间访
问热度,Me表示缓存中所有瓦片的瓦片空间访问热度中位数,表示向下取整操作;其中
单张瓦片的瓦片空间访问热度heat由瓦片自身以及瓦片水平邻域和瓦片垂直邻域的累计
访问频次确定,当一张瓦片被访问命中后,被访问的瓦片空间访问热度增加1,其水平邻域
和垂直邻域中每张瓦片的空间访问热度也增加一个瓦片空间访问热度权重值;瓦片的水平
邻域为在同一层级中与被访问的瓦片直接相邻的八张瓦片;瓦片的垂直邻域为在下一层级
中由被访问的瓦片分裂得到的四张瓦片;
S23:读取缓存中每张瓦片的瓦片大小,计算每张瓦片的瓦片大小价值V size 为:
式中,size表示瓦片的大小,K表示用于对小数部分进行进位操作的常数项,S表示瓦片的大小阈值;
S24:统计缓存中不同主题的瓦片数目,计算每张瓦片的瓦片主题价值V theme 为:
其中,themeCount表示缓存中主题为theme的瓦片数目,maxThemeCount表示缓存中所有themeCount的最大值;
S25:针对每张瓦片,从老化表中读取其当前最新的计数器值,然后将该计数器值整体进行向右移位得到瓦片的时空老化程度,移动位数为瓦片的V heat 、V size 和V theme 之和。
6.如权利要求1所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述瓦片时钟周期为10秒。
7.如权利要求5所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述瓦片空间访问热度权重值为1。
8.如权利要求5所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述瓦片的大小阈值S为1 KB。
9.如权利要求5所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,所述常数项K为1/4。
10.如权利要求1所述的基于时空老化模型的服务端瓦片缓存置换方法,其特征在于,在执行缓存置换时,按时空老化程度从小到大的顺序从缓存中逐张淘汰已有瓦片,直至缓存空间足以容纳所述目标瓦片后,将目标瓦片放入缓存中并更新瓦片索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110717187.7A CN113254366B (zh) | 2021-06-28 | 2021-06-28 | 一种基于时空老化模型的服务端瓦片缓存置换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110717187.7A CN113254366B (zh) | 2021-06-28 | 2021-06-28 | 一种基于时空老化模型的服务端瓦片缓存置换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254366A true CN113254366A (zh) | 2021-08-13 |
CN113254366B CN113254366B (zh) | 2021-10-08 |
Family
ID=77189977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110717187.7A Active CN113254366B (zh) | 2021-06-28 | 2021-06-28 | 一种基于时空老化模型的服务端瓦片缓存置换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254366B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616177A (zh) * | 2009-07-21 | 2009-12-30 | 武汉大学 | 基于p2p的网络地形系统的数据传输共享方法 |
US20130097386A1 (en) * | 2011-10-17 | 2013-04-18 | Industry-Academia Cooperation Group Of Sejong University | Cache memory system for tile based rendering and caching method thereof |
CN103488760A (zh) * | 2013-09-26 | 2014-01-01 | 中国测绘科学研究院 | 地理信息瓦片服务的提供方法及实现该方法的装置 |
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN106844537A (zh) * | 2016-12-30 | 2017-06-13 | 重庆知行地理信息咨询服务有限公司 | 一种时空地图瓦片数据的组织管理方法 |
US20170287436A1 (en) * | 2016-04-04 | 2017-10-05 | Yandex Europe Ag | Method and system of downloading image tiles onto a client device |
-
2021
- 2021-06-28 CN CN202110717187.7A patent/CN113254366B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616177A (zh) * | 2009-07-21 | 2009-12-30 | 武汉大学 | 基于p2p的网络地形系统的数据传输共享方法 |
US20130097386A1 (en) * | 2011-10-17 | 2013-04-18 | Industry-Academia Cooperation Group Of Sejong University | Cache memory system for tile based rendering and caching method thereof |
CN103488760A (zh) * | 2013-09-26 | 2014-01-01 | 中国测绘科学研究院 | 地理信息瓦片服务的提供方法及实现该方法的装置 |
US20170287436A1 (en) * | 2016-04-04 | 2017-10-05 | Yandex Europe Ag | Method and system of downloading image tiles onto a client device |
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN106844537A (zh) * | 2016-12-30 | 2017-06-13 | 重庆知行地理信息咨询服务有限公司 | 一种时空地图瓦片数据的组织管理方法 |
Non-Patent Citations (3)
Title |
---|
王浩等: "基于瓦片寿命和访问热度的海量空间数据缓存置换策略", 《武汉大学学报(信息科学版)》 * |
褚信等: "用户行为选择参与的五层十五级瓦片缓存置换策略研究", 《浙江大学学报(理学版)》 * |
陆晔等: "一种基于主题时空价值的服务器端瓦片缓存算法", 《浙江大学学报(理学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254366B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188080B (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
US10331572B2 (en) | Selective data mirroring for in-memory databases | |
US10769126B1 (en) | Data entropy reduction across stream shard | |
TWI684099B (zh) | 剖析快取替代 | |
CN108055302B (zh) | 一种图片缓存处理方法、系统和服务器 | |
CN109982104A (zh) | 一种移动边缘计算中移动感知的视频预取与缓存替换决策方法 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN106649313A (zh) | 用于处理缓存数据的方法和设备 | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
CN103581051B (zh) | 一种文件缓存方法、装置和系统 | |
CN107450860B (zh) | 一种基于分布式存储的地图文件预读方法 | |
CN113254366B (zh) | 一种基于时空老化模型的服务端瓦片缓存置换方法 | |
EP3274844B1 (en) | Hierarchical cost based caching for online media | |
CN109189696B (zh) | 一种ssd缓存系统及缓存方法 | |
CN110334073A (zh) | 一种元数据预取方法、装置、终端、服务器及存储介质 | |
EP3207457B1 (en) | Hierarchical caching for online media | |
US10339069B2 (en) | Caching large objects in a computer system with mixed data warehousing and online transaction processing workload | |
CN112395453A (zh) | 一种自适应分布式遥感影像缓存及检索方法 | |
CN110659157A (zh) | 一种无损恢复的分布式多语种检索平台及其方法 | |
Guo et al. | An Effective tile caching mechanism of UAV remote sensing map based on hilbert coding index | |
CN106909518B (zh) | 一种实时数据缓存机制 | |
CN117235088B (zh) | 一种存储系统的缓存更新方法、装置、设备、介质及平台 | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system | |
CN114356230A (zh) | 一种提高列存储引擎读性能的方法及系统 | |
CN114860663A (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 |