APP下载

利用内存数据库优化应用系统性能

2014-04-29谢玉轩

中国电子商情 2014年1期
关键词:中间件内存服务器

谢玉轩

引言:目前,本公司承担维护多套应用系统,由于系统广泛推广数据量成年度线性增长,业务系统性能却逐年下降。为了解决这个问题,引入内存数据库TimeTen优化技术。本文通过应用系统数据库现状调研分析Oracle数据库性能下降的原因,研究使用了内存数据库TimeTen技术,解决了数据库性能下降问题,更大提高了数据库的运行速度,保障了应用系统的稳定快速运行。

一、前言

目前本公司承担维护多套应用系统,其中使用Oralce数据库有物流数据库、公用数据库RAC集群、专用数据库RAC集群等。以上数据库与各自应用中间件目前分别部署在不同服务器中。随着应用广泛推广及用户深入使用,数据量呈年度线性增长,业务系统性能逐渐下降,数据库整体应用性能下降明显。

二、内存数据库建设的必要性和条件

(一)建设必要性分析

由于传统Oracle数据库目的是处理永久和稳定数据,很难顾及数据及其处理的定时限制,不能满足实时应用的要求。所以通过新技术,建立内存数据库,可有效解决以上问题,利用内存数据库和Oracle数据库实时同步性能,将内存数据库与中间件置于同一服务器中,让内存数据库处理实时性强的业务逻辑处理数据,将此部分处理过程由IO密集型改为CPU密集型,有效提升关键应用访问性能。

(二)建设条件分析

内存数据库需要将数据置于内存中,为了总体性能,需要将原数据库和内存数据库物理分开,避免硬盘读写、存储控制器、内存使用等资源竞争。

目前公司代维的应用系统,均是应用和数据库物理分开,这样可将内存数据库与中间件置于同一服务器中,关键应用直接通过访问内存数据库实现性能优化提升。

三、内存数据库技术原理

内存数据库TimesTen是将数据和元数据存放在内存中,以此来获得极高的响应速度并实现数据缓存。它有完善的事务管理,并针对物理内存的优化调度算法和并发事务处理。实际应用使用时,数据存储在内存中,利用存儲在硬盘中的日志和检查点文件文件,提供一套数据完善恢复机制,保证数据可靠性。

(一)内存数据库TimesTen和传统数据库Oracle的比较

1.传统数据库Oracle的目的是处理永久、稳定的数据。强调维护数据的完整性、一致性,但很难顾及数据及其处理的定时限制,不能满足实时应用的需要;

2.传统数据库Oracle由于磁盘IO、缓存管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大;内存数据库由于没有磁盘IO和缓存管理,能搞准确估算事务响应时间;

3.内存数据库TimesTen处理的数据通常是“短暂”的,即有一定的时效。所以,实际应用中内存数据库TimesTen主要处理实时性强的业务逻辑处理数据。而传统数据库Oracle旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价;

4.传统数据库Oracle是IO密集型应用,内存数据库为CPU密集型应用。

(二)内存数据库TimesTen快的原因

内存数据库并非通过简单将数据置于内存中来提升应用性能,而是它有独特的数据访问机制、内部调度算法、数据访问路径优化算法等等。当应用分别连接传统数据库Oracle和内存数据库TimesTen时,传统数据库Oracle走的访问路径和资源成本远远多于内存数据库TimesTen。相对传统数据库内存数据库TimesTen技术要快很多,并能提升应用性能,减少企业信息化额外投资。

(三)内存数据库TimesTen使用方式

应用重新部署时,将内存数据库与中间件应用置于同一服务器中,将中间件应用数据库连接直接指向内存数据库,同时内存数据库与传统数据库建立实时同步复制连接,将应用访问热点数据(全表或表部分数据)通过初始化置于内存数据库中,设定SWT或AWT(同步或异步)方式。当中间件应用访问不存在于内存数据库的数据时,内存数据库直接通过PassThough(透穿)方式,将数据访问重定向到传统数据库Oracle,该部分过程对用户来说是透明处理,并不影响应用性能。

四、内存数据库TimesTen建设过程

(一)建设总体思路

利用现有成熟内存数据库技术提升应用性能,可减少企业信息化投资并有效提升应用性能,具体思路步骤如下:

1.应用调研,查找用户热点数据及实时访问数据;

2.部署内存数据库;

3.初始化内存数据库数据;

4.跟踪内存数据库,调整算法和参数。

(二)内存数据库建设实施过程

提升应用性能有多种方式,如大规模修改应用代码、更换服务器、存储硬件设备等,以上方式有明显特点,投资太大,提升应用性能存在不确定性。可利用内存数据库这项成熟技术,通过内存数据库和传统数据库无缝数据交互,将内存数据库和中间件共存一体,将读写频繁关键数据直接置于内存数据库中,使得中间件直接访问内存数据,减少CPU资源占用、存储IO读写及网络传输等,有效提高应用整体性能。

建设思路可通过对每套应用逐一调研,收集并梳理应用中间件、数据库、服务器等架构信息,并开展应用使用情况调查,对以上数据分析,讨论并确定优化对象(表),并确定内存数据库具体加载数据内容(全表或表部分数据),利用内存数据库和Oracle数据库之间的复制关系保持数据同步,并将中间件连接数据库指向内存数据库,以确保关键应用性能提升。将内存数据库与中间件应用置于同一服务器内,通过内存数据库和关系型数据库实时或异步同步方式,将关键应用数据存放于内存数据库中,并根据应用特点,专门制定内存数据存放时间及数据同步等智能算法机制,如此中间件可直接访问本机内存即可响应用户操作需求,减少网络延迟和部分存储资源、服务器资源争用,有效提升了性能。

五、效果分析

通过上述方案建设后,解决了因应用设计、数据增长等因素导致中间件与关系型数据库交互时热点。创新利用内存数据库,提升应用访问性能。

整体实施成功后,预期达到如下利益目标:

应用性能提升

将内存数据库和中间件应用部署在一处,将最需要的数据直接放到内存里,通过直接访问内存数据,提高用户响应性能,解决I/O访问瓶颈;

延长应用使用年限

随着应用使用年限增长,部分应用需求已无法找到原开发商修改代码,性能逐步下降,利用内存数据库,优化性能,延长应用使用年限;

加大投资保护

使用内存数据库可节省硬件投资及系统维护成本,免去硬件扩容和系统开发商大量程序修改等带来的重新投资。

(作者单位:吐哈油田公司信息产业处)

猜你喜欢

中间件内存服务器
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
通信控制服务器(CCS)维护终端的设计与实现
“春夏秋冬”的内存
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
中间件在高速公路领域的应用
基于内存的地理信息访问技术