ITPub博客

首页 > 数据库 > 数据库开发技术 > 【数据库设计与实现】第五章:同步与互斥

【数据库设计与实现】第五章:同步与互斥

原创 数据库开发技术 作者:joshua81 时间:2020-09-13 22:04:23 0 删除 编辑

5.1设计原则

    数据库的一个重要能力就是为多个用户提供并发访问服务,并发度是考察数据库性能的重要指标之一。事务隔离级别定义了并发控制算法的正确性,并让用户通过选择隔离级别在正确性和高性能之间进行平衡。事务重点考虑的是数据层面的并发控制,是属于较上层的同步与互斥。实际上,数据库系统是由大量进程、线程、数据结构构成的,进程、线程会并发地访问、修改数据结构,还需要在较底层级解决数据结构的同步与互斥问题。只有通过底层的同步与互斥机制建立起正确的系统,才能进一步获得数据层面的并发控制能力。

    同步与互斥涉及硬件、操作系统、数据库软件自身三个层面,越接近硬件构筑互斥能力,效率越好,但跨平台的能力也越差。为此,本章在Oracle、MySQL的基础上增加了Intel CPU和Linux操作系统关于同步与互斥的设计,从而进行全栈地比较。在设计同步与互斥时需要重点考虑如下几个方面:

  • 申请的时延;

  • 系统的效率,包括系统总线负载、CPU负载以及随CPU数量的扩展情况;

  • 公平性,多个进程或线程竞争互斥对象时,大家获取互斥对象的概率是否是相等的;

  • 可分析、可配置能力,同步与互斥是高并发的基础,当并发性达不到预期时,是否有充分的、直观的跟踪数据供分析出关键竞争热点,并具备进一步配置调整的能力;

  • 存储空间,为了提升并发性能一般会对被保护的资源进行切分,这会引入大量的同步与互斥对象;

5.2 CPU设计原理

     5.2.1 CPU基本特性

     5.2.2 硬件系统的架构

     5.2.3 缓存一致协议

     5.2.4 原子指令

     5.2.5 原子指令的成本

5.3 Linux设计原理

     5.3.1 总体设计

     5.3.2 原子函数

     5.3.3 Spinlock

     5.3.4 Semaphore

     5.3.5 Mutex

     5.3.6 RCU

5.4 Oracle设计原理

     5.4.1 综述

     5.4.2 Latch基本特性

     5.4.3 Latch的实现

     5.4.4 Latch布局

     5.4.5 Mutex

5.5 MySQL设计原理

     5.5.1 Mutex

     5.5.2 RW-Lock

     5.5.3 PolicyMutex

5.6 总结与分析

附件:博客布局不利于展示表格等内容,本章节详细内容见附件

数据库设计与实现(第五章).pdf


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69912723/viewspace-2719232/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-10

  • 博文量
    10
  • 访问量
    2331