(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf_第1页
(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf_第2页
(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf_第3页
(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf_第4页
(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于嵌入式数据库的缓存技术研究与实现.pdf.pdf 免费下载

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

文档简介

桂林工学院硕士学位论文 摘要 c a c h e 技术是一种以高速缓存为主的应用型技术,主要是为了解决当前计算机系统中各 部分接口数据传输速度不一致问题而使用的。速度矛盾不仅存在于计算机硬件系统中,也广 泛存在于当前的计算机软件系统中,尤其在近几年发展迅猛的网络应用中体现突出。矛盾主 要体现在:系统性能降低和网络吞吐量减少,极大的影响了当前系统的正常工作。c a c h e 技 术正是为了解决该类型矛盾而应运而生的。c a c h e 技术能够有效减少网络时延、节省网络带 宽、降低服务器负载。它相当于在矛盾层之间建立一个起到缓冲作用的桥梁。目前c a c h e 技 术已经进入了快速发展,应用领域宽广。 本文以软件缓存技术为主要切入点。以嵌入式数据库系统为基本,内存索引缓存技术为 扩展提出并实现了d a t a r e l a y 系统。详细讨论了缓存技术在w e bs e r v e r 中的主要应用和实现 代码,为今后在不改变当前硬件的前提下提高网络服务器的负载能力打下了基础。 关键词: 嵌入式数据库索引技术 服务器缓存缓存技术 桂林工学院硕士学位论文 a b s t r a c t : c a c h et e c h n o l o g yi sah i g hs p e e dw e ba p p l i c a t i o n ss o l u t i o n i ti sap r e f e c t c h i n gt e c h n i q u e s a l et h ep r i m a r ys o l u t i o nu s e dt or e d u c ew e ba c e s sl a t e n c y 黝c a c h i n gt e c h n i q u eh a sb e e n w i d e l yu s e di nd i f f e r e n tp l a c e so fi n t e r n e t b u tt h ec a c h em e c h a n i s mo n l yu s e st h et i m el o c a l i t y t h e r ea r et w op r o b l e m st ob es o l v e db e f o r ec a c h i n gc a l lb ep u ti n t op r a c t i c e : o n ei st h a ts o m e m a n yp e o p l ev i s i t e daw e bs i t e i nas h o r tt i m ep e r i o d ;t h eo t h e ri sh o w t oc o n t r o lt h ec a c h i n g s y s t e mt om a k e i tb i ge n o u g ht oc o n t a i nal o to fc a c h eo b j e c t c a c h i n gi sab r i d g eb e t w e e nt h et w o p o i n t so fc o u n t e rp a r to ft h ei n t e r n e t t o d a yc a c h i n gt e c hi sb e i n gr a p i dd e v e l o pa n dh a v eaw i d e l y a p p l i c a t i o n s t h i sp a p e ri sm a i n l ya b o u tt h ec a c h i n gs y s t e m t h i sc a c h i n gs y s t e mw a sb a s e do ne m b e d d e d d a t a b a s eu s e dt h ec a c h ei n d e xt os o l v et h ep r o b l e m s i ti sn a m e dd a t a r e l a ys y s t e ma n d i m p l e m e n t t h i ss y s t e mu s i n g n e tf r a m e w o r k i tw i l li n c r e a s et h ew e bs e r v e rp o w e ri nt h ef u t u r e k e y w o r d s : c a c h i n g ;e m b e d d e dd a t a b a s e ;s e r v e rc a c h e ;c a c h e i n d e x 桂林工学院硕士学位论文 ! 苎! ! ! 竺i =i ! ! ! ! ! ! ! 苎! 竺! ! ! 苎! ! ! ! 竺! 竺! ! 竺! ! ! ! ! ! ! ! ! 竺! ! 竺! ! ! ! ! 研究生学位论文独创性声明和版权使用授权说明 独创性声明 本人声明:所呈交的论文是我个人在宰教授指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含他人已经发表或撰写过的 研究成果,也不包含为获得桂林工学院或其它教育机构的学位或证书而使用过的材料。对论 文的完成提供过帮助的有关人员已在论文中作了明确的说明并致以了谢意。 学位论文作者( 签字) : 签字日期: 版权使用授权说明 本人完全了解桂林工学院关于收集、保存、使用学位论文的规定,即:按照学校要求提 交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并提供目录检 索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为 目的前提下,学校可以公布论文的部分或全部内容。( 保密论文在解密后遵守此规定) 学位论文作者( 签字) : 指导教师签字: 签字日期: 桂林工学院硕士学位论文 第1 章绪论 在整个计算机技术发展的过程中,缓存技术一直具有非常重要的作用。从一个角度来看 可以说他较好推动了计算机网络的应用普及。数据缓存技术就是将内存的c a c h e 技术运用到 数据库的应用系统中去,以便获得较高的数据搜索效能和系统负载能力。 1 1研究内容与研究目标 1 1 1 研究内容 本文主要构建了一种分布式的,基于自配置高速内存缓存计算模型系统,本文称之为 d a t a r e l a y 。该系统的核心思想是在服务器端运行一个由嵌入式数据库建立的内存缓存系统中 间层。该中间层系统的最大特点是可以高效快速的处理大量的数据,满足多用户的并发访问 需求。由于嵌入式数据库系统的使用该缓存系统还具备易管理、易实现、低成本等优点。论 文以下详细给出了d a t a r e l a y 的工作原理和实现方法,同时还提出了针对d a t a r e l a y 系统的实 现代码和测试代码。 d a t a r e l a y 是一种中间层缓存技术。当用户访问w r e bs e r v e r 的时候,网络服务器可以使用 两种方式来得到用户所需要的数据。一是直接从数据库服务器中获取数据;二是从r e l a y 中 获取。在这里需要声明的是d a t a r e l a y 是一种需要显式在程序中使用的技术,即网络程序员 在声明使用对象的时候要显示声明当前对象是缓存对象,也就是说当前对象会在r e l a y 中使 用。在本文的实际研究中确定了r e l a y 使用双层缓存系统的机制来处理缓存对象。双层缓存 处理首先是c a c h ei n d e x ,在该索引缓存中使用了i n d e x 对当前的缓存进行管理,i n d e x 实际是 由一个哈希表用于查找序列化对象的内存位置。当系统当前的缓存过期后,r e l a y 系统会将缓 存中的内容移动到b e r k e l e yd b ( b d b ) 中,b d b 是一种嵌入式数据库系统。对于b d b 的内 容本文后面会详细介绍。由于在缓存系统中创造性的使用了嵌入式数据库系统,极大的增强 了当前缓存系统的负载能力。当b d b 中的缓存数据也被丢弃时,则r e l a y 会从当前网站后台 的数据库系统中直接读取数据。这样就完成了一次读取操作。写入操作则是当前过程的逆过 程。同时,也是因为使用了嵌入式数据库对缓存内容进行存储,所以可以在未来系统扩展的 时候方便的使用多台处理机进行扩展,通过嵌入式数据库系统的管理来完成数据唯一性和有 效性的控制。 本文系统、全面的学习和总结了网络服务缓存系统的发展现状和未来趋势。本文的主要 研究内容包括。 ( 1 ) 本文提出了一种基于嵌入式数据库系统的i n t e r n e t 海量缓存系统d a t a r e l a y 。d a t a r e l a y 采用可扩展的内存数据库系统。d a t a r e l a y 采用优化的数据容错策略,动态自适应的内存调度 策略以及并行传输机制为网络平台提供了高速、可靠的分布式数据存储服务。 ( 2 ) 综合设计模式的多种核心思想,使用面向对象的基础理论。对d a t a r e l a y 的整体架构 进行了优化。对于缓存技术的采用嵌入式数据库进行管理。成功的解决了数据的一致性问题。 ( 3 ) 对于使用d a t a r e l a y 的网络服务进行的单元测试,证明该系统能够有效正确的工作。 桂林工学院硕士学位论文 1 1 2 研究目标 对于现有的大量网络系统来说,很多系统都存在服务器资源的浪费。同时失败的架构设 计也给开发者造成成本增加,同时给网站的使用者带来了不便。随着计算机及其相关技术的 高速发展,按照摩尔定律计算机硬件机能每隔1 8 个月就要更新一代。同时对现有系统中数据 的大量访问使得当前系统资源变得严重不足,其表现为:系统的性能出现急剧下降、数据搜 索运行缓慢、系统的可用性大幅度降低。如何在维持现有的硬件水平的同时来提高当前系统 性能和数据搜索速度就成了一个主要的问题。本文探讨的正是在不提高现有计算机硬件水平 的前提下提高对网站的访问速度。 其次,网络应用的升级也使得数据库系统开始有了广泛的应用。现有大部分管理信息系 统都是基于b r o w s e r s e w e r 模式的,相当数量的管理信息系统是采用的关系型数据库系统 ( r d b m s ) 和c l i e n t s c w c r 模式。由于大量用户所访问的资源对于网络后台数据库具有较强的 依赖性,因而导致对数据库的连接剧增。使得数据库成为网络访问速度瓶颈,在很大程度上 降低了当前网络系统的性能以及可用性。而本文正是针对这种情况提出了一种数据缓存技术, 以便实现网络访问均衡负载达到提高数据访问速度和数据访问稳定性的作用。其主要作用是 在服务端和数据库端建立一个中间层,进行内存数据缓存来缓解两种系统间传输矛盾。 最后,相当多的数据缓存技术是基于一种技术的,比如传统的内存缓存技术。本文旨在 探讨一种新型分布式数据缓存系统,通过双层体系结构来提高缓存中数据的利用率和缓存成 本。硬件系统是软件系统的基础,因此硬件系统的提高和改善同时也会给软件系统带来巨大 的提升。因而,大多数缓存技术的研究都是从硬件分析入手。数据缓存技术因涉及到网络负 载、服务器吞吐量和数据库性能等多个领域而成为研究中的难点。因此本文以软件缓存技术 为主要切入点。以嵌入式数据库系统为基本,内存索引缓存技术为扩展提出了d a t a r e l a y 系 统。详细讨论了缓存技术在w e bs e w e r 中的主要应用和实现代码,为今后的更大数量的用户 访问打下基础。 1 2课题的研究背景 随着当前网络技术的不断发展,用户越来越多的在w e b 上发布、共享和获取信息。w e b 已经成为信息制造、发布、加工和处理的主要平台。从w e b 访问者的角度来看,在当前的 w e b 环境中如何有效的发布和共享信息是尤为重要的一点。从w e b 使用平台提供者的角度来 看,如何提高网络服务的负载能力避免服务瓶颈以及有效的利用网络带宽就成为w e b 应用研 究中需要有效解决的重要问题。信息产业是现在发展现代化所必须发展的先导方向。 当前,随着各行各业管理信息系统的建立,数据库技术的应用越来越广泛,如何提高数 据利用率和数据搜索速度已经摆到了重要位置。传统对d b m s 访问的网络应用程序可以提供 数据采集、存储和搜索等基本功能,在这之中对相关数据的搜索的需求就显得较为重要和突 出了。搜索相关数据的功能设计的好坏就直接影响了软件产品的生命周期。快速并且高效的 数据搜索是当前需求中的重要目标,对传统领域的o a 系统、管理信息系统等d b m s 的发展 具有很大的推进作用和不可估量的重要意义。c a c h e 技术是一种高速缓存技术,对整个计算 机系统的发展起着极为重要的作用。随着c p u 的处理能力大大提高,性能不断增强,计算机 6 桂林工学院硕士学位论文 被广泛地使用。于此同时计算机系统的各个部分的运行速度开始变得不平衡。如计算机硬件 中的c p u 、内存和磁盘存储器的发展速度都是不一致的,甚至有些差别较大。这样导致了这 些系统之间的接口速率不一致,非常容易造成局部输入输出的瓶颈,影响整个计算机系统的 性能,同时也会降低当前系统的可用性。【1 1 c a c h e 技术实际上是在各部分之间加入一个缓存区,具有对数据进行缓冲的主要作用。 用以缓解各设备接口之间的1 0 矛盾。现有的缓存技术一直在被人们不断的改进与完善,广泛 的应用在计算机系统的软件与硬件领域。如果熟悉硬件存储器中的缓存系统与磁盘阵列系统 中的缓存或者w e b 中的c a c h e 系统就可以轻易的理解缓存系统的主要应用了。其中磁盘缓存 可以极大地改善外存储器和内存储器之间存取速度不一致问题:w e b 中的高速缓存系统也在 可以在很大程度上缓冲当前网络的带宽,这样在一定程度上促进了互联网的普及发展。在当 前的计算机系统中无论是宏观还是微观,从存储系统到硬盘系统以至于w e bs e r v i c e 系统,缓 存技术的发展使这些系统的存储和搜索能力都获得了较大的变化。从近几年的情况来看 d b m s 和互联网技术都获得了较大发展,不断的将现有理论运用于实践当中,在管理信息系 统、o a 系统、酒店管理系统以及飞机定票系统。但同时也出现了数据搜索效率低下等一系 列问题,这些主要是由于用户访问量较大同时网络带宽无法满足应用需求造成的。因此将缓 存技术引入到不同领域都会使当前系统的性能得到较大改善,搜索效率得到有效提高。 本文因此针对w e bs e r v e r 的服务端提出了一种有效的解决方案,在网络编程的底层提供 分布式的数据缓存方案有效的保障了高访问量下的服务器负载均衡。 1 3 本文结构 本文共分为五章 第一章为绪论,首先介绍了网络的发展现状和相关的研究热点,然后对分布式缓存技术 进行了讨论。接下来,介绍了本文的主要内容和贡献,最后说明了本文的结构。 第二章探讨了缓存技术研究的理论基础和相关技术点。着重说明了基于w e b 的缓存技术 原理,以及三种数据缓存系统的优劣。 第三章使用软件工程及设计模式的核心思想对d a t a r e l a y 进行了系统体系结构的设计, 完成了d a t a r e l a y 的概要设计。 第四章为d a t a r e l a y 的详细设计。首先对开发平台及选择工具进行了介绍。然后对系统 中的模块进行了逐一的说明和阐述。 第五章对d a t a r e l a y 的测试部分进行了实现。证明d a t a r e l a y 是一种行之有效的网络缓存 系统。 第六章对本文的工作进行了总结,并对今后的研究工作进行了展望。 7 桂林工学院硕士学位论文 第2 章理论基础及相关技术点 缓存技术是一种非常重要的计算机技术。缓存技术最初是在计算机系统的各硬件部分之 间设置缓存区以此来缓解存在于各部件接口间的速度问题,进而大幅度提高计算机系统性能。 2 1 传统c a c h e 技术原理 2 1 1 缓存技术概述l 】 c a c h e 技术是一种以高速缓存为主的应用型技术,主要是为了解决当前计算机系统中各 部分接口数据传输速度不一致问题而使用的。这种非一致性不仅存在于计算机硬件系统中, 也广泛存在于当前的计算机软件系统中,尤其在近几年发展迅猛的网络应用中体现突出。矛 盾主要体现在:系统性能降低和网络吞吐量减少会极大的影响当前系统的正常工作。c a c h e 技术正是为了解决该类型矛盾而应运而生的。c a c h e 技术能够有效减少网络时延、节省网络 带宽、降低服务器负载。它相当于在矛盾层之间建立一个起到缓冲作用的桥梁。目前c a c h e 技术已经进入了快速发展,应用领域宽广。 依据缓存技术应用领域的不同,主要有以下几种缓存技术:存储器缓存技术、磁盘缓存 技术、网络服务器端缓存技术以及相关数据缓存技术等。其中,存储器缓存技术主要是应用 于处理器和内存之间,用于缓解中央处理器和主内存之间的数据输入输出传输速率不匹配问 题。磁盘缓存技术主要使用于内存与磁盘存储器,来提高它们之间的数据交换速度与数据吞 吐量缩小磁盘存储器存取低速度的影响。互联网服务器端的缓存技术是伴随互联网的发展而 产生的。由于网络资源相当丰富和用户访问数据量的增加,凸显出网络带宽有限性和网络资 源的匮乏。在某些情况下用户的访问速度变得难以忍受,因此出现在代理服务器上使用缓存 系统以便减少用户的访问时间。本文所论述的数据缓存技术是在数据库系统和w e b 服务端建 立的大容量缓存区,用于缓冲用户对数据库的访问请求以便缓解对数据库服务器的请求压力。 数据缓存技术的主要应用于客户机朋艮务器方式下的管理信息系统,其工作方法是将缓存技术 与数据库访问技术融合。 根据缓存技术应用位置的不同可以将缓存分为以下三种:客户端数据缓存系统、集中式 缓存系统和分布式缓存系统。客户端缓存系统是在客户端设置数据缓存的一种方式,主要应 用于远程计算机网络中,用于缓解因网络传输速度不一致而导致的网络延迟;集中缓存系统 是在某一网络节点上设置数据缓存区,相当于使用数据镜像来减少对数据库系统的读写和连 接次数;分布式缓存系统则是在网络中的各节点内部设置数据缓存区,然后进行统一的调配 和管理主要解决局域网中的数据传输问题。虚拟缓存系统是一种新型的缓存系统,其实质上 是一种分布式缓存系统的变形。 从一般意义上来说数据缓存技术具有广泛的含义,对任何数据的缓冲都可以称其为缓存。 包括网络中的缓存技术、数据库技术以及多方面的缓存技术。事实上,互联网服务端缓存技 8 桂林工学院硕士学位论文 术和应用于计算机硬件上的数据缓存技术从本质上说是等同的。都是在客户端与服务端之间 添加一个缓存区对服务器中数据进行缓存处理,从这一方面来说属于同一系统。从狭义角度 来说,数据缓存技术特指对网络后台数据库中数据使用缓存。本文所讨论的数据缓存技术主 要是针对后一种狭义定义的。上面所提互联网服务端缓存技术和普通数据缓存技术之间的主 要差别在于用于互联网服务器的缓存技术是基于w e b 技术的,也就是说是对站点中网页、链 接等非结构化或半结构化内容所做的缓冲;而数据缓存技术是传统的数据库应用领域中的应 用是对索引内容和数据库内容等结构化数据的缓冲。但是传统数据缓存技术和互联网缓存技 术两者的实现技术还是有相当多共性的地方仅在实现部分应该区别对待。 客户端和代理缓存主要用于减少网络数据传输造成的内容读取时延。服务器端缓存主要 用来减少服务器端的响应速度,主要用于提高服务器的数据吞吐量。由于缓存的目的不同, 以及客户端、代理系统和服务器端的功能不同导致这些缓存的容量、操作方式等等都存在或 多或少的差异。客户端缓存一般容量较小,其替换算法和刷新方法都比较简单,因此效率不 高。代理缓存主要是面向某一种用户聚合类。这些用户所访问的内容大部分是相同的,而且 访问频率比较高。通常设置合理的代理缓存可以大大减少这一类请求对网络流量的影响,从 而减小对服务器压力,缩短从服务端到客户端的时延。而服务器端缓存的主要则是为了缩减 服务器的响应时间以及当前服务器的数据吞吐量。1 3 j 由此可以看出,服务器端缓存是缩短网络访问时服务器响应时间提高和服务器吞吐量的 根本。对于一个站点来说,使用程序手段解决服务器端网络的访问问题是最现实也是最容易 的一种方式。 2 1 2 存储器缓存技术 最初存储器缓存系统主要是为了缩小高数据吞吐量的中央处理器和计算机内存之间的速 度差异而设立的。缓存与主内存之间以块为单位来进行数据交换,块的容量大小以主存储器 的一个存储周期中能够访问到的数据最大长度为限制。其大小决定了当前缓存系统的命中率。 缓存系统的主要性能指标为加速比,其等效访问周期公式为 。 t h 乏+ ( 1 一日) 乙 公式中的t 为缓存系统中的等效访问周期。t c 为缓存系统的总访问周期。t m 为主内存的 访问周期。h 为当前缓存系统的命中率。因而缓存系统的加速比s 为 s 。玉 r 公式中的t 为缓存系统中的等效访问周期。t m 为主内存的访问周期。加速比越高说明当 前缓存系统的等效访问速度与缓存的速度越接近。又由于t m 和t c 与所用器件密切相关,因 而提高当前缓存系统加速比的最佳途径是提高命中率h 。当c a c h e 装载数据满的时候,如需 再装入数据就必须要替换旧数据,旧数据的替换算法主要包括先进先出( f i f o ) 算法和最久 没有被使用( u 町) 算法及衍生算法。如果速度差别过大,同时可以采用多级缓存系统。近 几年又出现了虚拟地址缓存方式,全地址缓存等,这些技术都使得缓存技术得到了快速发展。 【6 1 9 桂林工学院硕士学位论文 2 1 3 缓存技术的性能参数 近几年来,高性能存储系统研究的一个关键点是磁盘的数据吞吐量。虽然在提高盘片运 转速度、改善寻道机制和提高记录密度方面使得物理磁盘的存取性能得到进一步的提高,但 由于机械限制使得这种性能改善是非常有限的。另一种改善计算机输入输出性能的主要方法 是尽量避免直接的磁盘操作。应用磁盘缓存技术后可以大量减少对物理磁盘的读写次数,起 到缓冲的作用。如果对于物理磁盘的主要数据访问大部分都可以由磁盘缓存来完成那么输入 输出的时延可以极大的缩短。缓存系统的主要性能参数有:缓存容量、块容量、放置策略和 数据替换策略等等。主要通过对以上技术指标的优化来改善缓存系统性能。通常情况下计算 机程序都具有两个显著特点:数据访问的局部性与程序运行的顺序性。局部性包括两个方面: 时间局部性与空间局部性。时间局部性是说一个程序最近引用的数据信息很有可能在短时间 内被再次使用,程序的循环结构是这个特性充分体现;空间局部性是说当前程序引用的地址 空间临近的地址空间很可能在最近将被引用,这些都为缓存系统使用预读取技术或预发送技 术来改善缓存系统性能提供了基础。 2 2w e b 缓存技术原理 现今网络上最热门的应用服务主要是由分布式信息系统所提供的如w e b 和f t p 。其中, w e b 是由多媒体信息的传输与较好的用户交互性而倍受青睐。w e b 使用请求响应方式进行工 作。其影响网络服务响应时间的原因主要包括客户端处理和显示时延,服务端对请求进行处 理的延迟以及当前物理网络延迟。物理网络延迟包括发送延迟和传输延迟,发送延迟和当前 的可用带宽有关,传输延迟则和链路介质和传输两端的物理距离有关。总的来说当前网络数 据传输瓶颈仍然主要是物理带宽。如果需要减少网络用户的响应时间,除了通过增加主干网 络的带宽容量来降低客户读取数据的时间外。目前主要使用的两种网络加速技术主要是:镜 像技术、数据缓存技术。镜像技术是把完全相同的文件内容复制到多台主机上,这些镜像主 机分散在网络中的不同节点中。镜像服务器方式已经成功的应用于f t p 服务器。镜像服务器 的主要问题需要由用户来选择连接到那个镜像服务器无法保证对用户的不透明性。已知在如 下几种情况下镜像服务器技术无法有效工作:一,用户非显式获知这些镜像服务器的地址; 二,用户无法判定当前镜像服务器上的资源是否为最新的文件副本,这将导致用户从原始服 务器获取数据。缓存机制较好的利用了互联网访问的时间局部性,将用户曾经访问过的文件 保存在非服务器站点。这样可以避免频繁向远程服务器发送数据请求,同时也避免了远程服 务器不断对这些请求发送完整的响应。因此,当前互联网应用都是将两者结合来缓解网络瓶 颈。一般说来大多数都依赖于缓存方案来解决服务器负载问题,因为该方案的实施比多镜像 服务器方案所耗费的资金少。当前互联网中使用的缓存技术建立的缓存区可以单独或者分别 将其建立在客户端、代理服务器和万维网服务器上,来处理冗余客户请求。w e b 服务器中缓 存系统的工作方式和工作原理与物理存储器缓存系统类似,当客户端需要访问网络页面时, 首先要与w e b 代理服务器建立连接。客户端向服务端所发出数据请求首先要经过代理服务器; 然后经由代理服务器判断数据是否已经存在于本地缓冲中;如果本地缓冲中不存在该内容, 则代理服务器会向远程服务器请求该数据。远程服务器将对该请求做出应答,如果存在则在 将该数据发送给客户端的同时,按照一定的规则判断是否将该数据存放到代理服务器的缓冲 区中。在网络服务端的缓存技术所采用的置换算法和一致性方式也是借鉴物理存储器和磁盘 缓存技术。归纳起来,传统的缓存解决方案包括【3 1 。 1 0 桂林工学院硕士学位论文 镜像技术。所谓镜像技术是在多个物理位置的多台服务器上复制存储相同的文件副 本。这种技术的思路非常简单,即缩短终端用户到服务器的距离,从而加快用户终端 的访问速度。镜象技术本身存在着一定的问题如:数据的冗余副本将很难保证数据的 一致性。同时镜像技术也是一种高成本高费用的网络加速技术。 集群技术( w r e bf a r m ) 。集群技术是将客户端的请求按照相应的算法分配到一台或多 台服务器,然后由集群服务器共同响应客户端的请求。从而达到降低网络访问时延的 目的。集群系统在一定程度上提高了当前网络系统的可用性以及处理能力,但是集群 系统不能有效解决网络带宽的限制。同时集群系统的划分十分困难,一旦出现间断型 的活跃用户则有可能对单一服务器造成巨大压力,而无法均衡负载。 浏览器缓存。浏览器缓存主要应用于终端计算机的浏览器上。该技术的确能够极大的 加快对网页访问速度,但是当前缓存的内容是无法实现共享的。用户间无法通过共享 缓存来提高网络的浏览速度。 压缩传输。压缩传输是指在数据进行传输之前首先由计算机对数据进行压缩。这就需 要在发送方部署压缩软件,在接受方部署解压软件。虽然这种技术能够有效节约带宽, 但依i e l 缺乏应用透明性。 2 2 1 客户端数据缓存系统 客户端数据缓存系统( c l i e n t s i d ec a c h i n g ) 是指在网络中数据获取方的计算机上建立数据 缓存区对服务端发送过来的数据进行缓存,这对于特定类型的用户以及频繁访问某一特定资 源的应用程序具有很大好处。可以只存在一个客户端缓冲区,它只对本地访问的数据进行缓 存处理;还可以在当前客户端建立多个缓存区,多个缓存区可以相互联系互相合作。对于实 际用户来说,具有缓存透明性相当于对于用户来说是单端局域网缓存系统。对于第一种缓存 系统又分为会话级缓存的和主机级缓存系统的,它们处于不同的网络层。实验表明单端局域 网的缓存系统是最为有效的缓存策略。会话级与主机级需要为每个客户都保存缓存对象的副 本,因而浪费了有效的缓存的空间1 8 j 。以上三种级别的缓存分别适用于不同的系统,不能绝 对地比较优劣。无论是哪个级别的缓存系统,以上方式的置换算法和刷新策略都比较简单易 于控制实现。缓存系统的实现方式主要有两种:一种是在应用启动时一次性从数据库服务器 下载所需全部资源,但该方法时间较长对数据库的访问过于集中,具有一定的实施困难:另 一种是增量获取法,即每次只获取所需数据,由于数据下载分批分阶段完成,一般情况下用 户不会明显的感觉到网络时延。数据查询时先在指定的标志缓存区中查询,若相关的数据没 有下载过,则在服务端下载所需数据,然后在缓存区中进行查询。另外,有关客户端缓存系 统的一致性问题即更新方法和策略,主要分为主动方式、被动方式以及多方合作方式等。 2 2 2 集中式数据缓存系统 集中式数据缓存系统是指在系统的某个关键节点上设置一个资源缓存区,根据设置资源 缓存区的位置不同又分为服务端数据缓存系统( s e e 卜s i d ec a c h i n g ) 和代理级数据缓存系统 ( a g e n t s i d ec a c h i n g ) 。服务端数据缓存系统主要是在服务器上设有相应的数据缓存区,主要应 用于局域网;服务端缓存系统主要分为文件级缓存系统和内存级缓存系统,文件缓存系统的 缓存区是以文件形式存在,内存缓存系统的缓存区在内存中的。目前大多数缓存系统都使用 1 1 。 桂林工学院硕士学位论文 内存方式其主要原因是内存缓存系统的实现难度较大。在设置了服务端的缓存系统后,可以 大量减少网络服务器对用户请求的响应时间。由于服务端缓存区中的内容是存在服务器中的, 因此该系统无法减少用户的请求次数。服务器端缓存主要用于缓解服务器的资源稀缺的状况。 通常情况下该缓存技术需要与其它相关缓存技术配合使用。d 2 i 代理级缓存系统经常是在处理请求和应答数据频繁的网关或代理服务器上建立一个或多 个数据缓存区,主要应用于局域网和广域网。代理缓存系统主要是面向某种聚类用户群,聚 类用户所访问的内容经常是相同的同时访问很频繁。较好的代理缓存技术可以节约网络带宽 减少不必要的网络流量避免服务端的负载过重缩短客户端的时延。 2 2 3 分布式数据缓存系统 分布式缓存系统( d i s t r i b u t e dc a c h i n g ) 是指在网络数据传输中的分散网络节点中对用户请 求数据进行缓冲。其节点不仅是服务器也包括众多终端客户机。在设计该数据缓存模型时主 要需要考虑的关键问题是缓存点的选择、缓存容量的控制、缓存置换算法的选择和数据一致 性控制。通过有效分配调度这些可用资源,能够地缩短网络负载以及平均时延加快磁盘访问 速度。 和传统缓存控制技术相比,分布缓存控制技术更能对计算机软硬件资源充分使用。目前 关于分布式缓存技术国内外的研究都比较多提出了众多的缓存工作模型,这些模型很大程度 上属于从集中式缓存系统向分布式缓存系统的过渡。这里需要说明的是,应用分布式技术不 是缓存发展的目的而是缓存发展的一种工具。大部分分布式数据缓存系统的工作原理是:在 终端和服务端中都建立本地数据缓存区,本地数据缓存区只对当前系统服务。各个数据缓存 系统之间没有数据的直接交流,他们之间的数据同步由服务器端负责。1 1 3 1 在现有的分布式缓存系统中,虚拟缓存系统是最具挑战性的缓存系统。虚拟缓存系统是 一类特殊的分布式缓存。主要使用在物理联系紧密或具有较大带宽的网络系统中。同时在虚 拟缓存技术应用的网络中通常用户的访问行为具有较高的相似性。比如,一个大学的内部的 教学资源网,相关节点的缓存池中经常存放着类似信息的副本。这时为了提高缓存区的存储 效率,通常将分散的缓存节点有目的的组织为一个局部的缓存系统。这个缓存系统将物理上 分散的缓存节点拼接为在逻辑唯一的缓存池进行数据管理和访问控制。这样就可以进一步提 高缓存系统中数据存储的利用率,降低干线网络和远程数据的传输消耗。但是,这种缓存模 型理论复杂实现困难。虚拟缓存和分布式缓存系统的主要区别为虚拟缓存中各个节点的数据 缓存区的联系较为紧密,逻辑上是一个整体。同时各个节点缓存区内的数据冗余度最小,数 据缓存内容的分配较为科学,资源能够得到充分的利用。而一般的分布式缓存系统是一个较 为松散的结构,各节点之间没有紧密的联系。同时缓存区中的数据存在较大的冗余性,资源 配置合理性远不如虚拟缓存系统。但是,虚拟缓存系统在路由查找算法、缓存区数据控制等 诸多方面都比分布式数据缓存系统复杂而且实现困难。虚拟缓存技术是分布式缓存技术发展 目标。当前的绝大部分分布式缓存设计模型都是针对l a n 的。互联网网络技术的高速发展将 为分布式缓存技术打开新的空间建立广阔的应用前景。 桂林工学院硕士学位论文 2 3 本章小结 本章主要详细论述了c a c h e 缓存技术的起源和发展现状。为d a t a r e l a y 的设计和实现提 供了理论前提。从本文的第三章开始介绍d a t a r e l a y 的详细设计过程和实现。 1 3 桂林工学院硕士学位论文 第3 章d a t a r e l a y 模型设计 本章首先通过一个实例系统论述了为什么要采用d a t a r e l a y 的缓存机制来进行数据处理, 然后从概要设计和计算机体系结构的角度描述了d a t a r e l a y 的实现和数据流。 3 1 r e l a y 系统需求描述 本节将通过本人在一个w e b 2 0 网站实习的项目实例来介绍w e bs e r v e r 的演化过程,以 便清楚的解释为什么要使用d a t a r e l a y 对当前系统的访问性能进行扩展。w e b 2 0 是2 0 0 3 年之 后w e b 的热门概念之一,不过目前对什么是w e b 2 0 并没有很严格的定义。一般来说w e b 2 0 是相对w e b l 0 的新的一类w e b 应用的统称。w e b l 0 的主要特点在于用户通过浏览器获取信 息,w e b 2 0 则更注重用户的交互作用,用户既是网站内容的消费者也是网站内容的制造者。 本文首先假设当前网站需要实现如下的几个功能。 m e s s a g e :用户之间互通消息的工具,是邮件的一种形式,但由于主要在本站内进行 交互可以认为是一种站内信。 c o m m e n t :是用户之间用于留言和评论的工具。 f r i e n d l i s t :好友列表。用户之间具有好友关系,相当多的功能都是和好友进行交互。 用户的好友列表没有上限。因此也就造成了当一个用户浏览其他人p r o f i l e 的时候对数据库巨 大的压力。 p r o f i l e :是用户用于自我展示的地方,包括个人信息说明、好友列表、其他用户对其 的评论列表等。也是示例网站中访问量比较大的地方,同时也是对性能影响较大的地方。 3 1 1 单服务器模式 最初网站在进行开发的时候主要注重快速开发,希望能够使用所见即所得的编程方式。 同时为了能够简单的进行数据部署使用了单独的数据库服务器。在开发工具上选择了 c o l d f u s i o n ,数据库服务器选择了s q ls e r v e r2 0 0 0 ,如图1 所示。在单服务器阶段,用户数 量和用户数据都不大的情况下。w e bs e r v e r 可以良好的运行,但是随着用户注册数量的增加, 通过实际的应用发现当前的架构无法满足日益增长的用户的数量。当前的架构存在的主要问 题是使用单一的数据系统对网站的数据进行支持,所以有必要对该架构进行了基础性改良。 1 4 桂林工学院硕士学位论文 3 1 2w e bf a r m 模式 s q 图1 单服务器模式 首先对c o l d f u s i o n 的代码进行了大量优化,其次使用双服务器和数据库以便加大负载能 力。其结构如图2 所示。在负载阶段使用了如下的两种技术来保证负载均衡。 应用程序池:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配 置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序 池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。使用应用程序池 技术可以极大的提高网站部署的简便性。使用w e bf a r m 技术来进行后台服务器集群的管理。 w e bf a r m 是一种后台服务器绑定技术,该技术允许将多台服务器绑定为一台。当网站需 要进行部署的时候会由一台p u s h 服务器将d i i 和网页文件动态p u s h 到均衡负载的其他服务 器。i i s 中具备w e bf a r m 技术,这样就可以不必创建额外的w e b 网站,只要指定用于某个应 用程序池的工作进程的数量就可以了。当服务器的负载较小不需要额外的工作进程时,i i s 会 在一定的时间后自动缩减实际的工作进程数量。如果负载变大,需要额外的工作进程,i i s 再 次增加工作进程数量。这一切操作都自动进行,不需要管理员干预。 使用以上的设计能够明显提高网站的负载能力。但是使用多个服务器后必须严格保证各 个服务器上内容的一致性,否则当w e bf a r m 进行负载平衡的时候。用户可能看到错误的页 面。因此再次对该架构进行改进。 99 s o ls r rs o ls e r v e r 图2 w e b f a r m 模式 桂林工学院硕士学位论文 3 1 3 数据库分段模式 虽然改进后的架构在一段时间内满足的用户的使用需求,但是随着用户数量的增多,特 别是活跃用户数的增加。又出现了一些新的问题,新问题主要体现在以下几个方面。 用户数量急剧增加,同时用户数据的复杂程度增加。 数据库中部分表,被频繁查询有可能造成死锁。 数据库中部分表的容量急剧扩大,查询速度缓慢 由于网站中应用程序的增加对数据库的连接也大量增加,数据库连接池已经不能满足如 此大量频繁的数据请求。因此开始使用多数据服务器,并且在数据库服务器中根据用户i d 号 使用分段技术,以便保证数据库的负载平衡。改进后的结构如图3 所示。 图3 数据库分段模式 为了避免在业务逻辑层处理用户区间问题,对i i s 的i s a p i 进行了控制,用户区间如图 5 所示。例如当发现页面p o s t 的数据中存在u s e r i d 的时候,就由i s a p i 控制程序进行判 断。这样可以极大的减轻w e bs e r y e r 的负载。i s a p ( i n t e m e ts e r v e ra p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) 作为一种可用来替代c g i 的方法,是由微软和p r o c e s s 软件公司联合提出的w e b 服务器上的a p i 标准。i s a p i 与w e b 服务器结合紧密,功能强大,能够获得大量的信息,因 此利用i s a p i 可以开发出灵活高效的w e b 服务器增强程序。i s a p i 程序以d l l 形式被w e b 服务器加载到自己的进程空间中,因此和服务器共用同一个地址空间,且在没有客户请求时 可以将其从内存中卸载:而对客户端发来的每个对c g i 程序的请求则需要服务器为它单独启 动一个进程,这需要耗费大量的时间和内存。当并发的请求数目很大时,使用c g i 在效率上 不如i s a p i 。i s a p i 主要分为i s a 和i s a p if i l t e r 两部分。i s a 方法相对而言要传统一些,利 用一些特殊的链接,指向服务器的作业,供程序开发人员设计一些扩展功能;而i s a p i 过滤 器则倾向于构造服务器直接调用的模块,提供一种无缝链接部件用于监测直接来自于服务器 的h t 曙请求。应用i s a p i 后对数据库部分进行了如下改进。 对于用户数据重新进行原子划分。 对于经常需要访问的,或者频繁需要j o i n 的数据通过定时j o b 将数据复制到单独的表 中以便查询。 每一百万个用户使用一台数据库服务器。 1 6 桂林工学院硕士学位论文 以图4 为例,将部分活跃用户的站内信数据存放在较小的表中,并且使用单独的数据库 服务器同时对表建立索引,方便数据库进行访问。对于需求量较少的用户,则建立张较大 的表中。这样可以有效提高数据库服务器的访问效率。通过以上的改进取得了一些进步,如: 对单一数据库的连接请求大量减少。每台数据库服务器只响应有限范围的数据请求,提高了 数据库服务器的效率和对数据故障的负载能力。对于频繁查询的数据不再需要遍历多个表或 者建立大型的临时表来进行查询,极大的提高了效率。如果一台数据库服务器出现问题,只 有有限的用户会出现服务中断的情况。网站的绝大部分功能可以维持正常。 图4 区段用户分类 但是当前模式也存在一些问题:当用户数量增加到一定程度的时候,非区段用户的数据 表会变得异常庞大,这个时候就有必要使用用户数量分区法对用户进行分割来保证数据库服 务器和w e b 服务器的负载均衡。其结构如图5 所示。 f i l t e r e di s a p i 图5 区段用户分类及负载 对每一百万用户划分成一个区问,一个区间的用户使用固定的数据库服务器。这样划分 的好处是定义清晰方便管理。但是同时也带来一定的问题,通过实际监测数据发现众多活跃 用户可能集中在某一固定区段。也就是说对于数据库服务器来说负载并不是均衡的。当大量 请求到达的时候会出现单一数据库服务器无法满足数据请求的情况。因此,在架构上考虑使 用缓存系统来对用户的访问进行优化。以便在不增加服务器数量的情况下承载更大的用户量。 1 7 日日日日 桂林工学院硕士学位论文 3 1 4 使用传统缓存模型 虽然对现有的结构进行了大量改进,但还是存在一些问题。对现有结构的改进结果如图 6 所示。首先,用户数量随着时间的推移继续增加。其次,虽然对用户的区域进行了划分, 但是数据库的总体负载是不均衡的。部分数据库会出现不堪重负的情况。当单一数据库的查 询队列溢出的时候,进行查询的i i s 就会停止响应。这种停止响应的状态对于w e b 站点来说 是致命的,将会极大的破坏用户体验。 w 曲f m f p 帕n f l c h _ _ l 圈圈圈圈 圈圈圈圈 圈圈 圈圈 圈图 圈圈 l i m b f - _ n _ 峥i 图圈 圈图 圈圈 囝p 网 图6 使用传统缓存模型 为此,提出如下的两种解决方案。 解决方案一:根据现有的用户数据依赖性,最小化数据存储关键性。将现有的单一数据 库继续细化为多数据库模型,以加快数据访问速度和数据库健壮性。 解决方案二:缩短网络服务器的响应时间,如果短时间内服务器无法得到所需要的数据, 则认为该数据无法取得。每个用户区段设置活跃用户为v i p 用户,系统将优先处理v i p 用户 的请求。有效降低对于i i s 的请求队列。 面临的问题主要有:当用户数量继续扩展的时候该模式仍然无法满足需求。如果对当前 站点加入新的功能时,原有模式很难适应这种改变。或者增加

温馨提示

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

评论

0/150

提交评论