首页 > 其他分享 >KingbaseES 咨询锁

KingbaseES 咨询锁

时间:2023-01-11 16:02:14浏览次数:42  
标签:advisory 事务 sys unlock 咨询 KingbaseES 隐式

传统的事务性锁,读/写会自动加锁,读/写完成后会自动解锁(加解锁机制在细节上复杂),这是一种隐式的锁机制。对于加锁后的并发控制,也就是默认的写不阻塞读,是通过MVCC机制解决的。这种锁完全不需要人为干预。相对于隐式锁机制和MVCC并发控制机制,咨询锁可以认为是一种显式锁,需要人为地控制,这类锁需要显式的申请和释放,在使用这类锁的时候,可以自行控制读写的排他性。

咨询锁

咨询锁有以下类型:

 

 其中:

  • sys_advisory_lock/unlock_*  系列是表示获取/释放 session级别的锁,需要通过对应的unlock 解锁,与事务无关,即使事务已经结束,锁也不会释放。
  • sys_advisory_xact_* 是用于事务级别的锁获取,没有对应的unlock,事务结束就自动释放

 

咨询锁使用示例

例子1:即使commit 也不会释放锁

  

例子2:咨询锁是根据KEY 判断是否冲突。 以下即使是访问不同的表,但key相同,也会冲突。对于咨询锁,在 sys_locks 只是 locktype='advisory' 的一条记录,无其他记录。

 

  

例子3:上面可以看到咨询锁冲突的判断只依据key,如果要对不同的表的不同的不同行加咨询锁,可以采用两个参数的版本。即使相同的行,如果KEY不同,不会堵塞;不同的表,key相同,也会堵塞。

 

 

例子4:sys_try_advisory_lock 如果获取不到锁,不会等待。try 类型的咨询锁同样分为会话与事务级别,事务级别的锁一般在事务块中使用。

 

 

例子5:咨询锁与普通的隐式锁不会冲突

 

标签:advisory,事务,sys,unlock,咨询,KingbaseES,隐式
From: https://www.cnblogs.com/kingbase/p/16914744.html

相关文章

  • KingbaseES V8R6运维案例之---普通表toast表故障修复
    案例说明:数据库在日常的维护过程中,在执行表查询(select),如下图所示,出现“couldnotreadblock0infile"base/16385/16408":readonly512of8192bytes”故障,通过对“......
  • KingbaseES date 数据类型的两种格式
    关于date数据类型,Oracle与PostgreSQL格式是不同的,Oracle是日期+时间的类型,而PG则只有日期。KingbaseESOracle模式则同时实现了二者类型,用户在使用时,需要注意所......
  • KingbaseES V8R6 索引膨胀
    索引膨胀对于索引,随着业务不断的增删改,会造成膨胀,尤其Btree索引,也会涉及索引分裂、合并等,导致索引访问效率降低、维护成本增加。另外,索引页的复用与HEAPPAGE不一样,因为索......
  • KingbaseES V8R6 中unlogged表
    前言KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged。和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中。在数据库异常......
  • KingbaseES在线wal日志
    KingbaseES数据库日志文件记录数据库的历史操作信息,包含恢复数据库中的所有事务所需的信息。KingbaseES在线WAL日志:WAL日志:预写式日志(Write-AheadLogging(WAL)是保......
  • Java财务在线咨询网站系统财务咨询网
    简介财务咨询网站,可以咨询公司代办,代理记账等一系列的财务问题的资讯服务网站演示视频https://www.bilibili.com/video/BV1T54y1H7Ar/?share_source=copy_web&vd_source......
  • KingbaseES V8R6数据库运维案例之---索引坏块故障处理
    案例说明:在执行表数据查询时,出现下图所示错误,索引故障导致表无法访问,后重建索引问题解决。本案例复现了此类故障解决过程。适用版本:KingbaseESV8R3/R6一、创建测试......
  • KingbaseES运维案例之---数据库启动“could not open shared memory segment”
    ​案例说明:在kylin系统下数据库启动出现“couldnotopensharedmemorysegmentxxxx"的故障,故障如下所示:适用版本:KingbaseESV8R3/R6问题分析:1、此问题涉及到sh......
  • KingbaseES V8R6 sslinfo 插件
    前言KingbaseES对使用SSL连接加密客户端/服务器通讯的本地支持,可以增加数据传输安全性。本文展示配置ssl连接,并通过安装一个插件验证ssl加密认证使用。一、配置ssl连接......
  • KingbaseES Clusterware 高可用案例之---构建iSCSI共享存储
    案例说明:在KingbaseESClusterware高可用的架构中,集群节点需要访问共享的存储设备,可以使用FCSAN、iscsiSAN、NAS等存储设备。本案例详细描述了,在Linux系统下构建iscsi......