一种在键-值系统中的数据存储或读取方法、装置制造方法

文档序号:6493489阅读:126来源:国知局
一种在键-值系统中的数据存储或读取方法、装置制造方法
【专利摘要】本申请公开了一种在键-值系统中的数据存储或读取方法、装置。该方法包括:对于每一个键,将该键对应的所有字段取值,按照预设的存储结构合并存储为一个取值;确定该键的所有字段对应的所有时间戳信息中最新的时间戳信息;在一行中存储该键、合并存储后的所述一个取值、以及该键的所有字段对应的所有时间戳信息中最新的时间戳信息。应用本发明能够提高数据的写入速度并节省存储空间,和/或提高数据的读取速度和效率。
【专利说明】一种在键-值系统中的数据存储或读取方法、装置
【技术领域】
[0001]本申请涉及数据存储【技术领域】,尤其涉及一种在键-值(Key-Value)系统中的数据存储或读取方法、装置。
【背景技术】
[0002]Key-Value系统是当下比较流行的存储系统,其在构建诸如搜索引擎、即时通讯(IM)服务器、点对点(P2P)服务器、游戏服务器等大型互联网应用服务器、以及提供云计算服务时经常用到。
[0003]在Key-Value系统中,每一行数据存储了一个键(Key)、该键对应的一个值(Value)以及相应的时间戳(timestamp)信息,当一个Key对应有多个字段取值时,目前的Key-Value系统会存储多个行,每行分别存储Key以及该Key的一个字段的名称、取值以及相应的时间戳信息,具体请参见表一。
[0004]表一
[0005]
【权利要求】
1.一种在键-值系统中的数据存储方法,其特征在于,该方法包括: 对于每一个键,将该键对应的所有字段取值,按照预设的存储结构合并存储为一个取值; 确定该键的所有字段对应的所有时间戳信息中最新的时间戳信息; 在一行中存储该键、合并存储后的所述一个取值、以及该键的所有字段对应的所有时间戳信息中最新的时间戳信息。
2.根据权利要求1所述的方法,其特征在于,按照预设的存储结构合并存储为一个取值包括: 将不同字段的取值,按照不同的存储类型进行存储,并且,各个字段的取值按照预设顺序依次存储。
3.根据权利要求2所述的方法,其特征在于,各个字段的取值按照预设顺序依次存储包括: 任何两个不同字段的取值之间均设置有分隔符; 或者,先存储占用固定存储空间大小的存储类型对应的字段取值,且占用固定存储空间大小的不同存储类型对应的不同字段取值之间不设置分隔符,然后存储占用可变存储空间大小的存储类型对应的字段取值,且占用可变存储空间大小的不同存储类型对应的不同字段取值之间设置有分隔符; 或者,先存储占用可变存储空间大小的存储类型对应的字段取值,且占用可变存储空间大小的存储类型对应的字段取值的结尾处设置有分隔符,然后存储占用固定存储空间大小的存储类型对应的字段取值,且 占用固定存储空间大小的不同存储类型对应的不同字段取值之间不设置分隔符。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:将预设存储结构的信息存储在预设位置。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:当该键的所有字段中有任一字段的取值更新时,更新合并存储后的所述一个取值,并更新所述最新的时间戳信息。
6.根据权利要求1所述的方法,其特征在于,该方法还包括: 在用于存储键对应的字段的字段名称的存储空间内,写入该键对应的所有字段中任一字段的字段名称、或其他预设值。
7.—种在键-值系统中的数据读取方法,其特征在于,该方法包括: 获取用于将一个键对应的所有字段取值合并存储为一个取值的存储结构信息; 从一行中读取一个键、该键的一个取值、以及该键的时间戳信息,所述时间戳信息为该键的所有字段对应的所有时间戳信息中最新的时间戳信息; 根据获取的存储结构信息,对读取的所述一个取值进行解析,得到该键对应的每个字段的取值,将读取的所述时间戳信息确定为该键对应的每个字段的时间戳信息。
8.根据权利要求7所述的方法,其特征在于,获取用于将一个键对应的所有字段取值合并存储为一个取值的存储结构信息包括: 从预设位置处读取用于将一个键对应的所有字段取值合并存储为一个取值的存储结构信息。
9.根据权利要求7所述的方法,其特征在于,根据获取的存储结构信息,对读取的所述一个取值进行解析,得到该键对应的每个字段的取值包括: 按照各个字段的取值之间的存储顺序,根据不同字段的取值之间设置的分隔符、以及每个字段的存储类型,从读取的所述一个取值中解析出每个字段的取值; 或者,按照各个字段的取值之间的存储顺序,先根据占用的存储空间大小,依次读取占用固定存储空间大小的不同存储类型对应的不同字段的取值,然后根据占用可变存储空间大小的不同存储类型对应的不同字段取值之间设置的分隔符,依次读取占用可变存储空间大小的不同存储类型对应的不同字段的取值; 或者,按照各个字段的取值之间的存储顺序,先根据占用可变存储空间大小的存储类型对应的字段取值结尾处设置的分隔符,依次读取占用可变存储空间大小的不同存储类型对应的不同字段的取值,然后根据占用的存储空间大小,依次读取占用固定存储空间大小的不同存储类型对应的不同字段的取值。
10.一种在键-值系统中的数据存储装置,其特征在于,该装置包括合并模块、时间戳确定模块和存储模块; 所述合并模块,用于对于每一个键,将该键对应的所有字段取值,按照预设的存储结构合并存储为一个取值; 所述时间戳模块,用于确定该键的所有字段对应的所有时间戳信息中最新的时间戳信息; 所述存储模块,用于在一行中存储该键、合并存储后的所述一个取值、以及该键的所有字段对应的所有 时间戳信息中最新的时间戳信息。
11.根据权利要求10所述的装置,其特征在于, 所述合并模块,用于将不同字段的取值,按照不同的存储类型进行存储,并且,各个字段的取值按照预设顺序依次存储。
12.根据权利要求11所述的装置,其特征在于, 所述合并模块,用于在任何两个不同字段的取值之间均设置有分隔符,或者,先存储占用固定存储空间大小的存储类型对应的字段取值,且占用固定存储空间大小的不同存储类型对应的不同字段取值之间不设置分隔符,然后存储占用可变存储空间大小的存储类型对应的字段取值,且占用可变存储空间大小的不同存储类型对应的不同字段取值之间设置有分隔符,或者,先存储占用可变存储空间大小的存储类型对应的字段取值,且占用可变存储空间大小的存储类型对应的字段取值的结尾处设置有分隔符,然后存储占用固定存储空间大小的存储类型对应的字段取值,且占用固定存储空间大小的不同存储类型对应的不同字段取值之间不设置分隔符。
13.根据权利要求10所述的装置,其特征在于, 所述存储模块,还用于将预设存储结构的信息存储在预设位置。
14.根据权利要求10所述的装置,其特征在于, 所述存储模块,用于当该键的所有字段中有任一字段的取值更新时,更新合并存储后的所述一个取值,并更新所述最新的时间戳信息。
15.一种在键-值系统中的数据读取装置,其特征在于,该装置包括获取模块、读取模块和解析模块; 所述获取模块,获取用于将一个键对应的所有字段取值合并存储为一个取值的存储结构信息; 所述读取模块,用于从一行中读取一个键、该键的一个取值、以及该键的时间戳信息,所述时间戳信息为该键的所有字段对应的所有时间戳信息中最新的时间戳信息; 所述解析模块,用于根据获取的存储结构信息,对读取的所述一个取值进行解析,得到该键对应的每个字段的取值,将读取的所述时间戳信息确定为该键对应的每个字段的时间戳信息。
16.根据权利要求15所述的装置,其特征在于, 所述获取模块,用于从预设位置处读取用于将一个键对应的所有字段取值合并存储为一个取值的存储结构信息。
17.根据权利要求15所述的装置,其特征在于, 所述解析模块,用于按照各个字段的取值之间的存储顺序,根据不同字段的取值之间设置的分隔符、以及每个字段的存储类型,从读取的所述一个取值中解析出每个字段的取值,或者,按照各个字段的取值之间的存储顺序,先根据占用的存储空间大小,依次读取占用固定存储空间大小的不同存储类型对应的不同字段的取值,然后根据占用可变存储空间大小的不同存储类型对应的不同字段取值之间设置的分隔符,依次读取占用可变存储空间大小的不同存储类型对应的不同字段的取值,或者,按照各个字段的取值之间的存储顺序,先根据占用可变存储空间大小的存储类型对应的字段取值结尾处设置的分隔符,依次读取占用可变存储空间大小的不同存储类型对应的不同字段的取值,然后根据占用的存储空间大小,依次读取占 用固定存储空间大小的不同存储类型对应的不同字段的取值。
【文档编号】G06F3/06GK103885721SQ201210566836
【公开日】2014年6月25日 申请日期:2012年12月24日 优先权日:2012年12月24日
【发明者】张宝海, 高峰 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1