APP下载

地理空间信息云平台负载调度算法设计*

2020-11-26朱建广翟世奎

关键词:空间信息副本队列

朱建广, 张 文, 刘 超, 翟世奎

(1.中国海洋大学, 山东 青岛 266100; 2.青岛蓝湾信息科技有限公司, 山东 青岛 266109; 3.山东农业工程学院, 山东 济南 250100)

近年来,随着计算机技术、网络通信技术、物联网技术、地理空间信息技术快速发展,人们开始利用地理信息系统(GIS)与网络、通信等技术相结合的方法,解决目前日益增多的异构数据获取困难问题,实现空间信息共享。同时,从地理空间信息基础设施到地理空间信息处理系统、数字地球、智慧城市等建设方面,地理空间信息共享正发挥着越来越重要的作用[1]。

随着信息系统存储数据量的日益增加,随之带来了诸多数据获取问题。Google提出的Google File System(GFS)数据存储方案和MapReduce数据处理模式很好的解决了大数据环境下的数据存储和数据处理问题[2-3]。为后续的研究工作提供了很好的思路和方向。

随着空间信息的共享,越来越多的行业相关人员访问中心数据库,并由此带来了服务器的高负荷和负载均衡问题。本文通过研究访问量曲线变化图发现访问量的变化呈现周期性规律。本文通过利用这种周期性规律,提出了地理空间信息云平台负载调度算法。

该算法参考GFS数据存储方案,将数据进行多副本存储架构。该存储架构不但可以解决数据的完整性问题,还能有效解决高峰期的数据请求负载均衡问题。本文设计的算法通过哈希函数来处理高峰请求的负载均衡问题,将不同的请求散列在诸多相同副本之上。副本数据利用非高峰时期进行复制,副本队列总长度一定,超出队列长度,系统将会自动清理旧的副本数据。所有过程由主(Master)服务器统一调控。

云平台所有数据共享接口通过Web Service技术实现,并设计对应的数据访问机制、数据共享机制和数据安全机制。

经过验证,本文所设计的负载均衡算法有效可行,可有效缩短平均请求相应时间。

1 地理空间信息云平台总体设计

1.1 设计原则

本文通过对城市经济建设和整个系统建设环境的综合性分析,以及城市对地理信息系统的需求分析,结合当今地理空间信息系统跨平台数据共享和数据操作的实际情况,以需求促进应用开发,推动城市信息化建设,包括地理空间信息基础设施建设、地理空间信息资源开发和共享、地理空间信息技术应用和信息产业发展等。系统标准化框架的设计主要从交互性、易用性、共享性以及稳定性方面进行综合考虑。

1.2 框架设计

本文设计的云平台对地理空间框架数据、专题共享空间数据、电子地图数据等进行集中维护。由于上述数据具有数据量大、联动更新范围广、更新成本高的特点,且用户对上述数据的使用频率较高,需要借助地理空间信息系统资源共享平台开展集中存储与维护。其共享方式如图 1所示,各相关部门定期与资源共享平台交换对应的专题共享空间数据,保持数据的一致性。资源共享平台按照统一标准对此类地理信息数据进行整合处理后,以Web Service方式发布框架数据,为各部门提供具备一致性的地理空间信息服务。

图1 地理信息“集中—分布”相结合的共享方式

对于各领域专属的专题业务空间数据,资源共享平台的分布式共享是通过元数据共享和目录信息共享的方式来实现的,其原理为:各领域的交换节点将元数据信息和目录信息定期向资源共享平台进行更新;资源共享平台通过专用管理组件将元数据和目录信息更新到到平台元数据和目录数据库,并通过Web Service方式向外部节点提供一致性的元数据服务和目录服务。

该平台采用Web服务方式共享数据,开发者无需了解各部门应用系统状况,形成松散耦合特点的共享模式,使平台服务可根据发展需要进行弹性调整,同时可以实现对跨平台的异构数据进行访问与互操作[4-5]。

1.3 数据访问机制

数据格式转换就是通过数据转换中间件将异构格式的数据转换为标准化数据格式。

数据直接访问是指, GIS系统或客户端对其他GIS系统直接进行数据访问或操作。直接数据访问不仅避免了繁琐的接口编程工作,还使得系统实现了无缝集成[6-7]。

本文实现的地理空间信息资源云平台按照OGC规范实现如WMS、WFS、WCS等标准接口,按照OpenGIS的数据互操作方式通过Web Service接口进行平台间数据的共享。

数据转换模式和数据直接访问模式,都是基于对数据访问接口的标准化操作从而解决数据共享过程中的异构性问题。本文通过复杂虚拟仪器架构组件设计规范,提供出一套标准化的数据组件开发模型,通用客户端通过动态加载不同数据组件以实现数据的共享,从而实现系统的无缝集成和多种数据格式的互操作。通用OpenGIS客户端通过发出数据请求获取数据,数据源服务器不但要提供标准化的数据,还要将显示该数据的可视化组件、数据处理组件和数据操作组件都以组件的形式提供给客户端。GIS客户端通过动态加载数据组件再结合数据源的标准化,显示和操作数据,具体实现方式全部对用户隐藏。用过通过该框架可以无缝接入各类标准化OpenGIS系统,并查看操作其数据。

