一种适用于实时数据库的安全并发控制方法

文档序号:8528243阅读:116来源:国知局
一种适用于实时数据库的安全并发控制方法
【技术领域】
[0001] 本发明属于实时数据库安全领域,涉及实时数据库并发控制技术、隐蔽通道安全 性问题以及实时响应问题,实现实时数据库系统的安全性与实时性要求。
【背景技术】
[0002] 传统的高优先级两段锁并发控制协议(HP-2PL)根据事务的优先级,确定是否提 交申请锁的事务。当发生冲突时,优先级牺牲方法(PS)解决冲突的方式为:当持有锁的事 务比申请锁事务优先级高时,则夭折重启申请锁事务;否则,提交申请锁的事务,并夭折重 启持有锁的事务。从安全角度看,PS策略没有考虑事务的安全级别,因此有可能在被夭折 重启事务和提交事务之间产生隐蔽通道而导致不安全性。
[0003] 以下基于HP-2PL协议对安全性与实时性的冲突问题进行分析。假设TA为锁请求 事务,TB为锁持有事务,P(TA)和E(TA)分别为TA的优先级和安全级别。由事务优先级分 配策略可知两待执行事务优先级不存在相等的情况。表1列出了TA锁请求事务和TB锁持 有事务的优先级和访问级别的组合可能:(设PHigh>Plow;EHigh>EEq>ELow)
[0004] 表1.事务TA和TB之间的优先级和安全级别的组合情况
【主权项】
1. 一种适用于实时数据库的安全并发控制方法,包括以下步骤: 步骤一、设含有n个事务的事务队列为T (Tl,T2,……,Tn),该事务队列中,Ti为锁申 请事务,Tj为锁持有事务,且Ti,Tj G 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, T j) = I Pi-P j I AMAXP-MINP) -1 Ei-E j I AMAXE-MINE),并定义 WS 为系统安全因 子,WS G [-1,1];若WS(Ti,Tj)〈WS,则中断锁持有事务Tj,锁申请事务Ti获得锁;否则阻 塞锁申请事务Ti ; 6) 若锁申请事务Ti的优先级Pi大于锁持有事务Tj的优先级Pj,锁申请事务Ti的安 全级Ei高于锁持有事务Tj的安全级Ej,则计算: WS (Ti, Tj) = I Pi-Pj I AMAXP-MINP) -1 Ei-Ej I AMAXE-MINE),若 WS (Ti,Tj)〈WS,则阻塞 锁申请事务Ti,否则中断锁持有事务Tj,锁申请事务Ti获得锁; 步骤五、定义某一事务的原子操作循环队列为CQ,将上述锁持有事务的原子操作按顺 序调入循环队列CQ ; 步骤六、判断该循环队列CQ队头的操作类型; 若队头是write操作,将该write原子操作调入循环队列队尾,并将write操作中的数 据放入高速缓存; 若队头是read操作,利用高速缓存中相应write操作的数据响应该read操作,当高 速缓存中write操作的数据无法响应该read操作时,通过访问数据库进行响应,并删除该 read操作; 步骤七,判断循环队列CQ中是否还有未处理的原子操作,若是,返回步骤六,否则,顺 序执行当前锁持有事务的write原子操作,并从循环队列CQ中删除该write原子操作,至 此完成锁持有事务,释放锁。
【专利摘要】本发明公开了一种适用于实时数据库的安全并发控制方法,当事务队列到达实时数据库应用系统时,从事务队列中找出最高、低优先级和最高、低安全级;队列中的锁申请事务Ti申请对资源进行操作,通过分别比较Ti和锁持有事务Tj的安全级及优先级,并引入可调节安全因子来解决事务冲突;在执行锁持有事务过程中利用原子操作循环队列思想,先执行读操作,尽量用写操作中的数据响应后面的读操作,减少了访问数据库的次数,将写操作中的数据写入高速缓存的任务由Cache Manager负责,另外,从高速缓存读数据耗时远小于访问一次数据库耗时,因此,有利于事务更好的满足其截止日期,使事务尽早完成,提高了性能和效率以及系统的实时性。
【IPC分类】G06F17-30
【公开号】CN104850631
【申请号】CN201510264204
【发明人】孙达志, 朱泽光, 李晓红, 许光全
【申请人】天津大学
【公开日】2015年8月19日
【申请日】2015年5月21日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1