ITPub博客

首页 > 数据库 > 国内数据库 > 亚信科技AntDB数据库——深入了解AntDB-M元数据锁的相关概念

亚信科技AntDB数据库——深入了解AntDB-M元数据锁的相关概念

原创 国内数据库 作者:亚信AntDB数据库 时间:2023-12-14 17:26:10 0 删除 编辑
AntDB-M在架构上分为两层,服务层和存储引擎层。元数据的并发管理集中在服务层,数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性,引入了元数据锁(MDL)。

AntDB-M提供了丰富的元数据锁功能,然而高并发锁操作很容易出现锁竞争、等待、死锁的问题,AntDB-M具体提供了什么样的元数据锁,又是如何解决这些问题的呢?本文来一探究竟。



相关概念   


● MDL_lock

MDL_lock即元数据锁对象,对一个由MDL_key指定的元数据加锁,即获取到该对象。


● MDL_key

MDL_key即每个元数据的代表。由命名空间、表、列三部分构成。


● MDL_ticket

一个元数据对应每种锁类型都只有一个锁对象,每个客户端连接线程(后文以线程指代)在持有或者等待某个锁对象时,为其分配一个的对象(MDL_ticket),代表该线程持有或等待该锁对象。

● MDL_context

每个线程都会分配一个元数据锁上下文(MDL_context),保存了其持有的所有MDL_ticket、正在等待的ticket、等待条件变量(用于等待唤醒)。



多层次、多粒度   


元数据锁分为多个层次,每层分为多种粒度。不同层次间存在依赖关系,在申请元数据锁时,要先申请到其所依赖的上层锁。比如在申请表(TABLE)锁时,要先申请到其上层的GLOBAL、以及SCHEMA锁。多层次多粒度的划分可以满足元数据一致性在不同范围内的需求,又能提供更高的并发度。


图片

图1-元数据锁层次关系



多类型  


根据对元数据、表数据的访问需求,如对元数据还是表数据进行访问,读请求还是写请求,共享还是互斥,高优先级还是低优先级,是否可升级等多种维度进行设立不同类型的锁类型。在最大限度提升并发度的同时,能灵活满足多种锁需求。


图片

图2-锁类型说明



锁生命周期  


元数据锁的生命周期分为三种:语句、事务、显式。通过不同的生命周期,来尽可能小的缩短锁时间。


图片

图3-锁生命周期


关于亚信安慧AntDB数据库


AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近15年,并在通信、金融、交通、能源、物联网等行业成功商用落地。


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

请登录后发表评论 登录
全部评论
AntDB数据库始于2008年,是湖南亚信安慧科技科技有限公司自主研发的通用型企业级数据库产品,在运营商的核心系统上,为全国20多个省份约10亿用户提供在线服务,具备高性能、弹性扩展、可靠性等产品特性,峰值每秒可处理百万笔通信核心交易,应用范围包含通信、金融、交通、能源、物联等。

注册时间:2023-02-13

  • 博文量
    415
  • 访问量
    759697