OpenGIS规范是一个通用的可以促进系统无缝集成的数据规范,可以使得各个系统对地理信息数据进行分布式的访问。OpenGIS规范为软件开发者提供了通用组件设计规范模板,开发者可根据这套规范进行地理空间信息系统的研发,并实现标准化系统。OpenGIS规范的主要规范框架包括:

(1)用数字表示地球和地球现象的通用方法;

(2)访问、处理、管理、表示、共享地理数据的通用模式;

(3)建立开放地理数据模型和开放GIS 服务模式,从技术和制度上搭建解决交互性问题框架。

OpenGIS数据的集成模式和数据的互操作实现方式为无缝集成多种GIS系统提供了一个快捷的方案和完善的实现思路。

2 负载调度算法存储架构设计

2.1 数据库群架构设计

空间基础信息数据库群的主要任务是整理、整合各类空间基础数据,按照标准格式要求形成数据集,并加工处理成数据产品,用于发布或共享。从功能的视角看,空间基础信息数据库群为空间基础信息共享提供源源不断的资源,它既是资源共享平台的核心,也是相关应用的开发基础。

该平台不但要保证数据的共享,还要对数据的完整性进行控制。我们基于ESRI Geodatabase数据模型组织存放的空间数据,并根据GFS的设计思路,对每个数据进行3个及3个以上的副本存储以保障负载均衡问题、数据完整性和大数据量访问问题。

2.2 拓扑结构设计

为了应对大数量访问,数据库采用主从服务器工作模式进行管理,其拓扑结构如图2所示。

图2 主从服务器工作模式拓扑图

Master服务器负责处理用户对数据库的请求操作,并形成请求队列。Master负责对这些请求进行分发。Slave服务器负责处理具体数据请求,存储数据,并进行数据传输操作。

Master中存储各个数据块的如下信息:

(1)数据块大小;

(2)数据所在服务器标识符;

(3)数据副本所在服务器标识符。

Master服务器只负责存储和操作元数据信息,并不对实际数据进行操作。

Master服务器要定期对数据存储的Slave服务器进行Ping操作,以判断服务器是否失效。如果存储服务器失效,Master要更新存储在其中的元数据。并指挥Slave服务器进行数据副本的重新生成。

Master中还存放有数据访问请求队列,对数据请求进行分配操作。

Slave服务器中不仅要存放数据和数据副本,还要存放数据副本队列。队列中尽可能多的存放其他数据的副本数据,如果队列满后,采用FIFO和判断数据副本数量相结合的方法进行副本数据清除操作。

3 负载调度算法设计

3.1 负载分析

对地理空间信息资源云平台的访问请求量有一定的季节相关性。根据历史数据分析,在雨季或遭遇恶劣天气时,涉海相关方面对地理空间信息资源云平台的访问需求会显著增大,呈现季节相关特征(见图3)。

从图中可以明显看出,每年3月,访问请求数量会出现一个小高峰。3月是季节多变月份,雨水较多,针对地理空间信息资源云平台的访问需求会增大,访问请求数量相应增加。访问请求数量在6~8月出现一个非常显著的峰值。此时是暴雨台风等恶劣气候多发季节,旅游、渔业生产、科研外出船只与人员会高频率访问地理空间信息资源数据。同样在12月,由于急剧降温,访问请求数量也会出现一个小高峰。全年其他时间,访问请求数量呈现随机分布。

图3 访问请求数量曲线图

一年之中针对地理空间信息资源云平台的访问请求数量,达到3~4倍的波动范围,仅依靠简单的队列处理方式难以及时高效满足大数量需求。按照忙时需求配置更多系统软硬件资源的方式解决该问题,会在闲时产生较大的系统资源浪费。本文根据访问请求数量分布较好的周期性特征,将系统负载阶段划分为高峰负载阶段和随机负载阶段两种类型,以确保用户较短的平均响应时间为目标,针对两种阶段特点设计相应的负载均衡分配算法。

3.2 高峰负载均衡算法

首先分析高峰负载时段特点,该时段可能是一天中的某若干个小时区间,或是一年中的某个连续时间段。算法将通过利用空闲时段进行副本的制作,并对请求进行分流以达到负载均衡的效果。算法利用FIFO机制和副本机制有效应对了高峰期数据分发问题问题。并利用哈希算法有效对数据进行分流。

算法步骤如下:

1. 在负载空闲时间段,复制3份数据副本;

2. 将复制的数据副本加入从属服务器的副本队列中;

3. 将复制的数据副本信息在主服务器中进行注册;

4. 统计副本数量,设定为s;

5. 如果从属服务器中数据副本队列已达到设定最大值,则首先找到排在副本队列最前端的数据;统计其在机群中的副本数量;若数据副本数量超出预设最大值,即清除该副本,同时删除被清除副本在主服务器中相应的索引;

