发明名称 一种键值库数据存储中柔性事务管理方法
摘要 本发明涉及一种键值库数据存储中柔性事务管理方法,属于计算机数据库管理技术领域。该方法包括以下步骤:写入数据时,协调模块将请求封装成日志,获取当前日志位置,使用派克斯算法将日志写入新日志位置,记录该位置,返回操作成功信息,再将数据和日志位置写入数据存储器;读取数据时,协调模块获得最新日志位置,检查数据是否为最新,如果是最新的,则读取数据返回给用户,否则先读取日志,修改数据,再读取返回给用户。本发明方法提高了键值库数据存储的并发性、容错性和扩展性,能够在系统一致性得到保证的情况下尽量地缩小事务限定的范围,以提高系统的并发性。柔性事务的设计对提高数据库事务的灵活性、适应性有非常积极的作用。
申请公布号 CN102693312A 申请公布日期 2012.09.26
申请号 CN201210169301.8 申请日期 2012.05.28
申请人 清华大学 发明人 王建民;丁贵广;朱妤晴;衣国垒;杨义繁
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 一种键值库数据存储中柔性事务管理方法,其特征在于该方法包括以下步骤:数据的写入过程:(1)用户将写入键值库的数据提交到协调模块,写入键值库的数据中带有键值库行键,协调模块将用户的写入键值库的数据和写入操作封装成为日志;(2)协调模块从版本控制模块中获取当前最新日志位置,在最新日志位置上加1,得到步骤(1)日志的写入日志位置,日志位置由键值库数据存储中的一行数据描述;(3)协调模块根据步骤(1)的键值库行键,并根据键值库备份数据规则,计算得到步骤(1)的日志存储在键值库中的N个日志存储器,其中N大于或等于3;(4)协调模块采用派克斯一致性算法,将步骤(1)的日志存放在步骤(3)计算得到的N个日志存储器中;(5)协调模块将上述步骤(2)的写入日志位置写入版本控制模块中,协调模块向用户返回写入操作成功信息;(6)协调模块根据步骤(1)的键值库行键,并根据键值库备份数据规则,计算得到步骤(1)的数据存储在键值库中的M个数据存储器,其中M大于或等于3;(7)协调模块将上述步骤(1)中用户提交的数据和上述步骤(2)的写入日志位置写入M个数据存储器;数据的读取过程:(8)用户向协调模块提交读取数据的请求,该请求中包括需读取数据在键值库中的行键;(9)协调模块从版本控制模块中获取与步骤(8)的行键相对应的最新日志位置P1;(10)协调模块根据键值库备份数据规则,计算得到步骤(8)的行键所在的U个数据存储器,并从U个数据存储器中的一个数据存储器S上获取与步骤(8)的行键相对应的日志位置P2;(11)协调模块对上述两个日志位置P1和P2进行比较:若P1=P2,则协调模块从步骤(10)的数据存储器S中获取步骤(8)的行键的数据,并将获取的数据返回给请求用户;若P1>P2,则协调模块根据键值库备份数据规则,计算得到步骤(8)的行键所在的V个日志存储器,并从V个日志存储器中的一个日志存储器T上获取与步骤(8)的行键相对应的日志,同时,协调模块根据日志存储器T中的当前日志内容,修改数据存储器S中的数据,并从数据存储器S中获取与步骤(8)的行健相对应的数据,将该数据返回给请求用户。
地址 100084 北京市海淀区清华园1号