基于分布式数据库的三层缓存查询优化模型.docVIP

  • 18
  • 0
  • 约4.13千字
  • 约 9页
  • 2016-11-29 发布于重庆
  • 举报

基于分布式数据库的三层缓存查询优化模型.doc

基于分布式数据库的三层缓存查询优化模型

基于分布式数据库的三层缓存查询优化模型 摘要 如今,电子商务网站正越来越多地使用动态网页。动态页面生成技术允许网站在运行时生成页面。然而到目前为止,针对动态网页产生延迟问题的解决方案仍未取得实质性的进展。我们所提出的处理方法是基于缓存全部动态生成内容的概念。这个方法的新颖之处不仅在于可以缓存动态网页片段,还体现在智能缓存管理策略的运用上。 关键字:查询优化;网页缓存;代理服务器;动态页面片段。 引言 网络和互联网技术的提高对需要在不同平台[4]上访问众多异构信息资源的应用方有显著的影响。因为他们可以通过现有的计算机网络及时的向用户提供有效的资源。但伴随而来的是对应用工具不断增长的需求:它应该最大限度的提升可移植性、可重用性和任意时刻计算服务的互操作性,同时保持联合方法[1]中预先存在的应用程序的自主权。实现异构和自主源、全局查询分解和优化查询之间的协同性一直是这个领域的一个重点研究课题。 网络缓存[7]是对网页文档(如网页,图像)的缓存,它可以减少网络带宽使用,降低服务器负载和减小延迟时间[10]。一个网络缓存文档的副本就是通过它完成的。缓存有助于桥接本地活动和远程内容[14]之间的性能差距。在短期内,缓存有助于提升网络性能,降低成本和减少终端用户的网络访问[5]延迟。 文献调查 在同一系统中协调高速缓存的一个方法是建立一个缓存层次结构。采用分层缓存的思想,缓存被放置在多个层次的网络[12]。在分布式网络缓存系统中[8,13,11],任何其他的中间缓存级别都没有服务于个人的机构缓存级别高。为了决定从哪一个机构缓存检索文档,所有的机构缓存都应保存其他机构缓存内容的元数据信息。在分布式缓存[2]中,大部分的业务流通过较低的、不太拥挤的网络层。此外,分布式缓存可以更好的均分负载和容错。然而,大规模部署的分布式缓存可能会面临以下几个问题:如高连接次数、更高的带宽利用率以及管理策略等。这里有几种分布式缓存[5]的方法[9],比如互联网缓存协议(ICP),它支持从邻近以及父缓存中发现和检索文档。另一种方法是缓存阵列路由协议(CARP),该协议在一系列松散耦合的高速缓存中划分URL空间,并让每个缓存只存储文件,其可以通过URL定位找到。 拟建模型 我们所提出的模型中,在三个层级通过高速缓存维护执行快速查询处理,这三个层级分别是:一层用户级,二层代理服务器[3]级和三层数据库服务器级。当用户发出任何查询请求时,代理服务器首先在数据库服务器缓存中搜索结果,然后把结果返回给终端用户。该结果也存储在用户的本地缓存中,以便用户再次发出相同查询时可以很容易的从本地网络缓存中找到答案。但是如果另一个用户也生成了相同的查询请求时,其代理服务器就会从保存查询结果的代理缓存中查找这个特定查询的结果。正因为如此,用户提交的查询并不需要进入数据库服务器缓存中查找结果。这个方法减少了搜索结果的时间。 图2:分布式数据库中基于网络缓存的查询优化模型 设计实现 动态脚本技术如动态服务器页面(ASP) ()和Java服务器页面(JSP)(),允许网站在不同的运行时间参数的基础上为每个单独的用户预先调整内容,组装页面。然而它有一个主要的缺点:由于附加的负载放置在网络/应用服务器上,这种动态脚本技术会减少网络和应用服务器的可扩展性。除了纯脚本的执行开销,动态脚本所造成的延迟技术包括:由于从持久性存储(例如,数据库系统)中获取内容的延迟,由于数据转换的延迟(例如,XML到HTML的转换)和由于执行业务逻辑的延迟(例如,个性化软件)。迄今为止,解决动态页面产生延迟的工作只取得了很小的进步。 解决方案 为了解决动态网页产生的延迟问题,提出动态内容加速方案(DCA),该方案采用片段缓存的方法以重新使用动态HTML片段页。一个动态脚本通常包含一些代码块,其中每个代码块执行一些产生需要页面并生成一个HTML片段作为输出的工作。一个“写出来”的声明,它包含每个代码块,在缓冲区存放产生的HTML片段。动态脚本运行时,执行每个代码块并且把产生的HTML片段放置在缓冲区中。一旦所有的代码块执行,整个HTML页作为流向用户发送。一个新闻页面的动态脚本程序高层次描述如图3所示。 如果我们知道当前标题和导航组件是可重用的,我们可以选择缓存这些组件。这是通过在脚本中标记相应的代码块来完成的。当执行脚本时,标记指示应用程序服务器在执行代码块之前先检查缓存。如果在缓存中找到所需的片段,则绕过相应的代码块逻辑。如果在缓存中未找到所需的片段,则执行代码块和生成所需片段,随后放置在缓存中。 图3 新闻页面的动态脚本处理 缓存解决方案的一个关键方面是缓存管理。由于缓存已满,缓存替换策略的有效性决定了缓存的命中率,这是它的性能使然。我们的最有可能被使用的(LLU)缓存替换算法

文档评论(0)

1亿VIP精品文档

相关文档