(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 103473239 A
(43)申请公布日 2013.12.25
(21)申请号 CN201210187686.0
(22)申请日 2012.06.08
(71)申请人 腾讯科技(深圳)有限公司
    地址 518057 广东省深圳市福田区振兴路赛格科技园2栋东403室
(72)发明人 钟艳春 刘锦标 江红英
(74)专利代理机构 上海波拓知识产权代理有限公司
    代理人 杨波
(51)Int.CI
      G06F17/30
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      一种非关系型数据库数据更新方法和装置
(57)摘要
      本发明公开了一种非关系型数据库数据更新方法和装置,该方法包括:接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;当预设的第一触发事件发生时,查各更新数据中的主键所属的数据文件;根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。采用本发明提供的方法,可以提高非关系型数据库历史数据更新的效率。
法律状态
关系型数据库系统有哪些
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.<B>一种非关系型数据库数据更新方法,其特征在于,包括:</B>
<B>接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;</B>
<B>当预设的第一触发事件发生时,查各更新数据中的主键所属的数据文件;</B>
<B>根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。</B>
2.<B>如权利要求1所述的方法,其特征在于,预先建立两个用于记录所述更新数据的目录;
</B>
<B>将接收到的更新指令中携带的更新数据记录到其中一个目录中;</B>
<B>每当所述第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;</B>
<B>将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。</B>
3.<B>如权利要求1所述的方法,其特征在于,还包括:</B>
<B>当预设的第二触发事件发生时,判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件。</B>
4.<B>、如权利要求3所述的方法,其特征在于,所述判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件,具体为:</B>
<B>步骤A,根据数据文件中包含的主键的顺序对数据文件进行排序,将排序后的数据文件中的第一个数据文件作为基准文件;</B>
<B>步骤B,判断基准文件是否为排序后的数据文件中的最后一个数据文件;如果是,则结束流程;否则,确定基准文件与基准文件的下一个数据文件的存储空间之和,并执行步骤C;</B>
<B>步骤C,判断所述存储空间之和是否超过预设的空间阈值;如果是,则将所述基准文件的下一个数据文件作为基准文件,并转至步骤B;否则,将基准文件与基准文件的下一个数据文件合并,将合并后的数据文件作为基准文件,并转至步骤B。</B>
5.<B>如权利要求3所述的方法,其特征在于,所述预设的第二触发事件,具体为达到预设数据文件合并周期。</B>
6.<B>如权利要求1所述的方法,其特征在于,还包括:对应各数据文件建立索引文件,索引文件中记录其对应的数据文件中的各SSTable所存储的主键的范围;</B>
<B>当接收到查询指令时,确定所述查询指令中携带的主键所属的数据文件;</B>
<B>根据该数据文件对应的索引文件中记录的该数据文件中的各SSTable所存储的主键的范围,确定所述查询指令中携带的主键所属的SSTable;</B>
<B>在该主键所属的SSTable中查该主键对应的值。</B>
7.<B>如权利要求1所述的方法,其特征在于,所述预设的第一触发事件,具体为达到预设更新数据合并周期。</B>
8.<B>如权利要求1所述的方法,其特征在于,还包括:</B>
<B>为所述新的数据文件分配新的文件编号;</B>
<B>删除被替换的数据文件,并释放该数据文件的文件编号。</B>
<B> </B>
9.<B>一种非关系型数据库数据更新装置,其特征在于,包括:</B>
<B>记录模块,用于接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;</B>
<B>查模块,用于当预设的第一触发事件发生时,查各更新数据中的主键所属的数据文件;</B>
<B>更新模块,用于根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。</B>
10.<B>如权利要求9所述的装置,其特征在于,还包括更新数据管理模块,用于:</B>
<B>预先建立两个用于记录所述更新数据的目录;</B>
<B>将接收到的更新指令中携带的更新数据记录到其中一个目录中;</B>
<B>每当所述第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;</B>
<B>将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。</B>
11.<B>如权利要求9所述的装置,其特征在于,还包括合并模块,用于:</B>