一种地图瓦片数据的读取、分发方法及读取、分发系统的利记博彩app_5

文档序号:9417510阅读:来源:国知局
存缓存中取出该目标瓦片数据返回给用户客户端;若目标瓦片数据不在当前服务器节点上,则执行步骤S14 ; 514、当前服务器节点将数据读取请求转发给存在目标瓦片数据的其它服务器节点,所述其它服务器节点在内存缓存中查找是否存在该目标瓦片数据,若存在,则将该目标瓦片数据发送给当前服务器节点,并存储于当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取目标瓦片数据返回给用户客户端;若不存在,则执行步骤S15 ; 515、在所述其它服务器节点中查找对应的目标瓦片数据,并将查找到的目标瓦片数据存储于本服务器节点的内存缓存中,同时,将该目标瓦片数据发送给所述当前服务器节点,并写入当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取出目标瓦片数据返回给用户客户端。2.如权利要求1所述的地图瓦片数据的读取方法,其特征在于,所述步骤Sll还包括: 每一个所述服务器节点通过预定通信协议接入所述虚拟服务网络时,会将自身的数据存储情况发送给其它服务器节点,同时获取其它服务器节点的数据存储情况,以使虚拟服务网络中的每一个服务器节点中均维护有该虚拟服务网络的数据存储情况表; 所述步骤S13中通过在所述当前服务器节点上构建的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点具体包括: 通过在所述当前服务器节点上构建的R树从当前服务器节点上维护的数据存储情况表中查找所述数据读取请求对应的目标瓦片数据所在的服务器节点。3.如权利要求2所述的地图瓦片数据的读取方法,其特征在于,所述虚拟服务网络将用户客户端发送的数据读取请求写入缓存读取队列中,由缓存读取线程读取缓存读取队列中的数据读取请求,并从当前服务器节点内存缓存中读取数据读取请求对应的结果数据,并将结果数据赋值给结果处理对象,并将该结果处理对象送入结果处理队列中; 若缓存读取队列从当前服务器节点内存缓存中未读取到数据读取请求对应的结果数据,则通过当前服务器节点上的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点,若目标瓦片数据在当前服务器节点上,则将数据读取请求写入当前服务器节点的数据读取队列中,由文件读取线程从当前服务器节点的文件中读取对应的目标瓦片数据; 若通过R树查找到所述数据读取请求对应的目标瓦片数据在其它服务器节点,则将数据读取请求写入到该其它服务器节点对应的网络数据读取队列中,由网络线程从网络数据读取队列中取出数据读取请求,向对应的服务器节点发送该数据读取请求并等待目标瓦片数据的接收。4.如权利要求3所述的地图瓦片数据的读取方法,其特征在于,所述每一个服务器节点的内存缓存采用M*N个键-值对容器存储地图瓦片数据,其中,M为地图瓦片数据级别,N为每一个级别键-值对容器的数量,键为容器唯一标识,值为对应的地图瓦片数据; 所述用户客户端发送的数据读取请求中至少携带有地图瓦片数据的X坐标、Y坐标和该地图瓦片数据对应级别;所述步骤S12中在当前服务器节点的内存缓存中查找是否存在对应的目标瓦片数据具体包括: 根据数据读取请求中携带的地图瓦片数据对应级别以及X坐标和Y坐标,找到对应的键-值对容器,缓存读取线程从键值对容器中读取结果数据。5.如权利要求4所述的地图瓦片数据的读取方法,其特征在于,所述每一个服务器节点的内存缓存采用K个键值容器存储文件数据存在表,其中,K为地图瓦片数据级别,键为容器标识,值为数据存在表; 当数据读取请求对应的目标瓦片数据不存在于任一服务器节点内存缓存中而是存在于服务器节点上时,文件读取线程或网络线程首先读取该目标地图瓦片数据对应的文件的文件头,从而获取该文件的文件数据是否完整,若文件数据完整,则添加一个新的键值对到所述键值容器中,值设为NULL;若文件数据不完整,则读取该文件的文件数据索引表,判断该文件的每一地图瓦片数据是否存在,并将是否存在结果以键值对添加到所述键值容器中; 所述步骤S13中目标瓦片数据不在当前服务器节点上具体包括: 在当前服务器节点上通过R树查找目标瓦片数据所在的服务器节点时没有找到当前的服务器节点;或者, 在当前服务器节点上通过R树查找到数据读取请求对应的地图瓦片数据在当前服务器节点上,但通过查阅当前服务器节点的数据文件存在表,查阅结果为目标瓦片数据不存在于当前服务器节点上,执行步骤S14。6.一种地图瓦片数据的分发方法,其特征在于,所述方法包括: S21、接收用户客户端发送的数据读取请求,检测所述数据读取请求对应的目标瓦片数据类型; S22a、若所述数据读取请求对应的目标瓦片数据为栅格地图瓦片数据,则服务器节点直接将目标瓦片数据分发给对应的用户客户端; S22b、若所述数据读取请求对应的目标瓦片数据为矢量地图瓦片数据,则服务器节点先将目标瓦片数据渲染后再分发给对应的用户客户端。7.—种地图瓦片数据的读取系统,其特征在于,所述系统包括: 第一查找模块,用于根据用户客户端发送的数据读取请求,在所述虚拟服务网络的当前服务器节点的内存缓存中查找是否存在对应的目标瓦片数据,若存在,则直接将对应的目标瓦片数据返回给用户客户端;若不存在,则驱动第二查找模块工作,其中,所述虚拟服务网络中包括多个服务器节点,所述多个服务器节点之间通过预定通信协议互连; 第二查找模块,用于通过在所述当前服务器节点上构建的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点; 第一数据访问模块,用于若目标瓦片数据在当前服务器节点上,则访问当前服务器节点得到要查找的目标瓦片数据,并将该目标瓦片数据写入当前服务器节点的内存缓存中,再从内存缓存中取出该目标瓦片数据返回给用户客户端;若目标瓦片数据不在当前服务器节点上,则驱动请求转发模块工作; 请求转发模块,用于通过当前服务器节点将数据读取请求转发给存在目标瓦片数据的其它服务器节点; 第三查找模块,用于在所述其它服务器节点的内存缓存中查找是否存在该目标瓦片数据,若存在,则将该目标瓦片数据发送给当前服务器节点,并存储于当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取目标瓦片数据返回给用户客户端;若不存在,则驱动第二数据访问模块工作; 第二数据访问模块,用于访问所述其它服务器节点得到要查找的目标瓦片数据,并将查找到的目标瓦片数据存储于本服务器节点的内存缓存中,同时,将该目标瓦片数据发送给所述当前服务器节点,并写入当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取出目标瓦片数据返回给用户客户端。8.如权利要求7所述的地图瓦片数据的读取系统,其特征在于,所述系统还包括: 数据存储情况表维护模块,用于当每一个所述服务器节点通过预定通信协议接入所述虚拟服务网络时,会将自身的数据存储情况发送给其它服务器节点,同时获取其它服务器节点的数据存储情况,以使虚拟服务网络中的每一个服务器节点中均维护有该虚拟服务网络的数据存储情况表; 所述第二查找模块,用于通过在所述当前服务器节点上构建的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点具体包括: 通过在所述当前服务器节点上构建的R树从所述数据存储情况表中查找所述数据读取请求对应的目标瓦片数据所在的服务器节点。9.如权利要求8所述的地图瓦片数据的读取系统,其特征在于,所述系统还包括多个缓存读取线程、多个文件读取线程和多对网络线程; 所述缓存读取线程,用于读取缓存读取队列中的数据读取请求,并从当前服务器节点内存缓存中读取数据读取请求对应的结果数据,并将结果数据赋值给结果处理对象,并将该结果处理对象送入结果处理队列中; 所述文件读取线程,用于从数据读取队列中读取数据读取请求,并从当前服务器节点的文件中读取对应的目标瓦片数据; 所述网络线程,用于从网络数据读取队列中取出数据读取请求,向对应的服务器节点发送该数据读取请求并等待目标瓦片数据的接收。10.一种地图瓦片数据的分发系统,其特征在于,所述分发系统包括: 检测模块,用于接收用户客户端发送的数据读取请求,检测所述数据读取请求对应的目标瓦片数据类型; 第一分发模块,用于若所述数据读取请求对应的目标瓦片数据为栅格地图瓦片数据,则直接将目标瓦片数据分发给对应的用户客户端; 第二分发模块,用于若所述数据读取请求对应的目标瓦片数据为矢量地图瓦片数据,则先在服务器节点上将目标瓦片数据渲染后再分发给对应的用户客户端。
【专利摘要】本发明公开了一种地图瓦片数据的读取、分发方法及系统,读取方法包括:建立虚拟服务网络,其中包括多个互连的服务器节点,当接收到数据读取请求时,先在当前节点缓存中查找,若查找不到,则通过构造的R树查找对应数据的节点位置,若在当前节点,则读取数据,并将数据存储于当前节点的缓存然后返回,若数据存在于其它节点,先在其它节点的缓存查找数据,若缓存不存在数据,再到节点上查找,将查到的数据写入该节点的缓存,并且将数据写入当前节点的缓存,然后返回。本发明通过建立虚拟服务网络,只要数据存储于虚拟服务网络中,就会被任意一个服务节点访问到;同时,只要数据被访问到,该数据就会缓存在虚拟服务网络的某些节点缓存中。
【IPC分类】G06F17/30
【公开号】CN105138678
【申请号】CN201510577596
【发明人】程曦, 史凤玲, 袁红念, 曹倩倩
【申请人】武汉云空间地理信息技术有限公司
【公开日】2015年12月9日
【申请日】2015年9月11日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1