佛山网站建设网站制作公司,fms 视频网站建设,奥迪互动平台,云网站 制作AntDB-M在架构上分为两层#xff0c;服务层和存储引擎层。元数据的并发管理集中在服务层#xff0c;数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性#xff0c;引入了元数据锁#xff08;MDL#xff09;。
AntDB-M提供了丰富的元数据锁功能#xff…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个省市自治区的数亿用户具备高性能、弹性扩展、高可靠等产品特性峰值每秒可处理百万笔通信核心交易保障系统持续稳定运行超十年并在通信、金融、交通、能源、物联网等行业成功商用落地。