[发明专利]一种分布式数据库系统中的并发访问控制方法有效
| 申请号: | 202010007610.X | 申请日: | 2020-01-04 |
| 公开(公告)号: | CN111259071B | 公开(公告)日: | 2022-08-05 |
| 发明(设计)人: | 徐昶;岑跃峰;马伟锋;岑岗;张宇来;程志刚;卢方 | 申请(专利权)人: | 浙江科技学院 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F9/52 |
| 代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 朱月芬 |
| 地址: | 310023 浙*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 数据库 系统 中的 并发 访问 控制 方法 | ||
1.一种分布式数据库系统中的并发访问控制方法,其特征在于该方法使用客户端的时间戳加硬件唯一标识来生成事务号,事务号不需要在节点间进行同步即能够保持全局唯一性,且具有时序性;
当只读事务第一次访问某行数据时,读取该行数据最新的提交版本,并将该版本的事务号记录在客户端,为重复访问提供凭据;当此事务再次读取该行时,则可继续读取该行该版本的数据;
当读写事务访读取某行数据时,读取该行数据最新的提交版本,并在该行所在的节点的内存中增加该行的读锁;
当读写事务更新某行数据时,将行的当前版本的事务号和更新的内容缓存在客户端;事务提交时,再将这次更新的内容发到对应节点,并根据该行的当前状态来决定更新是否可行;
所述的根据该行的当前状态来决定更新是否可行,具体如下:
若数据行的当前版本事务号与更新时的事务号一致,即该行的当前版本仍然是读写事务更新时看到的版本;此时读写事务尝试对本行加写锁,如果写锁加成功即可将行的数据部分和事务部分更新成本事务更新的后项和事务号,更新动作完成;如果读写事务对所有需要更新的数据都操作成功,则事务提交;事务提交并不需要再对数据行进行操作,只要通知相应的结点事务提交成功,将日志写入即可;
若数据行的当前版本事务号与更新时的事务号不一致,则说明在这个事务的更新和提交动作之间,有另外一个读写事务更新本行成功,即当前版本已经被其他事务修改并已提交,此时本事务无条件回滚,读写事务更新失败;
若该行上当前存在其它事务的写锁,则读写事务根据自身事务号和加锁事务的事务号的大小关系来决定是否允许本事务等待;等待关系规则如下:只允许事务号较大的事务等待事务号较小的事务,不允许事务号较小的事务等待事务号较大的事务,如果后一种情况发生,则此读写事务应当立即回滚;
若该行上当前存在其它事务的读锁,此时根据读锁的数目作进一步判断,如果有多于一个的读锁,本读写事务直接回滚;如果只有另一个读写事务的读锁,则通过事务号的比对来决定两者中事务号较小的事务回滚。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江科技学院,未经浙江科技学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010007610.X/1.html,转载请声明来源钻瓜专利网。





