[发明专利]一种适用于实时数据库的安全并发控制方法有效
申请号: | 201510264204.0 | 申请日: | 2015-05-21 |
公开(公告)号: | CN104850631B | 公开(公告)日: | 2018-08-07 |
发明(设计)人: | 孙达志;朱泽光;李晓红;许光全 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 李丽萍 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 实时 数据库 安全 并发 控制 方法 | ||
1.一种适用于实时数据库的安全并发控制方法,包括以下步骤:
步骤一、设含有n个事务的事务队列为T(T1,T2,……,Tn),该事务队列中,Ti为锁申请事务,Tj为锁持有事务,且Ti,Tj∈T;
步骤二、当所述事务队列到达实时数据库应用系统时,从所述事务队列中找出最高优先级MAXP和最低优先级MINP、最高安全级MAXE和最低安全级MINE的值;
步骤三、所述事务队列中的锁申请事务Ti申请对实时数据库中资源进行操作,判断该锁申请事务Ti与锁持有事务Tj是否有冲突产生,即判断Conflict(Ti,Tj,D)是否为真,若为真表示有冲突产生,执行步骤四;否则,锁申请事务Ti获得锁;Conflict(Ti,Tj,D)表示锁申请事务Ti和锁持有事务Tj在实时数据库中的数据D上发生冲突操作;
步骤四、分别比较锁申请事务Ti的安全级Ei与锁持有事务Tj的安全级Ej及锁申请事务Ti的优先级Pi与锁持有事务Tj的优先级Pj,有下述情形之一:
1)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei高于锁持有事务Tj的安全级Ej,则阻塞锁申请事务Ti;
2)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei低于锁持有事务Tj的安全级Ej,则中断锁持有事务Tj,锁申请事务Ti获得锁;
3)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei与锁持有事务Tj的安全级Ej相等,则阻塞锁申请事务Ti;
4)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei与锁持有事务Tj的安全级Ej相等,则中断锁持有事务Tj,锁申请事务Ti获得锁;
5)若锁申请事务Ti的优先级Pi小于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei低于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),并定义WS为系统安全因子,WS∈[-1,1];若WS(Ti,Tj)<WS,则中断锁持有事务Tj,锁申请事务Ti获得锁;否则阻塞锁申请事务Ti;
6)若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安全级Ei高于锁持有事务Tj的安全级Ej,则计算:
WS(Ti,Tj)=|Pi-Pj|/(MAXP-MINP)-|Ei-Ej|/(MAXE-MINE),若WS(Ti,Tj)<WS,则阻塞锁申请事务Ti,否则中断锁持有事务Tj,锁申请事务Ti获得锁;
步骤五、定义某一事务的原子操作循环队列为CQ,将上述锁持有事务的原子操作按顺序调入循环队列CQ;
步骤六、判断该循环队列CQ队头的操作类型;
若队头是write操作,将该write原子操作调入循环队列队尾,并将write操作中的数据放入高速缓存;
若队头是read操作,利用高速缓存中相应write操作的数据响应该read操作,当高速缓存中write操作的数据无法响应该read操作时,通过访问数据库进行响应,并删除该read操作;
步骤七,判断循环队列CQ中是否还有未处理的原子操作,若是,返回步骤六,否则,顺序执行当前锁持有事务的write原子操作,并从循环队列CQ中删除该write原子操作,至此完成锁持有事务,释放锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510264204.0/1.html,转载请声明来源钻瓜专利网。