自适应锁缓冲算法的改进及在ONet上的实现

自适应锁缓冲算法的改进及在ONet上的实现

论文摘要

自适应锁缓冲算法是目前数据库并发控制领域中最出色的方法之一,但在实际运用中,由于“最小粒度事实锁”现象的存在增大了并发控制成本,为此本文引进了锁粒度升级机制来解决该问题。另外针对该算法所产生的页面并发修改问题本文也提出了一种改进的方法,这两个地方的改进使得该算法更加完善也更加实用。我们把改进后的算法运用在面向对象数据库管理系统ONet的并发控制之中,取得了良好的效果。 面向对象数据库随着面向对象技术的深入人心,逐渐被应用于大量而广泛的领域中。例如:GIS系统、智能决策支持系统、Internet数据库、内容管理等众多领域。ONet系统就是在这样的背景下进行研究和开发的。 本文第二章介绍了ONet大致的发展情况,包括其产生的历史,体系结构,服务器构造特点,故障恢复策略,提供的应用程序接口等问题,使读者能对ONet有一个大概的了解。 在第三章中,我们简单的介绍了数据库并发控制的问题,包括事务的并发执行,并发控制的方法等等,接着介绍了最一般的并发控制方法——加锁。针对C/S架构的特点,加锁并发控制方法也发生了一定的变化,产生多个变种,这些问题也在本章加以讨论。 第四章主要介绍了自适应锁缓冲算法的基本原理,深入探讨了缓冲锁和事实锁的区别,锁的粒度和分布,论述了“最小粒度事实锁”的现象以及带来的不良影响,因此我们引入了锁粒度升级机制来解决这个问题。另外,细粒度并发控制使得页面内的并发修改变成可能,参考原来的解决方法,我们提出了一个改进的页面修改合并方法,取得的较好的效果。 第五章介绍了该算法在ONet中的具体实现。为了实现该算法,ONet的页面服务器实现了部分对象服务器的功能,我们称之为“对象页面服务器”。该算法最核心的部分是缓冲锁的管理,本章分别介绍了服务端和客户端的具体实现,讨论缓冲锁的授予与回收的各种情况。 最后,本文总结了ONet并发控制部分的优缺点,并提出了其今后还需要进一步改进的问题和相关解决思路。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 面向对象数据库系统简介
  • 1.1 引言
  • 1.2 面向对象数据库发展现状
  • 1.3 面向对象数据库系统的应用领域
  • 1.3.1 地理信息系统(GIS)
  • 1.3.2 智能决策支持系统
  • 1.3.3 Internet数据库
  • 1.3.4 产品数据管理(Product Data Management,PDM)
  • 1.3.5 移动数据库
  • 1.4 面向对象数据库系统的最新发展
  • 1.4.1 XML与OODB的结合
  • 1.4.2 统一数据架构
  • 1.5 面向对象数据库存在的问题和发展趋势
  • 1.6 结论
  • 第二章 ONET的发展与技术特点
  • 2.1 概述
  • 2.2 ONET简介
  • 2.3 ONET的技术发展
  • 2.3.1 体系结构
  • 2.3.2 被动事务和高效I/O
  • 2.3.3 故障恢复策略
  • 2.3.4 ODMG标准
  • 2.3.5 对象组件技术
  • 2.3.6 异构系统事务支持
  • 第三章 数据库并发控制算法
  • 3.1 并发控制概述
  • 3.1.1 事务
  • 3.1.2 事务并发执行的问题
  • 3.1.3 并发控制方法
  • 3.2 加锁并发控制
  • 3.2.1 三级封锁协议
  • 3.2.2 可串行性与二阶段加锁协议
  • 3.3 客户/服务器环境下加锁协议的各个变种
  • 3.3.1 C/S架构对并发控制的影响
  • 3.3.2 数据缓冲
  • 3.3.2.1 问题描述
  • 3.3.2.2 一致性算法
  • 3.3.3 锁缓冲
  • 3.3.3.1 单纯数据缓冲的不足
  • 3.3.3.2 基本锁缓冲算法
  • 3.3.3.3 自适应复合粒度锁缓冲算法
  • 3.4 ONET并发控制的发展
  • 第四章 自适应锁缓冲算法的分析和改进
  • 4.1 概述
  • 4.2 原理和并发控制层次
  • 4.3 锁粒度的升级
  • 4.3.1 缓冲锁和事实锁
  • 4.3.2 粒度和分布
  • 4.3.2.1 多粒度缓冲锁
  • 4.3.2.2 最小粒度事实锁
  • 4.3.3 锁粒度升级机制
  • 4.3.3.1 锁的开销
  • 4.3.3.2 锁粒度升级
  • 4.4 页面合并算法的改进
  • 4.4.1 问题由来
  • 4.4.2 现有解决方法
  • 4.4.3 新算法
  • 第五章 自适应锁缓冲算法在ONET上的实现
  • 5.1 概述
  • 5.2 对象页面服务器体系
  • 5.2.1 传统服务器体系
  • 5.2.2 对象—页面服用器体系
  • 5.3 自适应锁缓冲算法实现
  • 5.3.1 概述
  • 5.3.2 数据结构
  • 5.3.2.1 缓冲锁表
  • 5.3.2.2 事实锁表
  • 5.3.3 申请读锁
  • 5.3.3.1 客户端的工作
  • 5.3.3.2 服务端的工作
  • 5.3.3.3 页面缓冲写锁的回收
  • 5.3.4 申请写锁
  • 5.3.4.1 客户端的工作
  • 5.3.4.2 服务端的工作
  • 5.3.4.3 对象缓冲读锁的回收
  • 5.3.5 锁粒度升级
  • 5.3.5.1 客户端锁粒度升级
  • 5.3.5.2 服务端锁粒度升级
  • 5.3.6 小结
  • 第六章 总结和展望
  • 参考文献
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  ;  

    自适应锁缓冲算法的改进及在ONet上的实现
    下载Doc文档

    猜你喜欢