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

在前三篇文章中,已经完成了对K-DB所技术的完整概述,包括K-DB基本架构、锁技术的存储、构成、运行机制等,读者至此应该对K-DB锁相关技术已经有了完整的了解。锁技术的最终的目的是协调冲突资源的使用,本文将列举几个典型的锁技术的使用场景,帮助读者更好的理解K-DB的具体运行机制,最后本文也会用测试数据来证明K-DB锁的高效性和稳定性。

K-DB锁的典型使用场景

不同级别和条件,不同的insane,锁的申请和使用都有所区别,下面我们以一个3节点K-DB集群为例,来看具体的使用场景。

测试场景一:A节点需要改写一个数据块,且该节点之前并没有被访问过。该数据块的master节点是B,具体执行步骤

  1. A节点向master(B节点)节点申请数据块的X锁。
  2. Master(B节点)查看发现该数据块之前并没有被访问过,不存在锁兼容的问题。直接将X锁赋给A节点。A节点和Master节点都会记录当前A节点对该数据块持有X锁。
  3. 节点获取X锁后,直接从磁盘上读取数据,进入节点。

 

场景二:继续场景一,此时C节点也希望以X锁的方式访问该数据块。整个的处理流程如下:

  1. C节点向Master节点(B)申请X锁。
  2. Master节点发现该数据块的锁正在被A以X模式占用。发送block命令,让A节点将X降为N。
  3. A节点收到命令后,将锁降为N,同时通知Master节点和将锁赋给C节点。
  4. 将数据块从A节点的实例中通过内网直接传送到C节点中。

 

场景三:继续场景一,此时节点C希望传送一个CR(一致性读)块。处理流程如下:

  1. C节点向Master(B节点)申请CR块。
  2. Master(B节点)发现当前块正在A节点上。向A节点发送命令,构造CR块。
  3. A节点收到命令后,构造对应的CR块,然后通过内网传送给C节点。
  4. 此时Master节点中记录的锁信息,没有发生任何变化。

 

故障恢复场景:在上面的测试过程中,当某一个节点A发生故障后,数据库的恢复流程如下:

  1. 停止所有数据库的对外服务,读取A节点的redo日志。
  2. 从A节点的redo中,找到最近一次的checkpoint点,然后开始进行恢复。
  3. 对于需要恢复的数据块,找到其对应的PI块。当redo日志中的SCN号小于PI块的SCN时,该日志记录无需进行恢复,直到redo日志中的SCN大于PI块的SCN时,才会进行恢复。当所有的redo日志都恢复完成后,数据块才会开始对外进行服务。
  4. K-DB数据库在最新版本中,实现了多节点并行恢复的功能。也就是当某一个节点down掉后,其他的几个节点一起进行恢复,大大提升了恢复的效率和总的时间。

 

K-DB专为天梭K1优化

K-RAC方案累计应用实例超过160个,在实际应用中部署的最大规模的K-RAC集群是4个节点,浪潮在实验室中测试过20个节点的K-RAC方案,性能提升依然有着相当的线性度。

下图是K-RAC集群从单节点到4节点时,性能提升的线性水平。

 

用天梭K1 和K-DB搭建的数据库方案在优化前后,性能的对比十分明显。

 

K-RAC支持多节点并行恢复,故障恢复比其他产品更快。下图是K-DB故障恢复方案,该方案用Benchmark SQL软件模拟了1000个用户、100个warehouse、10G数据量的测试用例,K-DB以RAC双机运行,人为拔出心跳线模拟故障后,数据库经过不到5秒的短暂波动,就恢复了对外服务。

 

 K-DB不仅具有K-RAC,而且也采用了多进程多线程、多版本并发控制等领先的技术,性能、可靠性等与Oracle基本相当,而且K-DB全面支持主流数据库标准,迁移方便。用户从Oracle迁移到K-DB,相关应用系统几乎不需要改动,迁移过程大部分自动化完成,应用门槛很低。有效降低了用户的迁移风险和成本。北京市档案局档案数据库管理系统有6GB数据量,从Oracle到K-DB的迁移仅用了15分钟。

 

K-DB具备高可用集群、异地容灾等高级功能,产品性能、可靠性与业界主流产品相当,可以广泛应用于大规模交易系统等企业关键业务场景。K-DB是专门为天梭K1定制和优化的数据库。目前,已在K1上验证了16000多个测试场景,包括自动化功能测试15000个,以及手动的功能或性能测试1000个。

同时浪潮为K-DB开发了完善的工具包,从异构数据库平台到K-DB的迁移工作,包括数据结构的比对、SQL语句检查等,都可以由工具软件自动完成,不仅有效降低了用户迁移的技术复杂度和工作量,也使得迁移风险更加可控。

目前,哈尔滨银行、内蒙古交通厅等用户已经完成了对该产品的测试,并即将在生产环境中采用。测试结果表明,K1+K-DB一体化解决方案经受住了用户复杂业务场景考验,可以承担更关键、规模更大的交易系统。

关键业务是浪潮的战略业务领域,从天梭K1关键应用主机到K-DB企业级数据库,围绕关键业务计算,浪潮提供给中国企业级用户多一种选择。K-DB凭借一键迁移、高可靠和高性能的产品特征,满足了用户对异构平台平滑安全迁移的现实需求,解决了制约中国企业信息化自主可控面临的重大现实问题。

原文发布时间为:2016-08-05 

时间: 2017-09-01

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

【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

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里面涉及到的最常用的启动与关闭顺序和

was集群下基于接口分布式架构和开发经验谈

   某b项目是我首次采用was环境下架构和开发的手机wap应用,尽管做到了该项目的主程,但对此项目的全面构件依然有不清楚的地方,因此在这里我只能简单的谈谈开发中遇到的问题怎么处理和应对办法.          记得第一天接触这个项目时,只记得些案例代码(不知道那些是对的,那些是错的)似曾相识,但不懂如何动手写下第一个helloword,因其中的基于接口开发的ejb的架构以前根本就没接触过.好了,没办法,于是只有硬着头皮去尝试第一个基于接口开发的ejb的第一个查询方法(呵呵最简单了吧).因为一切