6. 如果从属服务器中数据副本队列尚未达到设定最大值,则按照顺序查看下一个排序靠前的副本;转到程序5,直至队列末端。

步骤1~6算法伪代码如下:

if(checkwetherfastigium(time))

{

Forreach(data in server)

Ndata = data.duplicatetime();

if(slave.queue>=maxvalue)

{

Forreach(slaveserver.queue.data)

{

if(slaveserver.queue.data.n>=3)

slaveserver.queue. delete();

break;

else

continue next;

}

}

else

Ndata.join();

}

7. 在负载繁忙时间段,主服务器在短时间内集中收到大量访问请求,按照请求产生顺序进行排序编号f,按照一下表达式用哈希函数对序列进行处理,对数据副本数量进行取模:

m=hash(f) mods。

8. 按照上述表达式规则,将访问请求分配到编号为n的从属服务器上进行处理。

步骤7~8的算法伪代码如下:

Forreach(x in requestQueue)

{

n = hash(x) mod s;

slaveserver(n).process(x);

}

3.3 随机负载突发高峰负载调度算法

面对随机负载高峰,服务器对数据请求进行随机分发以应对高峰负载,该方法未经过严密论证,但通过章节4的仿真实验表明,该方法有效可行。详细步骤如下:按照GFS部署策略,每块数据在服务器中至少存在3个副本。在副本队列未满时,从属服务器不会清除数据副本。因此在正常条件下,机群中数据副本的数量应不小于3。

随机负载会将访问请求按随机原则分配到各从属服务器上。如果我们用s表示副本数量,用n表示该副本所在从属服务器序列号,则表达式为:

n=rnd(void) mods。

主服务器通过随机数对系统负载进行临时均衡操作,实现降低平均响应时间的效果。如系统请求超过预设最大值k时,需调用算法3.2,以实现系统负载均衡。

4 仿真验证

4.1仿真环境

按照本文架构部署设计了示范平台,平台由1台主服务器和21台从属服务器组成。服务器配置为: 1块Intel 至强5118处理器,64 G内存,2块2TB 6 400 r/min硬盘, 1块1 000 Mbps全双工网卡。该平台以GPS技术、遥感技术、GIS系统为基础,建立地理空间基础数据库和12个专题数据库,实现地理空间基础资源共享,有效避免重复投资建设,通过定制应用的二次开发接口,搭建共享在线服务和空间信息交换系统,为各部门提供地理空间信息共享服务。

平台建立了规范标准体系,以及地理空间资源使用的配套管理制度,提高规范使用信息资源的能力,从而实现青岛高新区地理空间信息资源的集中统一管理和高效合规共享,如图4所示。

图4 物理分散、逻辑集中模式示意图

4.2 数据共享流程

本系统由三部分组成:元数据信息的采集模块、数据处理模块和门户网站。系统实现流程如图5所示。首先,客户端发出数据请求申请,服务器端响应请求申请后,将元数据发送到客户端,再通过中间件将数据库中的数据转换为标准格式,提供给客户端。客户端运用标准化数据解析方法解析数据,并与元数据进行合并。

图5 数据共享流程示意图

4.3 系统仿真

4.3.1 对可预测的高峰进行调度 我们依据平台运行的实际统计数据,对系统访问请求进行模拟,分为3种访问频度,分别是每秒1 000条,每秒3 000条和每秒8 000条,记录每次访问的实际响应时间,计算出不同条件下单个记录的平均响应时间。超过15 s定义为响应失败,每种频度访问时长为200 s。

如表1所示,在单位时间访问请求数量大幅度增加时,与采用原始系统相比,采用负载均衡算法的系统平均响应时间显著降低,相应的系统丢包率明显降低。随着访问量进一步加大,我们可以预见,如不采用负载均衡算法,丢包率会更大,系统很可能出现宕机风险。如此高的丢包率也可能会导致系统运行不稳定,甚至出现未知漏洞风险。

表1 系统丢包率对比

4.3.2 随机高峰调度 我们按照访问请求特征模拟随机请求分布,令部分请求超过最大预设阈值,并监测采用原系统与采用负载均衡算法系统下,系统的平均响应时间。

如图6所示,面对较为复杂的随机系统响应,本文所设计的地理空间信息云平台负载均衡算法可持续稳定运行,并有效降低平均请求时间。

图6 随机高峰请求仿真结果示意

5 结语

本文根据现代物联网对地理空间信息资源的需求和利用情况,提出了地理空间信息云平台负载调度算法。根据该算法所设计的架构建设资源共享平台,实现数据共享的方法。并将系统请求分为可预测高峰请求和随机高峰请求,并统计请求的平均响应时间。结果显示,该算法有效可行,可大幅减少用户平均响应时间。

猜你喜欢

空间信息副本队列
结合多层特征及空间信息蒸馏的医学影像分割
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
使用卷影副本保护数据
面向流媒体基于蚁群的副本选择算法①
在队列里
一种基于可用性的动态云数据副本管理机制
基于区间数和复杂网络的空间信息需求响应过程仿真*
基于时效网络的空间信息网络结构脆弱性分析方法研究