(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf_第1页
(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf_第2页
(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf_第3页
(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf_第4页
(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf_第5页
已阅读5页,还剩71页未读, 继续免费阅读

(计算机科学与技术专业论文)面向分布式软件的日志管理系统的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

里堕型堂垫查查堂里壅生堕堂堡堡苎 摘要 随着计算机网络的飞速发展,网络信息流量不断增大,基于海量数据的分布式软件的 规模也不断扩大,随之而来的是分布式软件的组成部分变得愈加庞大和复杂,给系统调试 以及了解系统运行状态带来了困难。如何有效利用分布式软件在运行过程中产生的大量r 志信息柬分析系统状态和提升系统预警能力,满足f l 志服务在性能、健壮性、可扩展性等 方面的迫切要求是一个具有普遍意义和实用意义的研究课题。 本文以大规模事务处理中间件( s t a r t p m o i i i t o r ) 为应用背景,研究分布式软件的日志 管理问题,在此基础上设计并实现了一个面向分布式软件的日志管理系统。本文主要工作 包括: l 、在分析了r 志服务的应用背景及日志技术的发展趋势后。指出了现有日志服务产 品在满足大规模事务处理中间件的f 1 志需求上存在的局限性。 2 、介绍了大规模事务处理中间件的总体结构,以及引入日志管理系统的必要性;分 析了大规模事务处理中间件对日志管理系统的功能需求。 3 、在r 志服务应满足的功能需求的基础上,设计了一个面向分布式软件的日志管理 系统l m s ( l o gm a l l a g e m e n ts y s t e mf o rd i g t r i b u t e ds o f i 、v a r e ,l m s ) ,并对l m s 的体系结构、 同志格式、同志信息管理模式、报警信息的获取方式及系统配置数据存储方式等的设计展 开了详细的讨论,包括采用“双缓冲区策略”提高日志文件的传输速度;利用改进的时钟 同步算法解决多应用节点日志事件排序问题;通过关联规则挖掘算法自动生成报警规则, 以提高同志分析的效率等等。 4 、基于s t a r b u s 平台完成了l m s 的实现,l m s 三段式体系结构实现了分布对象的快 速f 1 志记录,提高了系统的并发度;l m s 采用多线程方式接收分布对象的日志请求和处理 日志缓冲文件。l m s 的对象管理功能支持系统的运行时调试以及日志数据的输出容量控 制。l m s 采用c o r b a a n v 类型对日志信息进行封装,实现日志信息对外界的透明性;其 同志监控与报警功能提升了对系统的预警能力。同时,l m s 采用x m l 序列化与反序列化 技术实现对系统配置数据的存储,保证了l m s 的可配置特性,提高了l m s 的灵活性。 5 、对l m s 进行了相应的功能和性能测试。测试表明l m sj 下确地实现了r 志管理系 统的各项功能,同志管理引入的开销很小,l m s 满足了大规模事务处理中间件对其在性能、 可用性、可扩展等方面的要求。 关键字:日志服务,c o r b a ,分布式调试,时钟同步,日志分析 国防科学技术大学研究生院学位论文 a b s t r a c t w i t ht h em p i dd e v e l o p m e n to fi n t e m e ta 1 1 dt h ei n c r e a s eo fn e t w o r ki n f o 加“o n ,t l l e d i s t r i b u t e d 印p l i c a t i o ns y s t e mb a s e do nv e r y1 a 唱ed a t as c a l e su pi n c r e a s i n g l y c o n s e q u e m l y ,1 h e p a r t so fd i s 廿i b u t e da p p l i c a t i o ns y s t e mb e c o m em o r eg i g a n t i ca n dc o m p l e x ,s oi tb r i n g s 订o d b l e s t o t l l ed e b u g g _ m g o fs y s t e m a n d k n o “n g t h es t a t u s o f s y s t e m i t i sar e s e a r c h w o r k o f g e n e m la f l d p r a c t i c a ls i g n i 丘c a l l c et os 0 1 v et h ep r o b l e mo fu s i n gl o gi n f b 门= 1 1 a t i o ng e n e r a t e db yd i s m b u t e d a p p l i c 娟o ns y s t e me 仃e c t i v e l yf o ra i l a l y z i n gs y s t e ms t a t u sa 1 1 de n h a l l c i n gm ea b i l i t i e so f p r e a l a r n lt os a i i s f yi t su 唱c n td e m a n d so f p c r f 0 册a n c e ,r o b u s t i l e s sa l l ds c a l a b i l i 咄 t h i st h e 5 i ss t u d i e st h ei s s u eo fl o gm a r l a g e m e n tf o rd i s t r i b u t e d 印p l i c a t i o ns y s t e mb a s e do n s t a r t p m o n i t o l1 m e n ,o nt h eb a s eo fo l l rs t u d y w ed e v e l o pal o gm a n a g e m e n ts y s t e mf o r a i l a i y 画n gs t a t u so f d i s t r i b u t e ds y s t e m t h ep r i m a l yc o n 岫b u t i o n so f t h i st h e s i si n c l u d e : 1 f i r s t ,w ea n a l y z et 1 1 ea p p l i c a n o nb a c k g r o u n do fd i s t r i b u t e dl o gs e r v i c ea n dt h ed e v e l o p m e n t t r e n do fl o gt e c h n o l o g yi nd i f f b r e n ta r e a a tt h es 锄et i m e ,w ed e s c r i b ed e 矗c i e n c i e si ns o m e m i d d l e w a r ep r o d u c t so fl o gs e n r i c eo ns a t i s f y i n gm er e q u i r e m e n to fc u r r e n ts y g t e m 2 s e c o n d ,w ei n t r o d u c et l i ew h o l es t m c to fs t a r t p m o m t o f ,i n c l u d ew h e r el o gs e r v i c ei si ni t t h e n ,w es i m p l yd e s c r i b em ec h a r a c t e r i s t i c so ft w om a s t e rs e r v i c e sw h i c hw i l lu s cl o g s e r v i c e ,a t l dd e s c r i b et l l er e q u i r e m e n t so nl o gs e r v i c e 3 b a s e do nt h e 柚a l y s e so ft 1 1 er e q l l i r e m e n t so nl o gs e r v i c e ,w ed e s i g nal o gm 锄a g e m e m s y s t e mf o rd i s 埘b u t e ds o n w a r e l m s ( l 0 9m a l l a g e l l l e ms y s t e m ,l m s ) w ed i s c u s st h e a r c l l i t e c t u r e ,l o gf o r r n a t ,i o gm a n a g 锄e mp a t t e m s ,m e a n so fg e ta l a h ni n f o n n a t i o no fl m s d e t a i l e d l y ,i n c l u d eu s i n g “t w ob u 躬陪r sp o l i c y ”t oi m p r 0 v e 仃a n s f e rs p e e do fl o gf l l e s ,u s i n g i m p r o v e dc l o c ks y n c l l r o n i z a t i o na l g o r i t l l mt os o l v em ep m b l e mo fo r d e r i n gl o ge v e n t s 丘口m m u l t i n o d e ,a l l da u t o m 撕c a l l yg e n e r a t ea l a r n lr u l e sb y1 1 1 i n 访ga s s o c i a i i o nr u l e st oe n h a n c e t b ee m c i e n c yo f1 0 9a n a l y z i n g 4 w ei m p l e m e n tl m sb a s e do ns t a r b u s t h et h r c e - s e g m e n ta r c h j t e c t u r eo fl m si m p l e m e n t s f a s t l yr e c o r d i n g i tp r o v i d e sd y n a l n i co b j e c tm 锄a g e m e n tf o rs y s t e md e b u g g i n gi n 删n g m o d ea n dl e v e lc o n 廿o lo fo u t p u t i n gl o gd a l a s ni m p l e m e n t sf i l et r a n s f c r r i n gi na 仃a l l s p a r e n t w a yt oa p p l i c a l i o nu s i n gc o i 出aa n y 啪et 0c o d ea i l dc n c o d el o gn l e s a l s o ,“u s e sx m l t e c h n o l o g yt os t o r ec o n f i g 啪t i o nd a t a st oe n s u r et l l en e x i b i l i t yo fl m s 5 f i n a y ,t h ee x p e r i m e n t s0 nt 1 1 em n c t i o n a l i t ya i l dt h ep e r f 0 衄a n c eh a v ea l s ob e e nc 删e do u t e m p 衔c a lr e s u l t sd e m o n s t r a t et h a tl m sw o r k sc o r r c c t i y ,a n dm eo v e r h e a di n c u r r e di sv e r y s m a l l ,a n d l m sc a n s a t i s 移t h ep e r f o n l l a l l c e ,s c a l a b i l i t y a n d a v a i l a b i l i t y w h i c h s t a r t p m o l l i t o rr e q u i r e so n k e y w o r d s :l o gs e n r i c e ,c o r 皿a ,d i s t r i b u t c dd e b u g g i n g ,c 1 0 c ks y n c h r o i z a t i o n ,l o ga n a i y s i s 国防科学技术人学研究生院学位论文 图目录 图1 1 公共对象请求代理体系( c o r b a ) 3 图2 1 大规模事务处理中间件整体结构8 图2 2 并行加载软件结构9 图2 3 并行数据访问服务结构1 0 图3 1 三层c s 软件体系结构示意图1 3 图3 2l 惦层次结构示意图1 4 图3 3 典型推模型1 5 图3 4 拉模型1 5 图3 5 混合推拉模型1 6 图3 6 混合拉推模型1 6 图3 7 只志文件的互斥1 7 图3 8 “双缓冲区”策略示意图1 8 图3 9r 志记录与文件结构2 0 图3 1 0a n y 类型值的结构2 1 图3 1 1 同志目录结构2 2 图3 1 2n t p 传输模型2 3 图3 1 3n t p 体系结构示意图2 4 图3 1 4 内部同步算法时序图2 5 图3 1 5 关联规则挖掘与日志报警2 9 图3 1 6 同志报警信息的获取方式3 0 图3 1 7x m l 文档结构示意图3 2 图3 1 8x m l 序列化与反序列化3 3 图4 1l m s 的体系结构图3 5 图4 2l m s 中同志服务部分各组件交互图3 5 图4 3 客户方请求的处理3 6 国防科学技术人学研究生院学位论文 图4 4 接收n 志请求的流程3 7 图4 5 同志文件传输的序列图4 2 图4 6 闩志传输服务整体序列图4 4 图4 7 使用预编译器开发内嵌s q l 程序的步骤4 5 图4 8 同志存储序列图4 6 图4 9 内部同步算法及改进后的算法4 9 图4 1 0 同志监控与报警界面5 3 图4 1 1 同志报警参数设置5 4 图4 1 2 同志监控与报警实现序列图5 6 图4 1 3 同志查询界面5 7 图4 1 4 查询同志的处理序列图5 8 图5 1 添加同志服务l j 后加载性能对比图6 4 里堕型兰茎查查兰竺茎竺堕兰堡笙苎 表目录 表3 1h 志记录级别1 9 表4 1 同志接f 1 参数含义说明3 8 表5 1 测试环境配胃5 9 表5 2l m s 测试用表l o g j n f o 6 0 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意 学位论文题目:亘自佥互煎熬性盟旦圭堡堡丞统煎盟壅皇塞丑 学位论文作者签名:钐芬日期:矿年f f 月习日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存,汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文题目 学位论文作者签名 兹h 蕊、 作者指导教师签名:_ f 粒 日期:矿年7 1 月习日 日期:斛,月口丑 国防科学技术大学研究生院学位论文 第一章绪论 随着实际应用需求的规模和复杂度的不断增加,分布式软件的组成部分变得愈加庞大 和复杂,组成部分之间的关联性越来越强,使得对分布式系统的调试变得很复杂。因此, 如何利用开志服务更好的支持分布式系统的调试及状态分析,使之一方面能处理外来请 求,提供稳定健壮的服务,另一方面便于管理者了解系统的状态,及时对系统故障作出处 理,同时要使得系统记录日志的丌销尽可能小,就成为一个亟需解决的问题。本文就是从 这点出发,主要解决这类分布式软件的同志管理和分析问题。 1 1 应用背景 同志是一种有着各种各样的应用的非常实用的技术,最基本的,它被用来跟踪系统中 的事件。一个应用程序的日志包含应用程序执行周期内发生的事件的有关信息,分析这些 事件可以对系统的安全性、可靠性、性能等有所了解。目前大量应用表明日志技术的应用 越束越广泛: r 志可用于保持数据一致性:如数据库同志系统等,日志记录了数据库的操作, 在系统失效时可以利用日志对数据库进行数据恢复和回滚操作等,以保证数据的 一致性等。 基于同志结构的文件系统:同志可用于文件系统来提高它们的写性能,同志结构 的文件系统( l o g s t n i c t 、l f e df i k s y s t e m ,l f s ) 和w a f l ( w i i t e a n y w h e r e f i l e l 衅o u t ) 文件系统将其存储表现为同志,比较其他方法而言获得更高的写性能。 基于同志的审计分析:利用数据挖掘技术发现日志事件之间的关联性,如通过对 网络同志的挖掘,获取用户对某个页面的的兴趣度,以调整网站部署,改善w 曲 的信息服务等。 基于日志的系统监测及报警:如基于日志的安全检测系统、基于日志的入侵检测 系统等。以往同志信息产生后只用作事后分析之用,不能根据日志实时监测系统 运行情况,在系统出现故障时不能及时报警并作出相应处理。 基于闩志的分布式调试:以往,分布式系统的调试需要专门的调试器的支持,难 以与现有项目应用程序集成。同志技术发展到今天,分布式调试成了日志概念的 又一应用。通过使用分布式同志,分布式系统中的事件能以时间为序被记录下来 及分析不同类型的错误,这个过程能极大的简化分布式系统的开发与维护。 作为2 0 世纪术最伟大的技术进展,i t l t e m e t 正在深刻地改变我们生存的社会,其普 及和发展为我们提供了一种全球范围的、不断延伸的信息基础设施,形成了一个资源丰富 的计算平台。在过去的几年中,计算机网络技术取得了惊人的发展,基于网络的分布式应 用层出不穷,而随着网络信息流量的不断增大,从而出现海量数据需要处理,这使得处理 海量数据的分布式软件规模不断增大,复杂性不断提高。 由国防科技大学计算机学院6 1 3 研究室自主研发的大规模事务处理中间件就是这样 个基于海量数据的分布式软件。它是由一组事务处理中间件和多个数据库组成的服务平 台,用于对多个异构自治数据库进行管理,为用户提供统一的使用和管理视图。它面向海 第1 页 国防科学技术大学研究生院学位论文 量信息系统处理应用,通过多数据库技术、并行数据库技术和分布式对象计算技术,基于 c o r b a 【1j 分布对象计算模型,设计并实现大规模事务处理领域中间件,以便简化海量信息 系统的开发、实现、部署和运行维护。 由于大规模事务处理中间件系统的复杂性,给获知系统中的数据流向、服务之间的关 系带来了困难,进而使得分布对象的丌发、调试和维护变得复杂且难于处理。同时,如此 庞大的海量数据库应用系统在启动、运行、关闭时会产生大量的信息。若不将这些信息记 录下来,系统出现故障时想对故障进行分析就无从着手。同时,在目前的高可用环境下, 大多数分布式软件都采用多副本方式做了容错处理,导致难于定位错误的具体位置,也难 于跟踪数据的流向。利用日志的优势对多个节点上的服务对象提供高性能的日志功能, 支持服务对象的分布式调试,对集群中各类服务对象进行有效管理,将系统的伸缩性和可 靠性最大化,迫切要求一个同志管理系统的支持。 1 2 技术背景 随着分柿式系统规模日益庞大以及模块化程度越来越高,以前应用系统中的程序各自 编写只志模块处理r 志信息的方法显然已经不能满足分布式系统的日志需求。因为这些模 块形成的同志信息格式各异,根本无法从中发现系统故障原因,不具备实际的价值,且日 志模块可重用性低。为了让应用程序更专注于其业务逻辑,以满足分布式系统对日志功能 的要求,需要将同志功能提取出来,形成公用的模块一日志管理系统。 然而,为分布式系统构建同志服务主要面临以下技术挑战: 1 ) 分布性:同志服务能为分布式系统中的所有应用服务对象提供服务,以完成日志 功能。 2 ) 可移植性:要求能跨平台提供日志服务功能,实现平台无关性。 3 ) 可伸缩性:能够根据应用需求,动念改变系统运行状态。如控制应用服务对象的 运行优先级别;要求在系统运行过程中提供系统调试功能;能够动态调整日志数 据的输出级别( 即日志输出的容量大小) 等,同时日志服务可以启动或关闭。 4 ) 闩志数据对外界的透明性:为实现日志服务的通用性,应能够实现用户记录的信 息对外界透明性,实现日志信息的封装与解封装也是急需解决的一个问题。 5 ) 高性能:为分布式系统添加同志服务,能简化分布式应用程序的开发、调试和维 护,但对系统整体性能可能有所影响,如何将日志服务带来的性能影响最小化是 迫切需要解决的问题。 基于以上技术挑战,本文采用c o r b a 技术作为解决方案。c o r b a 作为应用最为广 泛的中问件,能够很好的解决以上技术难点。本节余下部分将对中间件及c o i 也a 作出简 单介绍。 1 2 1 中间件概述 中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能 够使应用软件相对独立于计算机硬件和操作系统平台,为当今的大型分布式应用搭起了一 个标准的平台,把大型企业分散的系统和技术组合在一起,实现大型企业应用软件系统的 集成。通常可以把中间件理解为介于操作系统和应用软件之间可复用的基础软件层,从一 个小的单机上的c 0 m 组件,到复杂的企业级应用服务器都可以看作中间件的范畴。按照 第2 页 国防科学技术大学研究生院学位论文 l d c 的分类方法,中阈传可分为六类1 2 】。 ( 1 终端仿真羼禧转换串闻伟:雳鞋实璃雾户税整形餍芦l 接口与已蠢的字符接嚣方 式的服务器应用程序之间的互操作: ( 2 ) 数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数 攥蓐实理联接凌文件系绫实瑗联接戆中裁穸 :; ( 3 ) 远程过程调用中间件:通过这种远程邋程调用机制,程序员编写客户方的应用, 需要时可以调用位于远端服务器上的过程: ( 4 ) 消息中闽件:髑来屏蔽备秘平台及协议之闼兹特性,进行相互通信,实现应用 箨序之闰瓣漭璃; ( 5 ) 交易( 事务) 中问件:是猩分布、异构环境下提供保证交易完熬性和数据完熬 性的一种环境平台; ( 6 ) 瓣蒙中闫撵:在分毒;嚣誊囊瓣箍络诗雾爆凌孛,哥戳将各耪分鑫瓣象毒援建缝 合在一起,完成系统的快速集成实现对象重用。 中间件是一个相对模糊的概念,不同类型的中间件之间关系较弱,企业的多种应用中 往往需要多种类型的中间 串,形成了对象中闽件、事务中间件、消息中间 申等渐灏合并豹 趋势,最终警致了孛麓襻平台貔产裳。霉馥主滚豹孛霾箨平套露0 m g 豹c 0 绉a 平台、 s u n 的j 2 e e 平台和微软的c o m d c o m 平台。 1 2 2c o r b a 概述 公共对象请求代理体系结构( c o r b a ,c o m m o n0 巧e c tr e q u e s tb o k e r a r c h i t e c t u r e ) 怒 鑫霹象餐瑗缍织( 0 m 毽0 巧e c t 醚赫a g e m e 矗毛g f o t 肇) 疆凄豹反惩软俘薅系缨稳帮霹象按零 规范,它怒丌放的、独立于供应商的支持网络应用程序互操作的规范。c o r b a 规范是熬 于抽象的对象模型的分布式对象标凇,在分布式软件总线支持1 f ,实现分布式异构环境下 的面向对象软件构件之间的通信与系统集成,是袭达应用系统、应用构件之闻有效通讯的 连接鼓本。它是蠢簧较辩静跨平台投零,它独立予溺络秘滚、缡程语言翻软疆 牛平台,支 持异构的分布式计算和不同编程语裔的对象重用,现在已成为软件开发的主流,并被业界 广泛接受。c 0 r b a 的结构如图】l 所示: 图 陵枣p 喇e 推图s 鑫薅阳f 矗| |豳了h 哟糯姆鹣霸钍恻 a pp l i c a 瑟。滔o b 强瞄鑫妇潍8 湛 图1 1 公麸对象请求代理体系( c o r b a ) 一般请求流: 窖户成臻程摩提出谤求,骚务器艨曩程序接受这些请求并髂出虢痤。专毒求漉由客户痰 第3 荫 国防科学技术人学研究生院学能论文 用程序向上提交,通遗o r b ( o 峰;e c lr e q u e s tb 坤k e r ,o r b ) ,上话到服务器应用程序。w 交下列死狰形式实瑗这个遗程: 1 、客户机有两种选择方式提出请求。第一种,使掰由对象接阴定义,用l d l 编译器生成 日应编程语言的静态存根( s t a t i cs t u b s ) ;第二种,使用动态调用接口d i i ( d y n a 觚ci n v o c a t i o n i n t e 以c e ,d i i ) 。不论哪种方式,客户机都直接将溥求传送给与遮个进程链接的o r b 核心。 2 、客户瓤r 8 投心逶j 璧耀络转送飨与疆务器痰麓程彦稳链接懿藏务器0 r 熬菝心。 3 、服务器o r b 核心将这些请求分配给对象适配器( o b i e c t a d a p t e r ) ,由它产生目标对象。 4 、对象通配器进一步将请求分配给实现目标对藩的伺服程序。与客户机一样,服务器可 以选择静念或动态调皮机制用于它的伺服程序。这取决于是出对象接口定义,用l d l 编译 器编译匏黪态框粱,悉燕其镯簸程廖零傻震动态糕絮接霜( d i y n a 赫e 繇呶瞧| m 蠡c e , d s i ) 。 5 、伺服程序执行请求聪,将结果返回给客户应用程序。 l ,3 研究瑗状 同志系统在大型项目中是必不可少的,统计数据表明项目程序代码中属于日志系统的 代码所占静比镄达到了矗左右i j 。翻恚系统在瑕疆应霜程序的设计努发黔段w 戳起到帮助 调试帮g 薅踩线程懿作掰,两置完备鹣瓣志也爵蔽藏必一个穰静静宰计与分辑工箕。在应臻 程序中添加f l 志功能主疆基于三个目的:监视代码中变量的变化情况,周期性地记录到 文件中供簸他应用进行统计分析;跟踪代码避行时的轨迹,作为同后审计的依据;撼 当集成玎发环境中静调试器,向文传绒控割台输戡代码豹调试悠息。曩翦,渡赛针对分蠢 式较辞兹鬻志管瑾解决方案溻不成熬,也没有形成一个分毒式环境下逶瘸斡强志服务。如 何充分挖獭f 1 志的功能,简化分布式系统的开发与调试,并实现对系统状态的分析,保证 系统正常稳定运行是一个值得研究的课题。 针对溺静丑志月受努媳追切需求,鳗誊一些开发涵体在自己的中翘件产晶巾撞出了日惑 服务或魏入7 强志凌懿,如a p a 穗e 静l o 酾鞲,0 馘g 豹碱。c o 黼l o gs e r v i c 霉”,s u n 公司 的j d k1 4l o g g i n g a p i 峨l i i l u ) ( 日虑予系统1 7 l 以殿一些面向通用系统的事件处理系统,如 c o ae v e n ts e n ,i c e 和j 矾id i s t r i b u t e de v e n ts e r v i c e 【8 叫等等。然而,当前这些产品或工 具在某些方露还存在一烂局限性,萝曩纳起来主要露以下几个方蕊: ) i 。m g 麓琵l e c o 黻l 。gs e 戚豹钎对整过谶,隈稍了应用范匿。o 醒g 静瓷l e c o m l o g s e r v i c e 是o m g 组织的电信任务组专门为电信领域制定的垂直领域接口( v e n i c a l f a c i l i t i e si n l e r f a c e ) 规范,它不问于c o r b a 通用的对象服务,更多地考虑了行业领 域翅身豹特点,针对性过强。 2 ) l o 鲢l 存麓蘸廷活性不够。它支持将霞恚倍怠输出嚣不闲的嚣豹逡,魏控翻台、文 件、s y s l o g 服务器、w i n d o w 8 事件日志等,但是需嚣自己定义类来实现输出到数 搦库,且输出的信息不能根据内容分段存储,这样势必给同志分析带来困难。疑 次l 0 9 4 j 使爆接口不够楚漓,无论是栗搦手动使用方妓或配置文传驱动方式,馊 溺孙醴l 对需袋定义l a y o u t 辩象、a p p e 嬲嚣对象、e 嚣嫩g o r y 对象并辩这些对象遴 行相应操作后才能开始记录e 志,使用方式不是很崽观,比较繁琐。多线程安龛 性问题。当前l 0 9 4 j 还没有墩称自己是多线程安全的,对多线程环境的支持还存农 定的阕题。 第4 硪 国防科学技术大学研究生院学位论文 3 ) 采用传统d s 结毒勾的只恚暇务会降低系绫性能。一些翻恚暇务系绞受 搴系结掩翻 策雅疆键,霹貔会成麦系统的往能瓶蔟。摇采用传统c s 结穗斡瓣恚骚务,冀客 户端与服务端紧密耦合,使得网络开销大,影响系统橼能。 4 ) 需璺额外的工熙支持系统的调试,且大多不支持系统运行时的调试。目前的应用 系统在漏试时需要颧乡 的工凝支持,两秘恚具有记录系统运行轨逑熊功能,它掰 浚簇来耩麓系绫静谲试。溺簿,嚣蘸静键试工其太多不支持系统运幸亍辩静谣试。 丽犬规模事务处理系统一h 上线运行就不能让其停止下来进行系统的调试,因此 需要r 志服务能支持系统程运行时刻的调试。 5 ) 大多缺乏同惑分析与日志报饕功能。以钱的日志服务躐翻志工具仪其有记录并农 麟霜志兹功籀,不能主动霹隧恚迸嚣分裾羰改进系统糕黥,显太多楚基予文奉文 件的h 志分析,效率也比较低,无法充分发挥日志的作用。另外,在大规模分布 式系统中,报警功能是非常必要的,它掰求能及时报告应用系统故障以便系统傺 瑷员及时采取艘对措施,避免造成重大损失。 攘摇大筑模事务楚遴孛闯 睾豹器袋,遥魏需黉一耱目恚骚务麓克服淡上不筵,有效支 持系统开发、调试和维护。然而,添加阿志功能势必给系统带来可靠性和性能方面的影响, 因此提高h 志服务自身的健壮性和性能。将性能影响最小化慰设计本日志服务的关键所 在。 1 4 本文贡献 本文钟辩现有大攮模事务处理中闽 孛黯闩志骚务戆需求以及现骞工具豹不是,磺究黉 实疆了一个支持大蕊横事务处理静搿恚管理系统,主要包括疆下几个方面的内容: ( 1 ) 解决现有系统中日志模块可重用性不高的问题:系统中以往的日志功能都集成 在系统的备个组成部分之中,在程序开发期间,每个开发者对自己设计的功能模块都编驾 其恚处理予模块,各模块形成的同悫僖怠揍式各黪,投本无法从孛发现系统赦薅琢困,不 箕各实际的徐篷,跌两秘志模块虿纛精程度禳低。本文设计了个面向大蕊模事务处理审 间件的f 1 志管理系统模型,实现了对分布式系统中多个应用服务对象的同惑记录,简化了 系统的开发。 ( 2 ) 为奠志暇务驰使用者提供绫一、楚洁戆调囊接墨,势将日志信慰分段存懿在数 据库中,豁使进行霹恚分柝。目时,采取对翼志熊中统一管理斡方式,将备旋蔫节点的同 志信息汇总到一个专用数据库服务器中,并针对各节点时钟不一致的情况,研究了时钟同 步技术,泼进了时钟同步算法。 ( 3 ) 簸一对黄统d s 结捣疆恚激努易导致系统整终性能低下豹翊题着鬓磷究了钵系续 褥的设计,并在三层a s 结梅的基确上提出了三段式维构静霹惑服务,将表现层、功髓屡、 数据层分离,i :柬,降低了日志服务绘系统带来的性能损耗,并易于对各层进行扩充与完善。 同时,本文还提出了两级文件缓冲策略“双缓冲区策略”来解决日志文件互斥操作的 难点,提胬了系统中应溺照务对象记漾冠恚豹遽菠。 ( 4 ) 实现了系统避行对静谲试及对大蕊模搴务处理中间 串中分布对象耩经静动态控 制,有效辅助了系统的调试和维护,增强了系统的适应性与可扩展性。 ( 5 ) 出于采用文本文件方式存储的日志的分析效率较低,本文在同志数据采用数掇 痒存镑方式戆基础上,磺究了鼗撂控擒中熬关联规凳g 挖掘算浚,将其应用戮模式发现孛, 笫5 熨 国防科学技术人学研究生院学位论文 并提出了个n 志数据挖掘模型,辑散地支持错谡分辑和故障定位,最后在艇于x m l 配 黉文馋鹃蒸麓| 一实瑰了毅恚掇警袭貔,增瑟了系绫戆灵活瘦,劳麓纯了系绞蕊维护。 ( 6 ) 实现了r 志餐理系统良好的人机交互界葡。 l 。5 论文结构 本文凝分为六章。 第一帮:绪论,主骚介绍课题的应用背景、技术背景、研究现状、本课题的研究内容 以及论文黝缓织情况。 第二巍:奔缓7 丈矮模事务整臻串麓律翡慧傣络毒鼋,餐撬瓣恚管理系统谨其孛繇签浆 位置,并简单描述了太规模事务处理中间件中使用日志管理系统的两个主要成用服务的特 点,以及大规模事务处理中间件对日虑服务的功能需求。 第三鬃:介绍l m s 的功能需求、设计思想、体系结构及设诗要点,着覆介绍了目惠 穑式、文锋倦辘方式戆设计、鑫忘记袋静露镑露步、酲恚数撂戆挖蕹与努耩夔及目恚整按 与报警的设计。 第四帮:详细阐述了l m s 的具体实现,包括固志的生成、传输、存储以及日志分析、 系统运行丑誊调试、只恚报警、日志信息查询与删除等功挠的具体实现。 第五誊:对己m s 滋纷了葫憨彝爨轭瓣试,瓣遽结果显示l 醚s 完全按设计毽稼正确蠛 完成了各曦功能,l m s 以较小的开销为系统提供了臼志相关的备项功能。 第六帮:对全文进行了总结,并指出下一步的工作方向。 露6 舞 国防科学技术人学研巍生院学能论文 第二章天娩模事务处理中溺侔 由国防科技大学计算机学院6 1 3 研究室自主研发的大规模漤务处理中间件是本文的应 用及研究莺祭,困此本肇糨对大规模攀务处理中间传作整体的介绍,包括只悫管理系统焱 其孛掰疆懿位黉鞋及大麓模事务楚磁中闻俘对它麓功缝需求等。 2 1 大规模事务处理中间件概述 大瓶搂攀务楚理系统平台是躅予开发并章亍海餐数据库系统鹃分布式大栽模事务处纛 中间件,它提供对海量数据的并行加载和存储、海量数据的并行查询分析功能。它由多个 局部自治的数据库管理系统和一组中间件组成,中间件用于对这些数据库进行管理,并为 弱户鹣管溅粒操 # 提供绕一援蚕。大麓模事务憝联系统终为一个海量售息系统开发和管理 平台,其主要特点是: 提供海量信息的分布存储; 提供海量信息的并行加载; 提供辩海量信息鹣并 亍查询与分辑; 为耀户提供统一酌对多个异穗自治数据瘁麓管理帮使蠲接口; 系统规模和处理能力可以在线调整,并动态负载均衡。 2 。2 大援楼事务处理巾闻佟的结构 大规模事务处理中间件结构如图2 1 所示,它主要是由一缀加载服务对藩和一组查询 服务对象构成,加载服务对象负责海爨信息的并行加载,在逃行加载时通过数据划分,调 凄多令数援瘴著嚣热载,撵毫7 大溪貘事务鲑理中闫磐戆熬载毪戆,另癸,嬲载簌务对蒙 采用多层次设计,分剐包括数据划分服务嚣、懿鬣夜加载服务嚣、表加载服务器三个层次, 它们采用松散耦台方式组合在一起,在这三个层次之间,通过流水并行进一步提高系统的 加载性能。数据查询服务是用于提供对海量信息进行并行查询舄分析处理的中间件,采用 蘩予多数撰瘁懿荠行查诲技拳,爱予羧受爱户查谗请零,对蠢镳语匐送霉分辑、臻纯窝弗 行化分解,创建查询结聚服务对象,将查询结栗撇务对象返回绘用户。酲前该系统的服务 器节点已经达到6 4 个,服务对象的种类达到2 0 个,对象实例数目达到1 0 4 个,并且还张 不断的扩大之中。 第7 负 垦堕型兰楚查立;望缝塑竺堕兰照堡兰 图2 1 大舰模事务处理巾闯件整体缩构 数据库访问屎提供对于数据库的访问,屏蔽数据库之间的异构性,避免用户真接 游闯数据痒,可以有效按期对数摆库资源的使用秘管理。 数据库维护瑟提供数蠢窿鞠常维护璃麓,包聒表窆阙静翻建、霞浚秘重用,历变 分区( 数据) 的删除和新的分区的创建,统计表的维护,语义缓存的维护等。 数据库维护朦主要是简化数据库的管理和维护。 数据处理服务是太规模事务处理中闯传靛重要组成部分,包括一级数据她理模块 秘一缝系统支撵工兵露骚务。系统支撵工其和服务怒l 蠡霜恚管纛系统、受载均 衡服务、分布式对象事务服务、系统管理模块组成。 同志管理系统用于数据库子系统软件运行日志管理,包括系统运行轨迹、远 辛亍过程中关键事 牛和状态记录等。幽予数据瘁予系统是在分布环壤下运行的 一个获伟系统,盘穰多豹迸程共同宠戏各类请求,耀户豹一次请求需要多令 进程之间的多次交互,脊的底层模块出现的故障和错误很难返回给用户,比 如数据库批量加载过程中的数据约束性错误等,茄外,同一个请求的故障可 能发生在清求链上的任倪一个进程串,在出现错误时缀难定使敞障点,同志 驻务汪蒙长类事锌秘状态,并提供繁中酶霞志分瓣模块,帮韵发现阏遂,宠 位问题,并在必要时提供运行时调试功能。 负载均衡服务是s t a r b l l s 提供的服务,负载均衡服务用于服务对教的负载均衡 秘容错管瑷。 分蠢式对象攀务是s 级懿u s 提供静雏努,簸务实臻了分布舔境下掰除段提交佟 议,负责分布环境下建立在多数据库之上的全局搿务的a 、d 特性的保持。 系统管理模块用于数据库子系统软件的管理,包括运行状态娥测、系统远程 部署、运熬痿动、自主运行维护、缀努对象运行状态管理等。 第8 疑 国防科学技术大学研究生院学位论文 2 2 1 并行加载服务 并行加载服务结构如图2 2 所示,其中箭头代表数据处理过程。并行加载服务实际上 由数据划分服务、批量加载服务、数据统计服务、并行加载任务调度服务、数据加载服务 等几个服务进程组成。 图2 2 并行加载软件结构 数据划分服务接受用户的加载请求,根据数据分布策略,将数据分流,分别 加载到不同数据库所对应的批量加载服务。 批量加载服务与数据库是一一对应的,批量加载服务( 包含数据缓冲区管理 模块) 首先对接收的数据进行统计分析,然后由数据缓冲区管理模块将数据 写入缓冲文件。 并行加载任务调度服务包含3 个模块,分别为并行任务调度、数据加载模块和 索引维护模块。并行数据加载服务的功能就是提供分区之间以及分区内的各 个操作之间的并行处理,将不同的操作调度到用于加载的计算资源上,并控 制加载的并行度,维护各个操作之间的依赖关系。 数据统计服务需要将不同批量加载服务的统计数据汇总,并及时更新统计表, 维护统计数据与信息数据的一致性。 2 2 2 并行数据访问服务 并行数据访问服务的功能包括对配置数据的插入、删除和修改,对信息的查询,并支 持用户自己定义事务。并行数据访问服务为用户提供一个访问多个数据库的统一接口,并 负责维护统一视图。并行数据访问服务包括会话管理模块、会话服务、数据库访问引擎, 并使用s t a r b u s 的对象事务服务管理全局( 用户定义) 事务,如图2 3 所示。会话管理模 块负责会话的创建、会话状态的维护以及会话对象的删除。在一个会话对象上,用户可以 创建一个事务,依次提交一系列请求,交互式获取查询结果,提交事务或取消一个事务等。 会话服务通过o t s 对用户创建的事务进行管理。对于一个请求的执行分为3 个阶段:语法 分析、并行优化、并行执行。语法分析对请求进行语法检查,并形成语法树:并行优化将 对请求的语法树进行分析和并行优化,形成并行执行规划;请求执行器调度各个局部数据 库,并行执行子请求,并将结果合并,返回给用户。子请求的执行是由数据库访问引擎执 行的,数据库访问引擎是一个标准的数据库访问服务,屏蔽了由于不同数据库产品以及同 样产品的不同版本之间的数据库异构性,同时也对数据库访问提供了优化处理。 第9 页 里堕型兰垫查查堂塑窒竺堕兰垡堡苎 图2 3 并行数据访问服务结构 2 2 3 日志管理服务 从并行加载服务和并行数据访问服务在大规模事务处理中间件中的重要作用及其自 身的复杂性可知,迫切需要一种手段来记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论