APP下载

基于内存数据网格文件存储分析

2015-11-14俞祥鹏

电脑知识与技术 2015年22期
关键词:性能分析

俞祥鹏

摘要:内存数据网格存储系统能够大大提高数据的存储速度,现有的内存数据网格原型系统大多支持数据键值对的存储。该文通过利用现有的数据网格原型系统,实现了分布式的内存文件存储工具。并对该工具的存储性能进行分析,并提出几种影响分布式内存数据网格文件存储性能的因素。

关键词:内存数据网格;文件存储;性能分析

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)22-0171-03

Abstract:In-memory-grid storage system can increase the speed of data storage. Most existing memory data grid prototype system only support key-value pair storage. In this paper,by using the existing data grid prototype system, we develop a tool that can storage file in In-memory-grid. And analyzed the performance of the tool, And put forward several kinds of influence factors of distributed memory data grid file storage.

Key words:in-memory data grid; file storage; performance analysis

随着云计算技术的普及,产生的数据量越来越大,数据共享越来越普遍。为了处理海量数据,解决传统数据库面临的大规模数据访问瓶颈问题,分布式缓存技术得以引入。分布式缓存将数据分布到多个缓存服务节点,在内存中管理数据,对外提供统一的访问接口,基于冗余备份机制实现高可用支持,又被称为内存数据网格(IMDG)。IMDG是基于内存的新型分布式数据键值对存储系统,与分布式缓存相比,可以简化应用层数据访问逻辑的开发,减少维护缓存与数据库的管理逻辑,屏蔽应用与数据库的交互细节,并提供持久化机制将内存中的数据自动存储于数据库中[2]。

目前IMDG主要是对数据键值对存储研究比较多,本文通过分析现存的IMDG原型系统,利用Infinispan内存数据网格原型实现的分布式文件存储。通过在单机环境下和集群环境下的性能测试实验,测试该内存数据网格的文件读写性能,以及验证影响内存数据网格的读写性能的因素[2,6]。

1 内存数据网格的概述

1.1分布式缓存

在计算机中,分布式缓存是传统概念上单一缓冲的扩充。一个分布式缓存跨越多个服务器,因此其具有可扩展性和事物处理性。通常主要是用于存储应用程序数据驻留在数据库和web会话数据。因为内存变得非常便宜和网卡已经变得非常快分布式缓存的[1]现在已经使用的越来越广泛。对于分布式缓存主要的特性有高性能、动态可扩展、高可用性、易用性、分布式代码执行[3,4]。现今,很多的系统都使用了数据缓存技术,典型的数据检索系统,将数据检索技术和数据缓存技术结合起来,极大地提高了检索效率。

1.2 内存数据网格文件存储

Infinispan是JBoss Cache缓存框架的后续项目,它是一个开源的数据网格平台,用于访问分布式状态的群集节点。它可以提供无固定类型的存储key-value值,文件的存储,基于网格的数据存储。在存储数据方面我们可以设置数据在集群中保存的副本数量;同时提供负载均衡,以及失效节点的数据自动迁移到其他节点的功能[5]。GridFileSystem(网格文件系统)是一个全新实验性的API,这些API使Infinispan后端的网格数据像文件系统一样展示出来。对于实现的系统,集群中某个节点失效时,该节点存储的数据会自动迁移到其他的节点上,实现数据的可靠性存储。同时如果某个节点上存储的数据过多,也能够进行负载平衡。

1.3 工具的实现

内存数据网格提供系统两种类型的时间存储。一种是文件流形式的数据存储,主要存储的内容是文件。对于这种形式的数据,内存数据网格(Infinispan)首先要先去内存文件系统中取数据,在集群中选择数据所要存放的节点(数据在集群中存两份),然后通过Jgroup进行数据的传输。另一种是Key-Value类型的数据。对于这种数据的存储内存数据网格(Infinispan)直接接收套接字客户端发送过来的Key-Value的键值对,然后在集群中选择两个节点进行存储(数据存放两份),通过Jgroup进行数据的传送。

2 实验方案介绍

测试的系统采用的是Ubuntu14.1,内核版本是3.11.10.11;java的环境是JDK8。虚拟机内存大小是2GB。采用的方法是测试得到的数据取平均值,在试验中每组数据测了50次,然后求其平均值。单机环境下的测试,主要测试因素是文件大小和文件存取时分块大小。文件存取时分块大小,主要指的是,文件在存储到内存数据网格时,内存数据网格将文件分成块,进行分块传输。文件在内存数据网格中也是以块的大小存放。这种分块对上层用户是透明的。下面分针对这两种情况进行了测试。在集群中的测试过程中因变量为读文件时间和写文件时间,自变量为文件大小、分块的大小、集群环境。实验的交换机的带宽是1000M/S。主要目的是为了找出在集群环境下,文件大小,文件存入是分块的大小,集群环境与文件的存取时间的关系。

