详解K-DB RAC集群下的锁机制管理(三) ——K-DB锁包含的信息以及运行机制

这是关于K-DB锁技术的最后一部分,此前,陆续介绍了K-DB的演进、基本架构、锁目录的存储以及同数据块映射关系的建立等。本文将介绍K-DB锁包含的信息和运行机制,也就是每条锁到底包含哪些信息,以及每一条锁是如何建立、执行和取消的。

K-DB锁包含的信息

不同数据库产品的锁记录的信息差异不大,通用数据库在集群架构下通常需要的锁信息如下。锁信息的复杂性更多与技术架构相关。集群架构的数据库锁,需要记录的信息远远超过了Active-Standby架构的数据库产品,K-DB锁纪录的信息主要包含以下几点:

  1. DataBlock address。锁是针对数据块的,所以锁中的信息需要记录数据块的物理地址。
  2. Instance id。在集群环境下,会存在多个实例,需要记录下具体的实例id,才能知道该数据块正在被哪个节点访问。
  3. Lock mode。节点在访问数据块时,需要根据读写需求,申请不同的锁模式。如果是读的话,一般是申请S锁(共享锁),如果是写入的话,需要申请X锁(独占锁)。
  4. Block state,也就是数据块的状态。在锁申请之后,数据块的状态也需要进行变化。在常用的数据块中,包括SCUR,XUR。在这里重点给大家介绍一个状态叫做PAST IMAGE 。因为这个状态在单节点中是没有的。如果一个数据块在某一个节点中被修改后,然后被传输到了其他节点,那么本节点存储的数据块状态为PI(Past Image)block。PI block 在本节点中保留了一份最新更新的数据块的内容。当某一个节点down机后,利用PI能够提升数据库的恢复速度,K-DB正是利用了这项技术使得故障恢复速度明显快于业界其他产品。
  5. Role,是关于全局数据的一致性的信息。 一个数据块可以同时在多个节点的缓存中存在,而且可以不一致。当数据库的缓存中,一个数据块最多只有一个节点与磁盘中的数据不一致时。这个的角色就是local。当2个或2个以上的节点与磁盘数据不一致时,这个数据块的角色升级为global。对比global角色,local角色的数据块的回写会更简单,按照单节点的处理方式即可。而global 方式的话,处理的更加的复杂,需要在多个节点中进行确认。

K-DB锁的运行及测试数据

数据库锁的运行可分为申请、使用和取消三个环节,其中申请环节最为复杂,其他环节较为简单。

CWLS——锁管理的核心

CWLS(Cluster Wait-lock Service)模块负责系统锁的批准、生成和执行,是系统锁管理的核心模块。当一个instacne 向数据块的master 节点申请锁时,master 节点通过cluster wait-lock service查看当前锁的使用情况。申请进程主要一共有2个队列,一个是已经分配的队列,一个是等待转换队列。分配成功的队列上的锁模式的兼容性,必然是兼容的,与之相反的是,等待转换队列的锁模式是不兼容的,需要等待。例如,2个节点同时申请对用一个数据块进行读取操作。那么它们需要申请的是读共享锁。这2个锁是兼容的,可以同时放在分配列表中。GLD 中会记录下这两个节点的锁信息——共享锁。之后第三个节点想要修改这个数据块,它需要申请的独占锁。master节点的CWS发现该模式与当前分配链表中的锁信息不兼容,此时它需要等待。先把它放在conver queue中等待。向grant queen中的正在持有锁的实例发送请求,要求它们将当前的锁进行降级为与他兼容的模式。

原文发布时间为:2016年8月2日

时间: 2024-10-06 06:25:23

详解K-DB RAC集群下的锁机制管理(三) ——K-DB锁包含的信息以及运行机制的相关文章

详解K-DB RAC集群下的锁机制管理(二) ——K-DB集群基本架构

数据库锁专门协调不同进程间的资源冲突,系统资源冲突的类型.频率.复杂度等决定了锁技术的发展,而资源冲突的情况又与数据库系统的基本架构高度相关.例如,在standby架构下,虽然以多节点集群运行,但是实际各个节点轮换对资源进行操作,资源冲突更多的体现为节点内进程或者是线程之间的冲突,相对简单,与之相应的锁机制也就简单.而K-RAC同时支持多个节点共同操作,由此带来的资源冲突问题远比其他架构更为复杂.因而,本文将先介绍K-DB的基本架构,由此引出K-DB锁的存储管理.构成以及锁同数据库映射关系的建立

