[发明专利]指令执行方法、指令执行装置及存储介质有效
申请号: | 201710683828.5 | 申请日: | 2017-08-11 |
公开(公告)号: | CN109388645B | 公开(公告)日: | 2023-02-24 |
发明(设计)人: | 李海翔 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 黄威 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 执行 方法 装置 存储 介质 | ||
本发明提供一种指令执行方法,其包括:接收数据操作指令,并获取数据操作指令对应的数据操作对象;判断数据操作对象的信息是否设置在预设的场景锁注册表中;如数据操作对象的信息设置在场景锁注册表中,则将数据操作指令设置到等待队列;如数据操作对象的信息未设置在场景锁注册表中,则将数据操作对象的信息设置到场景锁注册表中,以创建对应的场景锁;并执行数据操作指令;返回数据操作指令的执行结果;并在场景锁注册表中删除对应的数据操作对象的信息。本发明还提供一种指令执行装置及存储介质,本发明提高了对应数据库系统的内存资源的有效使用率,并提高了数据操作指令的处理效率。
技术领域
本发明涉及数据处理领域,特别是涉及一种指令执行方法、指令执行装置及存储介质。
背景技术
现在的数据库系统,如PostgreSQL、MySQL、Oracle等主流数据库系统,对于SQL处理操作,如数据更新操作等,都支持使用封锁并发访问控制机制来消除多个数据处理指令并发操作带来的数据不一致的问题。即现有的多数数据库系统均使用封锁机制中的行级锁对指定的数据项进行锁定,以避免数据不一致的问题。
如对上述数据更新操作使用行级锁的封锁机制,即数据库系统需要在每个被操作的数据项上记载所请求的行级锁、已施加的行级锁、等待施加的行级锁及其属主等信息;还需要在一个会话中记录本会话的事务中所有的行级锁信息,以便对行级锁进行查找。当数据更新指令的并发数量很高时,上述信息需要耗费大量内存资源。
在数据更新指令的并发数量很高时,数据库系统内会生成的大量的行级锁,而后续的行级锁生成操作,数据库系统需要遍历所有的已施加的行级锁,以查看是否存在同样的行级锁,存在则停止加锁操作。同时数据库系统还需要确定该行级锁的加锁操作,是否会导致与之前施加的行级锁形成操作环,即需要耗费资源进行死锁检测。因此在数据更新指令并发数量较大时,数据库系统的内存资源消耗会非常大、CPU消耗会显著增加,导致数据处理指令的处理效率降低。
发明内容
本发明实施例提供一种提高对应数据库系统的内存资源的有效使用率,且提高数据操作指令的处理效率的指令执行方法、指令执行装置及存储介质;以解决现有的指令执行方法以及指令执行装置对应的数据库系统的内存资源的有效使用率较低,且数据操作指令的处理效率较为低下的技术问题。
本发明实施例提供一种指令执行方法,其包括:
接收数据操作指令,并获取所述数据操作指令对应的数据操作对象;
判断所述数据操作对象的信息是否设置在预设的场景锁注册表中;
如所述数据操作对象的信息设置在所述场景锁注册表中,则将所述数据操作指令设置到等待队列;
如所述数据操作对象的信息未设置在所述场景锁注册表中,则将所述数据操作对象的信息设置到场景锁注册表中,以创建对应的场景锁;并执行所述数据操作指令;以及
返回所述数据操作指令的执行结果;并在所述场景锁注册表中删除对应的数据操作对象的信息。
本发明实施例还提供一种指令执行装置,其包括:
数据操作对象获取模块,用于接收数据操作指令,并获取所述数据操作指令对应的数据操作对象;
判断模块,用于判断所述数据操作对象的信息是否设置在预设的场景锁注册表中;
第一设置模块,用于如所述数据操作对象的信息设置在所述场景锁注册表中,则将所述数据操作指令设置到等待队列;
第二设置模块,用于如所述数据操作对象的信息未设置在所述场景锁注册表中,则将所述数据操作对象的信息设置到场景锁注册表中,以创建对应的场景锁;
指令执行模块,用于执行所述数据操作指令;以及
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710683828.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据更新方法及装置
- 下一篇:数据处理方法及装置