当前位置: 首页 > 专利查询>浙江大学专利>正文

以用户为中心且基于多级缓存的海洋时空数据访问方法技术

技术编号:9349110 阅读:178 留言:0更新日期:2013-11-15 00:41
本发明专利技术公开了一种以用户为中心且基于多级缓存的海洋时空数据访问方法,进行海洋时空数据访问的步骤为:(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求;(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;如果有访问记录,则从缓存池中读取该数据并返回给用户;否则,则跳转至第(3)步,并更新缓存列表;(3)检查缓存池中是否存在请求数据;如果缓存池中有请求数据,则将该请求数据返回给用户;否则,从该数据服务器的数据库中读取请求数据并返回给用户,同时更新缓存池。本发明专利技术以用户为中心,提高数据访问的效率。

【技术实现步骤摘要】
以用户为中心且基于多级缓存的海洋时空数据访问方法
本专利技术涉及计算机数据处理领域,具体涉及一种以用户为中心且基于多级缓存的海洋时空数据访问方法。
技术介绍
海洋时空数据不仅包含三维空间数据,而且涵盖各类时序多变量空间数据,如气象、水文、海洋生物,以及实时灾难预警、航线调整等信息。海洋时空数据具有多源、异质、结构复杂、数据量大以及空间分布不均匀等特性,面对用户极具个性化的访问需求,需要提供能够高效调度和管理海洋时空数据的海洋地理信息系统。缓存能缓解处理器和磁盘I/O之间的性能差距,是提高数据访问效率的有效机制,尤其在数据量大、访问频繁的情况下缓解性能更为明显,随着硬件技术的发展,内存容量大幅提高,为缓存策略的发展带来新的机遇。传统的缓存策略受容量的限制,需以进程为数据访问单位,考虑全体访问数据的缓存。假设访问数据集为某时刻驻留集为T={a1,a2,a3,…,ai},其中缓存策略主要基于访问频率和访问时间,即访问频率较高和最近访问的数据驻留在时刻驻留集T中,但是在实际应用中,用户完整的数据请求可能需要多个进程才能完成,尤其是涉及到多方面数据时,缓存带来的效益并非对全体用户公平一致,因此,以进程为单位的缓存策略并不能适应用户个性化的数据访问模式。在三维海洋信息系统中,所有用户都是同等地位的,用户不应以访问的先后顺序或以访问量的大小作为优先的条件。作为缓存策略的核心,不同的缓存策略必然产生不同的替换算法。传统的缓存替换算法主要利用对数据块的访问频率或者最近的访问时间为标准,判断数据块在本次替换操作中是否应该被替换。经典的替换算法以LRU、MRU、LFU三类代表,另外常见的基于频率和时间平衡策略的算法有UFU、ARC、MQ/2Q等,然而,这些替换算法的判断标准都比较单一,且基本上只对一类访问模式有比较好的效果,对其他的访问模式效果并不明显。多级缓存从逻辑上对数据分层缓存,主要分为两类:基于层次感知的缓存和基于侵略性协作的缓存。前者通过猜测判断缓存数据的冗余情况来改变自身的缓存结果;后者则是通过对其他缓存的侵略性协作改变当前缓存数据。总体来说,二者仍然基于访问频率和访问时间的平衡策略。为了满足三维海洋信息系统实时数据访问要求,快速响应用户数据请求,需要研究高效的缓存策略。海洋信息系统单次访问数据量较大,如查看某海港实时海况,在三维海洋信息系统中不仅要获取海港三维模型,而且要读取海港实时天气数据。传统的缓存策略尽量缓存最近访问最多的数据,当缓存池空闲容量不足时,新用户的访问数据需要等到替换完成后才能全部加载到缓存池中,新用户等待时间较长。
技术实现思路
本专利技术提供了一种以用户为中心且基于多级缓存的海洋时空数据访问方法,以用户为中心,保证每个用户能够公平享有数据缓存带来的优势,同时,能够减小磁盘I/O,降低数据的交换频率,同时基于海洋时空数据的自身特点,通过预读机制进一步提高数据访问的效率。一种以用户为中心且基于多级缓存的海洋时空数据访问方法,所述海洋时空数据存放于多台数据服务器中,每台数据服务器中建立有:数据库,用于存放海洋时空数据;缓存池,用于存放数据库中被用户访问过的数据;缓存列表,用于存放该数据服务器的各用户的访问记录。数据服务器针对所有用户建立缓存列表,记录每个用户在缓存服务器上的访问时间以及访问的数据,相同数据被访问的次数等信息。缓存池中以数据项的形式存储所有被用户访问过的数据,数据项除了包含数据信息外,还包括与数据相关的信息,例如数据大小、数据位置、访问记录等。进行海洋时空数据访问的步骤为:(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求。本申请的客户端中建立有数据缓存区、按R树组织的空间索引(记录海洋空间中每块区域对应的所有数据的ID)以及请求队列。用户指定查询条件时,如果查询条件指向单个数据,则根据该单个数据的ID查找数据缓存区,如果数据不在数据缓存区中,则将该数据的ID放入请求队列中,同时记录此次请求的时间戳。如果查询条件指向某块区域(某块区域是指某海洋空间范围内的数据,利用地理上的经度和纬度进行区域限定),则根据空间索引查找该块区域中所有数据的ID,并根据每个数据的ID查找数据缓存区,如果某个数据不在数据缓存区中,则将该数据的ID放入请求队列中,同时记录此次请求的时间戳。列入请求队列中的数据极为客户端不能直接获得的数据,须向中间服务器发出查询请求,中间服务器为用户分配合适的数据服务器,数据服务器向用户返回所需的数据。(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;如果有访问记录,则从缓存池中读取该数据并返回给用户;否则,则跳转至步骤(3),并更新缓存列表。作为优选,数据服务器定时向中间服务器发送心跳信息,中间服务器根据心跳信息判断各数据服务器的空闲状态。中间服务器接收查询请求,判断请求数据所在的数据服务器,当请求数据存在于多台数据服务器时,优先指定空闲的数据服务器。(3)检查缓存池中是否存在请求数据;如果缓存池中有请求数据,则将该请求数据返回给用户;否则,从该数据服务器的数据库中读取请求数据并返回给用户,同时更新缓存池。缓存池每次更新完成后,缓存池中的各数据项的位置记录在缓存索引中,每次从缓存池中读取数据时,根据该缓存索引读取相应的数据,每次更新缓存池时,对缓存索引做相应更新。更新缓存池时,首先检查缓存池的剩余容量,如果剩余容量可以容纳需要更新的数据,则将需要更新的数据载入缓存池,完成更新;否则,计算缓存池内所有数据项的权值,按照权值由小至大的次序,将缓存池内原有的数据项取出缓存池,直至缓存池的剩余容量能够容纳需要更新的数据,将需要更新的数据载入缓存池,完成更新。三维海洋信息系统中,用户访问数据量较大,为了减少等待时间,需要根据对用户可能访问的数据做预测,优选地,从数据库中读取数据前,判断所读取数据对应的地理位置,以地理位置为中心,按照预定的半径确定地理范围(地理范围利用经度和纬度确定),读取与该地理范围相对应的所有同类型数据,并更新缓存池,同时仅将用户请求的数据返回给用户。三维海洋信息系统中包含三维空间数据以及各类时序多变量空间数据,如气象、水文、海洋生物,以及实时灾难预警、航线调整等信息,所述的同类型数据是指,描述同一类信息的数据,例如用户需要查找水文数据,则以所读取数据对应的地理位置为中心,预定半径的地理范围内的所有水文数据均为同类型数据。同类型数据的数据量可能极大,可以改变预定半径的大小,以减少数据量,也可以依据与所读取数据的距离由小到大的次序,选择固定数目的同类型数据,进行缓存池的更新。更新缓存池时,选定的同类型数据全部载入缓存池中,而返回给用户的仅为用户所查询的数据。本专利技术利用三级缓存(分别为客户端的数据缓存区、数据服务器的缓存列表以及数据服务器的缓存池)最大程度地减小客户端的数据缓存量,同时,最大程度地减少对数据服务器中数据库的直接读取操作,利用分布式系统内存的大容量性质,为所有用户建立个性化的缓存,提高每个用户的数据访问速度。本专利技术以用户为中心且基于多级缓存的海洋时空数据访问方法,以用户为中心,利用三级缓存提高用户的数据访问速度,同时,在更新本文档来自技高网
...
以用户为中心且基于多级缓存的海洋时空数据访问方法

【技术保护点】
一种以用户为中心且基于多级缓存的海洋时空数据访问方法,其特征在于,所述海洋时空数据存放于多台数据服务器中,每台数据服务器中建立有:数据库,用于存放海洋时空数据;缓存池,用于存放数据库中被用户访问过的数据;缓存列表,用于存放该数据服务器的各用户的访问记录;进行海洋时空数据访问的步骤为:(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求;(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;如果有访问记录,则从缓存池中读取该数据并返回给用户;否则,则跳转至步骤(3),并更新缓存列表;(3)检查缓存池中是否存在请求数据;如果缓存池中有请求数据,则将该请求数据返回给用户;否则,从该数据服务器的数据库中读取请求数据并返回给用户,同时更新缓存池。

【技术特征摘要】
1.一种以用户为中心且基于多级缓存的海洋时空数据访问方法,其特征在于,所述海洋时空数据存放于多台数据服务器中,每台数据服务器中建立有:数据库,用于存放海洋时空数据;缓存池,用于存放数据库中被用户访问过的数据;缓存列表,用于存放该数据服务器的各用户的访问记录;进行海洋时空数据访问的步骤为:(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求;(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;如果有访问记录,则从缓存池中读取该数据并返回给用户;否则,则跳转至步骤(3),并更新缓存列表;本步骤中,中间服务器接收查询请求,判断请求数据所在的数据服务器,当请求数据存在于多台数据服务器时,优先指定空闲的数据服务器;数据服务器定时向中间...

【专利技术属性】
技术研发人员:汪飞郑文庭徐晓刚鲍虎军张宏鑫
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1