详解K-DB RAC集群下的锁机制管理(一) ——K-DB与锁技术的演进

集群功能是数据库产品高可用性的重要一环,集群架构是保障业务连续性的核心架构,体现着数据产品的高可用性和技术水准.但在业界集群架构有多种方案和技术,其中最具稳定性.最能够保障业务连续性的架构当属于RAC集群,即Real Application Cluster.RAC集群特点是多个数据库节点共享存储,节点多活,可同时处理业务请求,具有负载均衡和故障转移两大特性,以此为系统提供业务连续性和高性能保障,经过多年电信.金融等关键行业的核心业务检验,RAC集群技术已经成为业界数据库集群的首选方案. 目前,甲

详解K-DB RAC集群下的锁机制管理(四) ——K-DB锁的典型使用场景以及相关测试数据

在前三篇文章中,已经完成了对K-DB所技术的完整概述,包括K-DB基本架构.锁技术的存储.构成.运行机制等,读者至此应该对K-DB锁相关技术已经有了完整的了解.锁技术的最终的目的是协调冲突资源的使用,本文将列举几个典型的锁技术的使用场景,帮助读者更好的理解K-DB的具体运行机制,最后本文也会用测试数据来证明K-DB锁的高效性和稳定性. K-DB锁的典型使用场景 不同级别和条件,不同的insane,锁的申请和使用都有所区别,下面我们以一个3节点K-DB集群为例,来看具体的使用场景. 测试场景一:A

【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

Oracle 11G RAC数据库安装(八) 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安装,采用的原理机制就是ssh通信机制,所以前期ssh配置,各节点自动通信很重要.好在11G之后可以自动完成ssh配置,不用纯脚本,只需要按照步骤配置即可.接下来看下整体数据库群架构图.针对linux环境下搭建oracle数据库,本文也适用.针对数据库管理参见下

oracle11g-linux安装oracle11 rac集群,报错,请专家帮忙解释下是哪里问题,感谢

问题描述 linux安装oracle11 rac集群,报错,请专家帮忙解释下是哪里问题,感谢 解决方案 图太小,看不清,建议参考:http://blog.chinaunix.net/uid-14779297-id-1988248.html 解决方案二: http://wenku.baidu.com/link?url=DpFOy89l9FBzJo0qul70p81mRk9vXwjlNNgISVaKRSSyPKGy9Yoq389lRVG9sXLeRaWl7j71IGIhRnYt9SJlOKtpT22

Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。

1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使 用SolrCloud来满足这些需求. SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心. 它有几个特色功能: 1)集中式的配置信息 2)自动容

zt: 在linux上单机模拟Oracle 10g RAC集群(OCFS+ASM)

http://www.itpub.net/579479.html 本想做个安装记录,把遇到的错误和解决办法写下来,以备以后操作时参考,但在写的过程中阴错阳差地对付着把系统装上了,所以就当个安装说明吧,不过其中还有个错误(在下面有记录),感觉应该对使用有影响,所以以后还要想办法修正.这个就当个初稿吧. 一.简介 熟悉 Oracle 真正应用集群 (RAC) 10g 技术的最有效方法之一是访问一个实际的 Oracle RAC 10g 集群.没有什么方法比直接体验它们能够更好地理解其好处的了 - 包括

Oracle 10g RAC集群安装部署过程中如何安装RAC集群套件

一.首先解压集群套件包: gunzip 10201_clusterware_linux_x86_64.gz cpio -idmv < 10201_clusterware_linux_x86_64.cpio 解压放置的地方需要有oracle用户使用的权限 二.开始安装oracle RAC集群套件, 2.2.1.安装之前首先关闭两个节点的防火墙,Selinux不然是无法通过安装的 2.2.2.安装之前修改系统版本,来欺诈oracle数据库,然后执行xhost+ 2.2.3.完成上面的配置之后,使用o

Oracle 11gR2 RAC集群服务启动与关闭总结

<Oracle 11gR2 RAC集群服务启动与关闭总结> 新年新群招募: 中国Oracle精英联盟 170513055 群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情! 引言:这写篇文章的出处是因为我的一名学生最近在公司搭建RAC集群,但对其启动与关闭的顺序和原理不是特别清晰,我在教学工作中也发现了很多学员对RAC知识了解甚少,因此我在这里就把RAC里面涉及到的最常用的启动与关闭顺序和