2.1实验集群场景选择

集群环境的测试中,主要目的是为了测试,集群的分布与文件的读写时间的关系。主要考虑的因素有两点:一、同一台物理机上的虚拟机之间会不会由于虚拟化的不稳定,从而影响读写性能;二、文件存储的过程中存储在本节点与不存储在本节点读写性能是否有影响。根据这两个猜想我们设计了下面的集群中的几个场景。在集群环境下我们采用下面图中的几种结构。场景A写AB存,一台物理机上运行两台虚拟机,A虚拟机写入数据,A和B虚拟机存入数据(数据在集群中存储两份)。场景A写BC存,一台物理机上运行三台虚拟机,A虚拟机写入数据,BC存入數据(数据在集群中存储两份);场景A写AD存,物理机(HA-A)上运行虚拟机A,物理机(HA-B)上运行虚拟机D,物理机(HA-C)运行虚拟机G,虚拟机A写入数据,存放在A和D两个节点上;场景A写BD存,物理机(HA-A)上运行两台虚拟机A和B,物理机(HA-B)上运行虚拟机D,虚拟机A写入文件,虚拟机B和虚拟机D存储文件。在这些场景中我们固定的文件大小为100M,文件块大小为50M。

2.2数据的监控

对于影响存取时间的猜想:数据段之间的时间隔,系统在接收和发送数据时都有一个发送缓冲区和接收缓冲区,每接收完一个缓冲区,集群需要确定当前所有的集群是否是存活,发送数据。如果数据丢失,那么会重新发送一份发送之前缓冲区中的数据。对应场景虚拟机环境和物理机环境的对比,存文件的时间效率不高的原因可能是虚拟机的不稳定导致。

3 实验结果分析

一个PUT(存)操作,只会产生网格中节点子集数(numOwners)个远程调用。一个GET操作只针对网格中某一个节点产生一次远程调用。另为,在分布式模式下,不管配置的是同步调用还是异步调用,如果缓存条目不存在于本地时,都是采用同步调用请求用来从其他节点获取数据。对于数据的读,时间上存在很大的变化,主要是它总是优先读取本地节点的数据,才去读取对应节点的数据。

4 结束语

Infinispan分布式模式通過连续性哈希算法从网格中选择出节点来保存缓存条目,节点总数就是数据网格中节点子集,哈希算法通过配置文件知道节点子集总数,同时它维护缓存条目一直存在于这个数的节点上。节点子集数的大小与Infinispan数据网格的性能和容错能力相关,节点子集数太大,即缓存条目保存在很多节点上会影响性能,但节点子集数太小又影响容错能力。

数据网格通过哈希算法从网格中存取数据,存取数据的过程中不是向所有节点发送多播请求,存取过程也不需要维护很繁多的元数据。一个PUT(存)操作,只会产生网格中节点子集数(numOwners)个远程调用。一个GET操作只针对网格中某一个节点产生一次远程调运,在后台实质也是产生网格中节点子集数(numOwners)个调用,且这些调用是并发进行的,查询到的结果会返回给调用者。另为,在分布式模式下,不管配置的是同步调用还是异步调用,如果缓存条目不存在于本地时,都是采用同步调用请求用来从其他节点获取数据。因此写数据时间比读数据时间长。

参考文献:

[1] 秦秀磊, 张文博, 魏峻, 等. 云计算环境下分布式缓存技术的现状与挑战[J]. 软件学报, 2013, 24(1): 50-66.

[2] Marchioni F. Infinispan data grid platform[M]. Packt Publishing Ltd, 2012.

[3] Chandra D G, DGE&T M L E. A Survey on Cloud Database[J]. IEEE IT Professional, 2013.

[4] Chandra D G, Prakash R, Lamdharia S. A Study on Cloud Database[C]//Computational Intelligence and Communication Networks (CICN), 2012 Fourth International Conference on. IEEE, 2012: 513-519.

[5] 刘朝辉,王伟,王彦士,等.面向内存数据网格的分布式事务保障机制[J].计算机科学与探索, 2013,12(18):812-822.

猜你喜欢

性能分析
各种热水器方案的比较研究
自动控制系统的优劣评价分析
网络安全态势量化评估模型
网络安全态势感知国内外研究现状
TD—LTE智能天线性能分析和应用研究
DCS控制系统在生产线物料运输工作的应用
数字校园中的统一数据交换技术研究
基于Petri网理论的AFDX性能分析
关于动车组动车转向架的关键部件性能分析
气动调节阀的性能调试及主要性能分析