数据热图与内存计算自动化协同优化

2018-03-28 21:59:37 《电力信息与通信技术》微信公众号  点击量: 评论 (0)
关系型数据库(Relational Database Management System,RDBMS)技术正在经历重大的变更,从固定的服务器和存储转向灵活的云部署,从存储优化的数据库管理转向内存优化的数据库管理。开源数据库技术不断涌现,商用数据库技术不断深化,其中在企业级数据库系统中有2项新技术的发展引人注目,分别是分

timization(ADO)选件,该选件基本上可以做到磁盘间移动、压缩等数据生命周期管理动作。除内存计算的数据生命周期管理外,其他磁盘与压缩类操作可以通过策略引擎直接配合ADO完成。如果不采用ADO基于策略引擎的规则,开发自定义JOB完成在线数据移动也非常方便,所以,问题的重点是内存计算的数据生命周期管理。

内存计算的数据生命周期管理组件模型如图6所。

图6 数据生命周期管理组件模型Fig.6 Data lifecycle management component model

任务管理模块负责接收决策引擎的请求,并负责整个执行过程的监控管理。数据操作模块是对数据库进行数据移动操作的模块,该模块可以对接OracleADO选件,完成数据在磁盘存储上的压缩、存储分级等操作[12]。本文中主要研究的是通过策略引擎驱动,将数据加载到内存中完成内存计算。

 4 自动化协同算法实现

自动化协同具体的实现基于Oracle Database12.1.0.2,该版本引入了Oracle Database In-Memory,支持混合分析和事务性工作负载。代码的开发基于Oracle Database Stored Procedure,系统层面数据收集采用Bash结合Oracle Database External Tables的方式。

4.1 策略引擎算法实现建模

策略引擎是关键的部分,解析策略并将策略与数据模型或数据工作负载关联起来,以及通过元数据传递策略和模型,策略引擎不仅是挑战的难点,也是实现最大价值的关键所在。

策略引擎实现建模如图7所示。

图7 策略引擎实现建模Fig.7 Rule engine application model

策略引擎工作的前提是在关系型数据库Oracle Database12.2.0.1中打开Heat Map。

altersystemsetheat_map=on;

对照热图数据,检索策略库,触发条件后将request提交至数据生命周期管理引擎;考虑到策略引擎与数据生命周期管理引擎之间接口的强壮性,request进入队列后采用3次重试的方式,3次都失败后计入建议表,等待人工介入进行故障处理。

策略引擎中的各项阈值根据需要可以进行调整,包括冷热数据的标准。策略引擎的调度依据也与数据集的大小有密切关系,不同的数据量决定了数据的存储位置。

4.2 数据生命周期管理引擎算法实现

数据库生命周期管理是管理数据库和数据资产的基于策略的方法,不是一种产品,而是一种用于管理数据库应用程序的数据库模式及数据和元数据的方法。数据生命周期管理引擎采用主动的方法使组织管理数据,在满足性能要求的情况下,保证可用性和节省成本[13-14]

数据生命周期管理引擎负责策略的执行,在不同存储层级之间迁移数据,数据生命周期管理引擎实现建模如图8所示。

图8 数据生命周期管理引擎实现建模Fig.8 ILM engine application model

数据生命周期管理引擎收到策略引擎的request后,首先判断是否满足自动执行的条件,是否能自动执行取决于用户的预定义参数。然后检查系统状态是否满足执行条件,如系统负载、文件系统空间。

操作系统的状态监控本文采用外部表的方式。首先把需要执行的命令编写为脚本文件,然后将结果输出成文本文件,以外部表形式挂接到数据库。以文件系统空间监控为例,创建df脚本,创建外
部表:

create table df

2 (

3 fsname varchar2(100),

4 blocks number,

5 used number,

6 avail number,

7 capacity varchar2(10),

8 mount varchar2(100)

9 )

10 organization external

11 (

12 type oracle_loader

13 default directory exec_dir

14 access parameters

15 (

16 records delimited

17 by newline

18 preprocessor

19 exec_dir:’run_df.bsh’

20 skip 1

21 fields terminated by

22 whitespace ldrtrim

23 )

24 location

25 (

26 exec_dir:’run_df.bsh’

27 )

28 )

29 /

Table created.

在数据库内部通过查询语句即可获得空间监控数据:

SQL> select * from df;

FSNAME BLOCKS USED AVAIL CAPACITY MOUNT

------------------------------ -----------

orapool1/ora01 629145600 382371882 246773718 61% /ora01

orapool2/ora02 629145600 429901326 199244274 69% /ora02

orapool1/ora03 629145600 415189808 213955792 66% /ora03

orapool2/ora04 629145600 343152974 285992626 55% /ora04

