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

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

Info

Publication number
CN103390061B
CN103390061B CN201310328432.0A CN201310328432A CN103390061B CN 103390061 B CN103390061 B CN 103390061B CN 201310328432 A CN201310328432 A CN 201310328432A CN 103390061 B CN103390061 B CN 103390061B
Authority
CN
China
Prior art keywords
data
user
cache pool
server
request
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.)
Active
Application number
CN201310328432.0A
Other languages
English (en)
Other versions
CN103390061A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310328432.0A priority Critical patent/CN103390061B/zh
Publication of CN103390061A publication Critical patent/CN103390061A/zh
Application granted granted Critical
Publication of CN103390061B publication Critical patent/CN103390061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

以用户为中心且基于多级缓存的海洋时空数据访问方法
技术领域
本发明涉及计算机数据处理领域,具体涉及一种以用户为中心且基于多级缓存的海洋时空数据访问方法。
背景技术
海洋时空数据不仅包含三维空间数据,而且涵盖各类时序多变量空间数据,如气象、水文、海洋生物,以及实时灾难预警、航线调整等信息。海洋时空数据具有多源、异质、结构复杂、数据量大以及空间分布不均匀等特性,面对用户极具个性化的访问需求,需要提供能够高效调度和管理海洋时空数据的海洋地理信息系统。
缓存能缓解处理器和磁盘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为本发明以用户为中心且基于多级缓存的海洋时空数据访问方法中数据服务器读取数据的流程图;
图4为本发明以用户为中心且基于多级缓存的海洋时空数据访问方法中缓存池更新数据流程图。
具体实施方式
下面结合附图,对本发明以用户为中心且基于多级缓存的海洋时空数据访问方法做详细描述。
本发明以用户为中心且基于多级缓存的海洋时空数据访问方法,海洋时空数据存放于多台数据服务器中,如图1所示,每台数据服务器中建立有:数据库,用于存放海洋时空数据;
缓存池,用于存放数据库中被用户访问过的数据;
缓存列表,用于存放该数据服务器的各用户的访问记录。
缓存池中以数据项的形式记录所有用户访问过的数据,数据项中包括数据以及数据的相关状态,数据项记为其中,ui为访问过该数据的所有用户的数量,ht为为该数据被访问的所有次数,t为最近访问时间间隔(即该数据最后两次访问的时间间隔),size为数据的大小。
数据服务器为每个活跃用户(有数据查询需求的用户)建立一个缓存列表,缓存列表的初始状态为空,用户每次访问的数据都加载到缓存池中,缓存列表中记录缓存池中数据的地址作为缓存索引,缓存列表记为item=(ci,idx),其中ci为第i个用户,idx为缓存索引,当用户不再活跃时,删除该缓存列表中的相应项,并更新缓存池中的数据项。
用户通过客户端进行数据查询,客户端中建立有数据缓存区、按R树组织的空间索引(记录海洋空间中每块区域对应的所有数据的ID)以及请求队列。
如图2、图3所示,进行海洋时空数据访问的步骤为:
(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求;
用户指定查询条件时,如果查询条件指向单个数据,则根据该单个数据的ID查找数据缓存区,如果数据不在数据缓存区中,则将该数据的ID放入请求队列中,同时记录此次请求的时间戳。
如果查询条件指向某块区域(某块区域是指某海洋空间范围内的数据,利用地理上的经度和纬度进行区域限定),则根据空间索引查找该块区域中所有数据的ID,并根据每个数据的ID查找数据缓存区,如果某个数据不在数据缓存区中,则将该数据的ID放入请求队列中,同时记录此次请求的时间戳。
(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;
如果有访问记录,则从缓存池中读取该数据并返回给用户;
否则,则跳转至步骤(3),并更新缓存列表。
数据服务器定时向中间服务器发送心跳信息,中间服务器根据心跳信息判断各数据服务器的空闲状态。中间服务器接收查询请求,判断请求数据所在的数据服务器,当请求数据存在于多台数据服务器时,优先指定空闲的数据服务器。
(3)检查缓存池中是否存在请求数据;
如果缓存池中有请求数据,则将该请求数据返回给用户;
否则,从该数据服务器的数据库中读取请求数据并返回给用户,同时更新缓存池。
从数据库中读取数据前,判断所读取数据对应的地理位置,以地理位置为中心,按照预定的半径确定地理范围,读取与该地理范围相对应的所有同类型数据,并更新缓存池,同时仅将用户请求的数据返回给用户。
本申请利用KNN算法以所读取数据对应的地理位置为中心,寻找最近的k个(k值可以人为设定)同类型的数据(例如从数据库中查找5km范围内的水深和底质数据),载入缓存池中。访问时,用户可能会连续改变查询条件,即更改所读取数据,也即更新相对应的地理位置,在改变查询条件的过程中,如果连续给出两次查询条件之间的时间差小于某一阈值,则终止前一查询条件的数据查找,直接进行后一查询条件的数据查找。
如图4所示,更新缓存池时,首先检查缓存池的剩余容量,如果剩余容量可以容纳需要更新的数据,则将需要更新的数据载入缓存池,完成更新;否则,计算缓存池内所有数据项的权值,按照权值由小至大的次序,将缓存池内原有的数据项取出缓存池,直至缓存池的剩余容量能够容纳需要更新的数据,将需要更新的数据载入缓存池,完成更新。
数据项的权值计算公式为
w=∑uf(ht,t)=∑u(a*size+(b*ht)/(c*t)),其中a、b、c为参数;
通过设定不同的a、b、c值,可以改变数据项的权值,选择取出缓存池的数据项,例如减小a的取值,即减小数据的大小在权值中的比重,也即数据的大小对于权值的影响较小。

Claims (1)

1.一种以用户为中心且基于多级缓存的海洋时空数据访问方法,其特征在于,所述海洋时空数据存放于多台数据服务器中,每台数据服务器中建立有:
数据库,用于存放海洋时空数据;
缓存池,用于存放数据库中被用户访问过的数据;
缓存列表,用于存放该数据服务器的各用户的访问记录;
进行海洋时空数据访问的步骤为:
(1)用户通过客户端指定查询条件,客户端向中间服务器发出查询请求;
(2)中间服务器接收查询请求,根据请求数据的位置,为该用户指定数据服务器,被指定的数据服务器根据缓存列表判断该用户的请求数据是否有访问记录;
如果有访问记录,则从缓存池中读取该数据并返回给用户;
否则,则跳转至步骤(3),并更新缓存列表;
本步骤中,中间服务器接收查询请求,判断请求数据所在的数据服务器,当请求数据存在于多台数据服务器时,优先指定空闲的数据服务器;
数据服务器定时向中间服务器发送心跳信息,中间服务器根据心跳信息判断各数据服务器的空闲状态;
(3)检查缓存池中是否存在请求数据;
如果缓存池中有请求数据,则将该请求数据返回给用户;
否则,从该数据服务器的数据库中读取请求数据并返回给用户,同时更新缓存池;
步骤(3)中更新缓存池时,首先检查缓存池的剩余容量,如果剩余容量可以容纳需要更新的数据,则将需要更新的数据载入缓存池,完成更新;否则,计算缓存池内所有数据项的权值,按照权值由小至大的次序,将缓存池内原有的数据项取出缓存池,直至缓存池的剩余容量能够容纳需要更新的数据,将需要更新的数据载入缓存池,完成更新;
步骤(3)中,从数据库中读取数据前,判断所读取数据对应的地理位置,以地理位置为中心,按照预定的半径确定地理范围,读取与该地理范围相对应的所有同类型数据,并更新缓存池,同时仅将用户请求的数据返回给用户。
CN201310328432.0A 2013-07-31 2013-07-31 以用户为中心且基于多级缓存的海洋时空数据访问方法 Active CN103390061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310328432.0A CN103390061B (zh) 2013-07-31 2013-07-31 以用户为中心且基于多级缓存的海洋时空数据访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310328432.0A CN103390061B (zh) 2013-07-31 2013-07-31 以用户为中心且基于多级缓存的海洋时空数据访问方法

Publications (2)

Publication Number Publication Date
CN103390061A CN103390061A (zh) 2013-11-13
CN103390061B true CN103390061B (zh) 2016-12-28

Family

ID=49534333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310328432.0A Active CN103390061B (zh) 2013-07-31 2013-07-31 以用户为中心且基于多级缓存的海洋时空数据访问方法

Country Status (1)

Country Link
CN (1) CN103390061B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678523B (zh) * 2013-11-28 2018-03-09 华为技术有限公司 分布式高速缓存cache数据访问方法和装置
CN105786918B (zh) * 2014-12-26 2020-08-04 亿阳信通股份有限公司 基于数据载入存储空间的数据查询方法和装置
CN105868023B (zh) * 2016-03-24 2019-11-26 联想(北京)有限公司 一种分布式系统中的数据处理方法及计算节点
CN106446050A (zh) * 2016-08-31 2017-02-22 北京云纵信息技术有限公司 一种针对数据库的变化数据进行订阅的方法及系统
CN108694075B (zh) * 2017-04-12 2021-03-30 北京京东尚科信息技术有限公司 处理报表数据的方法、装置、电子设备和可读存储介质
CN107278366A (zh) * 2017-05-27 2017-10-20 福建联迪商用设备有限公司 一种提高下载效率的下载方法及其下载系统
CN108984763B (zh) * 2018-07-20 2021-10-01 深圳脉企大数据科技有限公司 查询方法、客户端、服务器以及计算机可读介质
CN109284309A (zh) * 2018-10-16 2019-01-29 翟红鹰 数据库缓存方法、终端及计算机可读存储介质
CN109977129A (zh) * 2019-03-28 2019-07-05 中国联合网络通信集团有限公司 多级数据缓存方法及设备
CN111488382A (zh) * 2020-04-16 2020-08-04 北京思特奇信息技术股份有限公司 一种数据调用方法、系统及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1945578A (zh) * 2006-08-26 2007-04-11 福州开睿动力通信科技有限公司 一种基于空间数据库和SVG的高速Web电子地图的生成及应用方法
CN101692229A (zh) * 2009-07-28 2010-04-07 武汉大学 基于数据内容的三维空间数据自适应多级缓存系统
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1945578A (zh) * 2006-08-26 2007-04-11 福州开睿动力通信科技有限公司 一种基于空间数据库和SVG的高速Web电子地图的生成及应用方法
CN101692229A (zh) * 2009-07-28 2010-04-07 武汉大学 基于数据内容的三维空间数据自适应多级缓存系统
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"三维空间数据引擎多级缓存管理技术研究";王玭茜;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120115(第01期);第2.3节第14页第3-4段、第19页第5段-最后一段、第43页第4.2节及图4.2 *

Also Published As

Publication number Publication date
CN103390061A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
CN103390061B (zh) 以用户为中心且基于多级缓存的海洋时空数据访问方法
CN103366016B (zh) 基于hdfs的电子文件集中存储及优化方法
CN101692229B (zh) 基于数据内容的三维空间数据自适应多级缓存系统
CN103324724B (zh) 数据处理方法及装置
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
US7143240B2 (en) System and method for providing a cost-adaptive cache
CN109643312A (zh) 托管查询服务
CN106600523A (zh) 一种三维模型数据的瓦片式快速加载方法
CN107171961B (zh) 基于内容流行度的缓存方法及其装置
CN104281701B (zh) 分布式多尺度空间数据查询方法及系统
CN107633680A (zh) 出行数据的获取方法、装置、设备和系统
CN109062505A (zh) 一种缓存策略写入分层硬件架构下的写性能优化方法
CN104850627B (zh) 进行分页展示的方法及装置
CN107025243A (zh) 一种资源数据的查询方法、查询客户端和查询系统
CN103106152A (zh) 基于层次存储介质的数据调度方法
CN107590226A (zh) 一种基于瓦片的矢量地图渲染方法
CN107247675B (zh) 一种基于分类预测的缓存选择方法和系统
CN111930767A (zh) 一种基于多层缓存的矢量瓦片实时切片和更新方法
CN102857560A (zh) 一种面向多业务应用的云存储数据分布方法
WO2022062184A1 (zh) 高并发查询方法、智能终端及存储介质
US20170109282A1 (en) High-performance distributed caching
CN108647155A (zh) 一种基于深度学习的多级cache共享的方法和装置
CN106326344B (zh) 一种分散式大数据管理与检索的方法
CN107193494A (zh) 一种基于ssd和hdd混合存储系统的rdd持久化方法
Francès et al. Improving the efficiency of multi-site web search engines

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