发明名称 对于大数据结构的表目锁定
摘要 本发明根据这样一种思想,即对于具有N个表目的大数据结构,通过在一个代表一个表目的值上执行散列函数,使其成为1到M之间的一个被散列值,用于相应于所述表目的锁的存储空间可以被节省。这个被散列的值被用于索引M个锁的表。M值典型地比N值小很多,从而减少存储空间需求。如果M被选择足够大并且一种好的散列函数被选择,则碰撞问题将很小。另外,当第二个表目的被散列值等于第一个表目的被散列值时,与死锁有关的问题出现,通过当第二个表目的被散列值小于第一个表目的被散列值时,通过交换所述第一和第二个表目的所述散列值,所述问题可以得到解决。
申请公布号 CN1610884A 申请公布日期 2005.04.27
申请号 CN02822408.6 申请日期 2002.10.28
申请人 皇家飞利浦电子股份有限公司 发明人 J·胡格布鲁格;P·斯特拉维斯
分类号 G06F9/46 主分类号 G06F9/46
代理机构 中国专利代理(香港)有限公司 代理人 刘杰;王忠忠
主权项 1.一种用于特别在从多个进程可访问的大数据结构中锁定表目的方法,其中递归锁被使用,该方法包括步骤:将第一个表目(e1)散列成为在1和M之间的第一个值(i),将第二个表目(e2)散列成为在1和M之间的第二个值(j);如果所述第二个值(j)小于所述第一个值(i),则交换所述第一个和第二个被散列值(i;j);通过第一个进程获取相应于被散列的第一个值(i)的第一个锁(lock(i));通过第二个进程获取相应于被散列的第二个值(j)的第二个锁(lock(j));其中根据被散列的第一个值(i)来授权所述第一个进程独占访问所述第一个表目(e1);并且其中根据被散列的第二个值(j)来授权所述第二个进程独占访问所述第二个表目(e2);其中在已经在所述第一个表目(e1)上执行处理之后,使得所述第一个进程能够释放所述第一个锁(lock(i)),并且其中在已经在所述第二个表目(e2)上执行处理之后,使得所述第二个进程能够释放所述第二个锁(lock(j))。
地址 荷兰艾恩德霍芬