按照上面的例子,可以同理开发出其他系统CPU、内存等各种监控,其他如内存列式缓存区域大小都可以通过Oracle SQL获得。

 5 验证测试

为验证本文方案可行性,在电能计量系统(用电信息采集系统)的3个关键场景进行了测试。通

过自动优化引擎优化后的3个查询业务均得到大幅度的提升。优化之后系统压力显著下降,CPU空闲率从40%提升到90%(见图9)。

图9 CPU空闲率Fig.9 CPU idle rate

对比3个关键业务的查询时间,查询效率明显提升,业务响应时间对比如图10所示。

图10 业务响应时间对比Fig.10 Business response time

 6 结语

本方案整合数据热图、数据生命周期管理和数据存储技术,与内存计算相结合,主要用于关系型数据库,优化分析类操作业务。在关系型数据库内部建模,通过数据热图跟踪数据使用情况,进而建立数据访问模型,由决策引擎根据策略库计算得到内存技术优化方案;由数据生命周期管理引擎完成数据移动的具体操作。

通过对数据使用的特点进行分析,从而选择出最适合加载到内存中进行内存计算的数据。通过最优化的内存使用方案,使得内存的使用效率达到最佳,在节约硬件成本的同时,提高系统处理效率。由于可以实时优化,避免了以往优化工作滞后的问题,同时可以减少优化的工作量,节省人力物力,降低了成本。

(编辑:张京娜)

参考文献

[1] FRANKLIN M J, CAREY M J, LIVNY M.Global memory management in client-server database architectures[C]// In Proc. of the 18th International Conf. on Very Large Data Bases, Vancouver, Canada, 1992: 596-609.

[2] GARCIA-MOLINA H, SALEM K.Main memory database systems: An overview[M]. IEEE Transon Knowledge & Data Engineering, 1992, 4(6): 509-516.

[3] ERICKSON J. In-Memory acceleration for the real-time enterprise[DB/OL]. [2017-06-01]. http://www.oracle.com/us/ corporate/features/database-in-memory-option .

[4] Oracle Database In-Memory[DB/OL]. [2017-06-01].http://www. oracle.com/technetwork/database/in-memory/overview/index. html .

[5] ABADI D J, MADDEN S R, HACHEM N.Column-stores vs. row-stores: How different are theyreally?[DB/OL]. [2017-06-01].http://db.csail.mit.edu/pubs/ssbm.pdf.

[6] 刘博. Oracle数据库性能调整与优化[J]. 大连: 大连理工大学, 2007.

[7] 赵婷. 数据库优化器自适应架构及实现方法研究[J]. 天津: 南开大学, 2012.

[8] 徐宏文, 张勇. ORACLE数据库优化技术[J]. 计算机系统应用, 2001, 10(1): 26-30.

[9] Oracle. Heat map, automatic data optimization and ILM with Oracle database[DB/OL].[2017-06-01].http://www.oracle.com/ technetwork/topics/index-090321.html .

[10] NILAKANT K, DALIBARD V, ROY A, et al.PrefEdge: SSD prefetcher for large-scale graph traversal[C]// InProc. of the 7th ACM International Systems and StorageConference, Haifa, Israel, 2014: 1-12.

[11] 贺鹏程. 基于Oracle的数据库性能优化研究[J]. 电子设计工程, 2016, 24(9): 1-3.

HE Peng-cheng.Research on optimization of Oracle database[J]. Electronic Design Engineering, 2016, 24(9):1-3.

[12] NANDA A. Automatic data optimization[DB/OL].[2017-06-01].http://www.oracle.com/technetwork/issue-archive/2013/13-nov .

[13] HART E, BARMBY P, LEBAUER D, et al.Ten simple rules for digital data storage[J]. PLoS Comput Biol 12(10): e1005097. doi: 10. 1371/journal. pcbi. 1005097.

[14] SCHOPF J M.Treating data like software: a case for production quality data[C]// JCDL ‘12 Proceedings of the 12th ACM/IEEE-CS joint conference on Digital Libraries, New York, USA, 2012: 153-156.

  • <img data-cke-saved-src=http://www.sgcio.com/uploadfile/2018/0328/20180328102146923.png&quot;" src=http://www.sgcio.com/uploadfile/2018/0328/20180328102146923.png&quot;" "="" style="box-sizing: border-box; padding: 1px; border: 1px solid rgb(204, 204, 204); width: 70px; float: left; margin-right: 1rem;">

    黄嘉东(1985-),男,广东博罗人,工程师,从事信息安全、企业级信息系统建设工作;

  • 佘俊(1973-),男,四川彭州人,高级工程师,从事电力企业管理信息系统的设计与实现工作。

 

 

 

大云网官方微信售电那点事儿

责任编辑:售电衡衡

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