CN103229164A - 数据访问方法和装置 - Google Patents

数据访问方法和装置 Download PDF

Info

Publication number
CN103229164A
CN103229164A CN2011800032717A CN201180003271A CN103229164A CN 103229164 A CN103229164 A CN 103229164A CN 2011800032717 A CN2011800032717 A CN 2011800032717A CN 201180003271 A CN201180003271 A CN 201180003271A CN 103229164 A CN103229164 A CN 103229164A
Authority
CN
China
Prior art keywords
data
index
field
key
index field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800032717A
Other languages
English (en)
Other versions
CN103229164B (zh
Inventor
鲍栋
王道辉
宋振磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103229164A publication Critical patent/CN103229164A/zh
Application granted granted Critical
Publication of CN103229164B publication Critical patent/CN103229164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24557Efficient disk access during query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据访问方法和装置,涉及数据库技术领域,所述方法包括:预先在数据库中设置用于存储键信息的索引字段,和用于存储值信息的记录字段,且索引字段和记录字段的长度均固定;将所述索引字段映射到快速存储介质中的索引空间;当接收到操作数据的请求时,根据所述数据中的键在索引空间中找到与所述数据对应的索引字段,根据该索引字段在数据库中确定与所述数据对应的记录字段并对所述数据执行所述操作,所述快速存储介质的访问效率比数据库所在的存储介质的访问效率高。所述装置包括:映射模块和操作模块。本发明将数据定位过程全部移入快速存储介质中进行操作,避免了大量的磁盘IO,极大地提高了数据库的性能。

Description

说 明 书 数据访问方法和装置 技术领域
本发明涉及数据库技术领域, 特别涉及一种数据访问方法和装置。 背景技术
随着网络的发展, 信息呈现爆炸性增长, 人类的数据达到前所未有的规模, 这些超大 规模的数据存储和管理已经成为一大挑战。 基于 DHT (Distributed Hash Table, 分布式哈希 表) 技术的 P2P (Pear to Pear, 点对点)存储系统拥有很高的扩展性, 支持大规模的数据存 储, 可以较好地应对这一挑战, 这种存储系统的底层存储引擎一般是 K-V (Key-Value, 键- 值) DB (Database, 数据库), 即以键值对形式进行数据存储和访问的非关系型数据库。 其 通常的数据访问操作有插入 put (key, &value),查找 get (key, &value)和删除 delete (key)。 其中 key为键, 是数据的唯一标识, value为值, 即数据内容。
现有技术中典型的是用 Hash哈希算法构造的 K-V DB, 其中比较常见的是变长 Hash K-V DB, 这种 DB可以存储变长的 key和 value。 基本原理是通过 Hash算法确定每个 key 和 value的存储位置。通常,将 Hash K-V DB从逻辑上划分为四个部分: Bucket Array Key、 Value和 Ptr。 其中, Bucket Array就是 Hash桶, 其大小为 Hash空间的大小, 其中存储的内 容为每个键值对在磁盘中的位置或偏移量。 Key存储键值对中 key的值, Value存储键值对 中 value的值。 Ptr用于存储当 Hash冲突发生时相同 Hash值的下一个键值对的位置或偏移 量。 以上四个部分的信息都保存在磁盘上。
当不同的输入按照该 Hash算法得到相同的 Hash值时会产生 Hash冲突, 此时, 可以使 用特定的数据结构和算法 (比如二叉树) 来解决。 例如, 当执行插入操作时, 如果待插入 数据的 key的第一个 Hash值有冲突, 表明相同 hash值对应的位置上已有数据存在, 则根据 该 key的第二个 Hash值及预定的冲突解决算法,找到下一个可能的存储位置,如果无冲突, 则直接找到相应的存储位置保存该数据,流程结束; 如果依然有冲突, 则重新根据新的 hash 值及冲突解决算法继续查找, 直到找到一个不冲突的存储位置为止。
上述现有技术中由于使用了 Hash算法, 不可避免地会存在 Hash冲突, 在解决冲突的 过程中, 需要在磁盘上逐个遍历进行查找, 数据库的性能受到极大的影响。 发明内容
为了提高数据库的性能, 本发明实施例提供了一种数据访问方法和装置。
一方面, 一种数据访问方法, 包括:
预先在数据库中设置用于存储键的信息的索引字段, 和用于存储值的信息的记录字段, 且所述索引字段和记录字段的长度均固定;
将所述索引字段映射到快速存储介质中的索引空间;
当接收到操作数据的请求时, 根据所述数据中的键在所述索引空间中找到与所述数据 对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据对应的记录 字段并对所述数据执行所述操作;
其中, 所述快速存储介质的访问效率比所述数据库所在的存储介质的访问效率高。 另一方面, 一种数据访问装置, 包括:
映射模块, 用于将数据库中的索引字段映射到快速存储介质中的索引空间, 所述数据 库中设置有用于存储键的信息的索引字段, 和用于存储值的信息的记录字段, 且所述索引 字段和记录字段的长度均固定;
操作模块, 用于当接收到操作数据的请求时, 根据所述数据中的键在所述索引空间中 找到与所述数据对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述 数据对应的记录字段并对所述数据执行所述操作;
其中, 所述快速存储介质的访问效率比所述数据库所在的存储介质的访问效率高。 本发明实施例提供的技术方案的有益效果是: 通过设置数据库中分别存储键的信息和 值的信息的索引字段和记录字段定长, 并将该索引字段映射到快速存储介质中, 当操作数 据时, 在快速存储介质中找到相应的索引字段, 从而在数据库中确定对应的记录字段并执 行操作, 与现有技术相比, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大 量的磁盘 10 (Input Output, 输入输出), 快速存储介质 10相比磁盘 10可以节省大量的时 间, 从而极大地提高了数据库的性能, 提高了效率。 另外, 通过减少磁盘 10, 可以有效保 护磁盘, 从而提升磁盘的使用寿命。 附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中所需要使用的 附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本 领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的 附图。 图 1是本发明一实施例提供的数据访问方法流程图;
图 2是本发明另一实施例提供的数据访问方法流程图;
图 3是本发明实施例提供的数据库中索引字段和记录字段的结构示意图;
图 4是本发明又一实施例提供的数据访问方法流程图;
图 5是本发明一实施例提供的插入数据操作的流程图;
图 6是本发明另一实施例提供的查找数据操作的流程图;
图 7是本发明又一实施例提供的删除数据操作的流程图;
图 8是本发明再一实施例提供的数据访问装置的结构图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作 进一步地详细描述。
本发明实施例涉及数据库和快速存储介质。 其中, 所述快速存储介质的访问效率比数 据库所在的存储介质的访问效率高。数据库所在的存储介质通常为磁盘, 如 IDE (Integrated Drive Electronics, 电子集成驱动器) 磁盘, SATA ( Serial Advanced Technology Attachment, 串行高级技术附件)磁盘, SAS ( Serial Attached Small Computer System Interface, 串行连接 小型计算机系统接口)磁盘等等。 所述快速存储介质包括但不限于: 内存、 闪存盘(U盘)、 存储卡、 光盘、 高速寄存器、 高速缓存 cache或 SSD ( Solid State Disk, 固态硬盘) 等。 本 发明实施例中的快速存储介质比数据库所在的存储介质访问效率更高、 性能更好, 可以实 现快速定位。
参见图 1, 本发明一实施例提供了一种数据访问方法, 包括:
101: 预先在数据库中设置用于存储键的信息的索引字段, 和用于存储值的信息的记录 字段, 且索引字段和记录字段的长度均固定。
102: 将所述索引字段映射到快速存储介质中的索引空间。
103: 当接收到操作数据的请求时, 根据所述数据中的键在索引空间中找到与所述数据 对应的索引字段, 根据找到的索引字段, 在数据库中确定与该数据对应的记录字段并对该 数据执行操作。
本实施例提供的上述方法, 通过设置数据库中分别存储键的信息和值的信息的索引字 段和记录字段定长, 并将该索引字段映射到快速存储介质中, 当操作数据时, 在快速存储 介质中找到相应的索引字段, 从而在数据库中确定对应的记录字段并执行操作, 与现有技 术相比, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大量的磁盘 10, 快速 存储介质 10相比磁盘 10可以节省大量的时间, 从而极大地提高了数据库的性能, 提高了 效率。 另外, 通过减少磁盘 10, 可以有效保护磁盘, 从而提升磁盘的使用寿命。 参见图 2, 本发明另一实施例提供了一种数据访问方法, 包括:
201: 预先在数据库中设置用于存储键的信息的索引字段, 和用于存储值的信息的记录 字段, 且索引字段和记录字段的长度均固定。
参见图 3, 为本实施例提供的数据库中索引字段和记录字段的结构示意图。数据库的数 据结构中包括: 头字段 Header、 索引字段 Index和记录字段 Record, 整个数据库以一个完 整的文件形式存储在存储介质上, 如存储在磁盘上。 其中, 索引字段长度固定, 记录字段 的长度也固定。
Header字段用于存储数据库 DB的元数据, 包括但不限于: 该 DB的容量, 如可以保存 的键值对的个数, key的长度 Lkey, value的长度 Lvalue, Index字段的附加信息长度 Lmdi;5M)thCT, Record字段的附加信息长度 LreOTd_。thCT,此外也可以保存第一个 Record记录在磁盘上的偏移 位置等信息 Pfiret_recOTd。 Header字段本身在磁盘上占据固定长度的存储空间, 处于 DB文件的 开头。
Index字段用于存储 DB的键 key以及索引字段的附加信息, 该索引字段的附加信息是 指与 key相关的数据, 包括但不限于: 该 Index字段位置的占用情况, 如是否已被占用, 在 该位置的 key的值, 当存在 hash冲突时该 index的后继等等。 其中每个部分都具有固定的 长度, 其中 key的长度与 Header中指定的 key长度一致。 所述是否已被占用是指该索引字 段中是否保存有键, 如果有则称为被占用, 否则, 未被占用。 所述存在 hash冲突时该 index 的后继是指具有相同哈希值的其他键的信息。
Record字段用于存储 DB的值 value以及记录字段的附加信息,该记录字段的附加信息 是指与 value相关的数据。 其中每个部分都具有固定的长度, value的长度与 Header中指定 的 value长度一致。
本实施例中, 索引字段和记录字段的长度固定是指持久化时固定的最大长度, 即写入 存储介质时固定的最大长度, 当 key或 value的值不足最大长度时, 可以通过数据填充的方 式补全。 例如, key和 value的固定长度分别是 16字节和 64字节, 则通过插入 put, 查找 get, 删除 delete接口传入的 key的长度可以是 (0,16]字节, value的长度可以是 (0,64]字节, 而最终存入该 DB的 key和 value的长度则分别是 16字节和 64字节。
202: 在快速存储介质中建立哈希空间和索引空间。
具体地, 可以根据数据库配置的哈希桶 Bucket大小在快速存储介质中申请足够大的哈 希空间, 一般以数组等数据结构进行组织, 用于存储键的哈希 hash值以及该键对应的索引 字段在索引空间中的序号, 以便于对键进行定位。索引空间可以根据数据库中 Index字段的 大小在快速存储介质中申请, 用于存储数据库中的全部 Index字段的信息。
203: 将数据库中的索引字段映射到已建立的索引空间中。
所述映射是指将数据库中的所有索引字段都保存到已建立的索引空间中, 且按照顺序 保存, 与位置数据库中的索引字段一一对应。 该数据库中的所有索引字段是指在数据库中 已开辟的存储空间, 无论该索引字段上是否已经保存有键的信息, 因此, 索引空间中保存 的索引字段内容与数据库中索引字段的内容相同, 从而可以在快速存储介质中对键进行定 位, 以代替在数据库中进行定位, 可以节省大量的时间, 从而极大地提高了数据库的性能。
204: 如果所述索引字段中存储有键的信息, 则将该键的哈希值以及该索引字段在索引 空间中的序号存储在上述哈希空间中, 以建立哈希空间和索引空间的关联。
例如,映射到索引空间中的索引字段有 10个,其中,第 5个存储有键 keyl,则将该 keyl 的哈希值和索引字段的序号 5 关联起来存储在哈希空间中, 以便于根据哈希值确定对应的 索引字段从而进行定位。
所述步骤 203和 204可以具体包括如下流程:
逐个或逐批遍历数据库中的索引字段, 检查每个索引字段中的占用标识, 根据该占用 标识判断该索引字段是否已被占用, 如果未占用, 则表示该索引字段空闲, 将该索引字段 对应的数据结构加入到快速存储介质的索引空间中; 如果已经被占用, 则表示已经有 key 保存在该索引字段中, 则将该索引字段对应的数据结构以及保存的内容都加入到索引空间 中, 计算该索引字段中的键的哈希值, 在哈希空间中查找是否存在该哈希值, 如果不存在, 则将该哈希值以及该索引字段的序号保存到哈希空间中; 如果存在, 则表明哈希值冲突, 进一步检查该哈希值的冲突链, 将该索引字段的序号保存在该冲突链的最后; 重复以上过 程直到遍历完数据库中的所有的索引字段, 从而完成了数据库中的索引字段到快速存储介 质的索引空间的映射。
205: 当接收到操作数据的请求时, 计算该数据中的键的哈希值。
206: 在哈希空间中找到计算得到的哈希值, 根据该哈希值对应的索引字段的序号在索 引空间中找到相应的索引字段。
207: 判断找到的索引字段中的键是否与所述数据中的键相等, 如果相等, 则执行 208; 如果不等, 则执行 209。
208: 根据找到的索引字段在索引空间中的序号、 索引字段的长度和记录字段的长度计 算得到数据库中与所述数据对应的记录字段的位置, 并对所述数据执行操作, 流程结束。 由于快速存储介质的索引空间中的索引字段与数据库中的索引字段均为顺序存储, 且 位置一一对应, 而所有字段的长度都固定, 因此, 具体地, 可以按照如下公式计算数据库 中与所述数据对应的记录字段的位置:
Position (i) = LHeader + Lindex * Numk-V + LReCord *
其中, 各个符号含义如下-
Position (i): 表示数据库中与数据对应的记录字段的位置;
1: 表示索引字段的序号;
LHeader: 表示数据库中头字段的长度;
LIndex: 表示数据库中索引字段的长度;
Numk-V: 表示数据库中能够存储的键值对的个数;
LRecord: 表示数据库中记录字段的长度。
其中, L Index— Lkey + Lindex-other ϊ Lvalue + LreCord-other ϊ Lmdex-other为索引字段的附加 信息的长度; LreOTd_。thCT为记录字段的附加信息的长度。
另外, Header字段中保存的第一个 Record记录在数据库中的偏移位置可以计算如下:
P first-record— L Header + Lindex * ΝΐΙΠ¾_ν °
209: 此时, 找到的索引字段中的键与所述数据中的键不等, 表明存在哈希冲突, 则哈 希空间中与所述计算得到的哈希值对应的索引字段的序号有多个, 因此, 根据哈希空间中 与所述计算得到的哈希值对应的其它索引字段的序号, 在索引空间中遍历其它索引字段, 直到找到与所述数据中的键相等的键或者遍历完成为止, 然后执行 210或 21 1。
210: 如果在其它索引字段中找到与所述数据中的键相等的键, 则根据该其它索引字段 的序号、 索引字段的长度和记录字段的长度计算得到数据库中与所述数据对应的记录字段 的位置, 并对所述数据执行操作, 流程结束。
21 1: 如果遍历所述其它索引字段完成后未找到与所述数据中的键相等的键, 则如果所 述操作为查找或删除, 则确定数据库中不存在所述数据, 如果所述操作为插入, 则在索引 空间中选择一个空闲索引字段, 将所述数据中键的信息存储在该空闲索引字段中, 将该键 的哈希值以及该空闲索引字段的序号存储在哈希空间中, 并根据该空闲索引字段, 在数据 库中确定与所述数据对应的索引字段和记录字段, 并将数据写入确定的索引字段和记录字 段中, 流程结束。
本实施例提供的上述方法, 通过设置数据库中分别存储键的信息和值的信息的索引字 段和记录字段定长, 并将该索引字段映射到快速存储介质中, 当操作数据时, 在快速存储 介质中找到相应的索引字段, 从而在数据库中确定对应的记录字段并执行操作, 与现有技 术相比, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大量的磁盘 10, 快速 存储介质 10相比磁盘 10可以节省大量的时间, 从而极大地提高了数据库的性能, 提高了 效率。 另外, 通过减少磁盘 10, 可以有效保护磁盘, 从而提升磁盘的使用寿命。 参见图 4, 本发明又一实施例提供了一种数据访问方法, 包括:
401: 预先在数据库中设置用于存储键的信息的索引字段, 和用于存储值的信息的记录 字段, 且索引字段和记录字段的长度均固定。
402: 将所述索引字段映射到快速存储介质中的索引空间, 然后执行步骤 403、 404和 405中的一种或几种。
403: 当接收到插入数据的请求时, 根据所述数据中的键, 在索引空间中找到与所述数 据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索引字段和 记录字段, 并将所述数据写入确定的索引字段和记录字段中, 流程结束。
404: 当接收到查找数据的请求时, 根据所述数据中的键, 在索引空间中找到与所述数 据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索引字段和 记录字段, 并从确定的索引字段和记录字段中读出所述数据, 流程结束。
405: 当接收到删除数据的请求时, 根据所述数据中的键, 在索引空间中找到与所述数 据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索引字段和 记录字段, 并在确定的索引字段和记录字段中删除所述数据, 流程结束。
本实施例中, 步骤 403、 404和 405为三种不同的情形, 在实际应用中, 可以执行该三 个步骤中的一个或多个步骤, 且时间的先后顺序不固定, 本发明对此不限定。
本实施例提供的上述方法, 通过设置数据库中分别存储键的信息和值的信息的索引字 段和记录字段定长, 并将该索引字段映射到快速存储介质中, 当操作数据时, 在快速存储 介质中找到相应的索引字段, 从而在数据库中确定对应的记录字段并执行操作, 与现有技 术相比, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大量的磁盘 10, 快速 存储介质 10相比磁盘 10可以节省大量的时间, 从而极大地提高了数据库的性能, 提高了 效率。 另外, 通过减少磁盘 10, 可以有效保护磁盘, 从而提升磁盘的使用寿命。 下面分别以执行数据插入、 查找和删除操作为例进行具体说明, 在接收到操作数据的 请求之前已经完成索引字段到快速存储介质的映射等步骤, 与上述实施例中的描述相同, 下面三个实施例中就不再赘述。
参见图 5,本实施例以执行数据插入 put操作为例进行具体说明,一种数据访问的方法, 包括:
501: 接收插入数据的请求, 计算待插入数据的 key所对应的哈希值。
502: 在哈希空间中查找该哈希值, 判断是否找到该哈希值, 如果未找到, 则执行 503 ; 如果找到, 则执行 504。
503: 此时表示目前不存在相同哈希值的 key, 该 key尚未插入过, 则根据预设策略从 快速存储介质的索引空间中取一个可用的 index数据结构即索引字段,修改该索引字段及哈 希空间中的属性, 以及根据该索引字段的序号位置, 完成所述数据在数据库的写入, 流程 结束。
其中, 修改该索引字段及哈希空间中的属性包括:
将该索引字段的占用标识改为已占用; 将上述 key 写入该索引字段; 将哈希空间中该 hash值所对应的位置指向该索引字段, 即存储该索引字段的序号。
根据该索引字段的序号位置, 完成所述数据在数据库的写入, 包括:
将该索引字段的占用标识改为已占用;将上述 key写入该索引字段;根据上述实施例中 的公式, 找到该索引字段在数据库中对应的记录字段的位置, 将待插入数据的 value及其他 相关数据写入该位置。
其中, 所述预设策略包括但不限于: 取第一个, 或者随机取等等。
504: 此时表示已存在相同哈希值的 key, 即具有相同哈希值的 key已经插入过, 则进 一步检查哈希空间中与该哈希值对应的索引字段序号列表, 并且根据该索引字段序号列表 中的各个序号, 在索引空间中遍历该各个序号对应的各个索引字段, 判断其中是否存储有 所述 key,直到找到存储有所述 key的索引字段或者所述对应的各个索引字段遍历完成为止。
505: 如果找到存储有所述 key的索引字段, 则表明该 key曾经插入过, 此时不再需要 在索引空间中重新分配存储空间,则根据已插入该 key的索引字段的序号位置,完成所述数 据在数据库中的写入, 流程结束。
其中, 在数据库中的写入过程, 包括:
将数据库中的该索引字段的占用标识改为已占用;将所述 key写入该索引字段;根据上 述实施例中的公式, 找到该索引字段对应的记录字段的位置, 将待插入数据的 value及其他 相关数据写入该位置。
506: 如果遍历完成后仍未找到存储有所述 key的索引字段,则表示该 key从未插入过, 则根据预设策略从快速存储介质的索引空间中取一个可用的 index数据结构即索引字段,修 改该索引字段及哈希空间中的属性, 以及根据该索引字段的序号位置, 完成所述数据在数 据库的写入, 流程结束。 其中, 修改该索引字段及哈希空间中的属性, 包括:
将该索引字段的占用标识改为已占用; 将所述 key 写入该索引字段; 将哈希空间中该 hash值所对应的具有相同哈希值的索引字段序号列表中的最后一个位置指向该索引字段, 即存储该索引字段的序号。
根据该索引字段的序号位置, 完成所述数据在数据库的写入, 包括:
将该索引字段的占用标识改为已占用;将所述 key写入该索引字段;根据上述实施例中 的公式, 找到该索引字段在数据库中对应的记录字段的位置, 将待插入数据的 value及其他 相关数据写入该位置。
其中, 所述预设策略包括但不限于: 取第一个, 或者随机取等等。
参见图 6,本实施例以执行数据查找 get操作为例进行具体说明,一种数据访问的方法, 包括:
601: 接收查找数据的请求, 计算待查找数据的 key所对应的哈希值。
602: 在哈希空间中查找该哈希值, 判断是否找到该哈希值, 如果未找到, 则执行 603 ; 如果找到, 则执行 604。
603: 此时表示该 key尚未插入过, 则直接返回结果, 表示该数据不存在, 流程结束。
604: 此时表示与该 key具有相同哈希值的 key已经存在, 则进一步检查哈希空间中与 该哈希值对应的索引字段序号列表, 并且根据该索引字段序号列表中的各个序号, 在索引 空间中遍历该各个序号对应的各个索引字段, 判断其中是否存储有所述 key, 直到找到存储 有所述 key的索引字段或者所述对应的各个索引字段遍历完成为止。
605: 如果找到存储有所述 key的索引字段, 则表明该 key曾经插入过, 根据已插入该 key的索引字段的序号位置, 以及上述实施例中的公式, 找到该索引字段在数据库中对应的 记录字段的位置, 从该位置读取 value以及相关数据, 流程结束。
606: 如果遍历完成后仍未找到存储有所述 key的索引字段,则表示该 key从未插入过, 则直接返回结果, 表示该数据不存在, 流程结束。
参见图 7, 本实施例以执行数据删除 delete操作为例进行具体说明, 一种数据访问的方 法, 包括:
701: 接收删除数据的请求, 计算待删除数据的 key所对应的哈希值。
702: 在哈希空间中查找该哈希值, 判断是否找到该哈希值, 如果未找到, 则执行 703 ; 如果找到, 则执行 704。
703: 此时表示该 key尚未插入过, 则直接返回结果, 表示该数据不存在, 流程结束。 704: 此时表示与该 key具有相同哈希值的 key已经存在, 则进一步检查哈希空间中与 该哈希值对应的索引字段序号列表, 并且根据该索引字段序号列表中的各个序号, 在索引 空间中遍历该各个序号对应的各个索引字段, 判断其中是否存储有所述 key, 直到找到存储 有所述 key的索引字段或者所述对应的各个索引字段遍历完成为止。
705: 如果找到存储有所述 key的索引字段, 则表明该 key曾经插入过, 在索引空间中 对所述 key的相关内容进行更新,并根据已插入该 key的索引字段的序号位置, 以及上述实 施例中的公式, 找到该索引字段在数据库中对应的记录字段的位置, 在该位置处完成相关 数据的更新, 流程结束。
其中, 在索引空间中对所述 key的相关内容进行更新, 包括:
将索引空间中存储有所述 key的索引字段中的占用标识改为未占用,将该索引字段加入 到空闲空间, 在哈希空间中与该索引字段对应的具有相同哈希值的索引字段序号列表中将 该索引字段序号删除, 并且根据上述实施例中的公式, 在数据库中找到该索引字段, 并将 该索引字段的占用标识改为未占用。
706: 如果遍历完成后仍未找到存储有所述 key的索引字段,则表示该 key从未插入过, 则直接返回结果, 表示该数据不存在, 流程结束。
本实施例提供的上述三种具体操作场景, 实现了基于快速存储介质定位下的插入、 查 找和删除操作, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大量的磁盘 10, 极大地提高了数据库的性能, 提高了效率。 另外, 通过减少磁盘 10, 可以有效保护磁盘, 从而提升磁盘的使用寿命。 参见图 8, 本发明又一实施例提供了一种数据访问装置, 包括:
映射模块 801, 用于将数据库中的索引字段映射到快速存储介质中的索引空间, 该数据 库中设置有用于存储键的信息的索引字段, 和用于存储值的信息的记录字段, 且索引字段 和记录字段的长度均固定;
操作模块 802, 用于当接收到操作数据的请求时, 根据所述数据中的键在索引空间中找 到与所述数据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的 记录字段并对所述数据执行操作;
其中, 所述快速存储介质的访问效率比数据库所在的存储介质的访问效率高。
本实施例中, 映射模块 801可以包括:
建立单元, 用于在快速存储介质中建立哈希空间和索引空间;
映射单元, 用于将数据库中的索引字段映射到索引空间中;
关联单元, 用于如果索引字段中存储有键的信息, 则将该键的哈希值以及索引字段在 索引空间中的序号存储在哈希空间中, 以建立哈希空间和索引空间的关联。
在映射模块 801包括所述建立单元、 映射单元和关联单元的基础上, 操作模块 802可 以包括:
计算单元, 用于当接收到操作数据的请求时, 计算所述数据中的键的哈希值; 确定单元, 用于在哈希空间中找到所述计算单元计算得到的哈希值, 根据该哈希值对 应的索引字段的序号在索引空间中找到相应的索引字段;
判断单元, 用于判断所述确定单元找到的索引字段中的键是否与所述数据中的键相等; 第一操作单元, 用于如果所述判断单元判断的结果为相等, 则根据该索引字段的序号、 索引字段的长度和记录字段的长度计算得到数据库中与所述数据对应的记录字段的位置, 并对所述数据执行操作。
其中, 所述第一操作单元可以按照如下公式计算数据库中与所述数据对应的记录字段 的位置-
Position (i) = LHeader + Lindex * Numk-V + LReCord *
其中, Position (i) 表示数据库中与数据对应的记录字段的位置, i表示索引字段的序 号, LHeadCT表示数据库中头字段的长度, LIndex表示数据库中索引字段的长度, Numk_v表示 数据库中能够存储的键值对的个数, LR∞OTd表示数据库中记录字段的长度。
本实施例中, 操作模块 802可以包括:
插入单元, 用于当接收到插入数据的请求时, 根据所述数据中的键在索引空间中找到 与所述数据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索 引字段和记录字段, 并将所述数据写入确定的索引字段和记录字段中; 或者,
查找单元, 用于当接收到查找数据的请求时, 根据所述数据中的键在索引空间中找到 与所述数据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索 引字段和记录字段, 并从确定的索引字段和记录字段中读出所述数据; 或者,
删除单元, 用于当接收到删除数据的请求时, 根据所述数据中的键在索引空间中找到 与所述数据对应的索引字段, 根据找到的索引字段, 在数据库中确定与所述数据对应的索 引字段和记录字段, 并在确定的索引字段和记录字段中删除所述数据。
本实施例中, 当操作模块 802包括所述计算单元、 确定单元、 判断单元和第一操作单 元时, 进一步地, 操作模块 802还可以包括:
第二操作单元, 用于如果所述判断单元判断出找到的索引字段中的键与所述数据中的 键不等, 则根据哈希空间中与计算得到的哈希值对应的其它索引字段的序号, 在索引空间 中遍历其它索引字段, 直到找到与所述数据中的键相等的键或者遍历完成; 第三操作单元, 用于如果所述第二操作单元在其它索引字段中找到与所述数据中的键 相等的键, 则根据其它索引字段的序号、 索引字段的长度和记录字段的长度计算得到数据 库中与所述数据对应的记录字段的位置, 并对所述数据执行操作;
第四操作单元, 用于如果所述第二操作单元遍历完成后未找到与所述数据中的键相等 的键, 则如果所述操作为查找或删除, 则确定数据库中不存在所述数据, 如果所述操作为 插入, 则在索引空间中选择一个空闲索引字段, 将所述数据中键的信息存储在空闲索引字 段中, 将该键的哈希值以及空闲索引字段的序号存储在哈希空间中, 并根据空闲索引字段, 在数据库中确定与所述数据对应的索引字段和记录字段, 并将所述数据写入确定的索引字 段和记录字段中。
其中, 所述判断单元判断出找到的索引字段中的键与所述数据中的键不等时, 表明存 在哈希冲突, 则哈希空间中与所述计算得到的哈希值对应的索引字段的序号有多个, 因此, 所述第二操作单元可以根据哈希空间中与所述计算得到的哈希值对应的其它索引字段的序 号, 在索引空间中遍历其它索引字段, 直到找到与所述数据中的键相等的键或者遍历完成 为止。
本实施例提供的上述装置, 通过设置数据库中分别存储键的信息和值的信息的索引字 段和记录字段定长, 并将该索引字段映射到快速存储介质中, 当操作数据时, 在快速存储 介质中找到相应的索引字段, 从而在数据库中确定对应的记录字段并执行操作, 与现有技 术相比, 将数据定位过程全部移入快速存储介质中进行操作, 避免了大量的磁盘 10, 快速 存储介质 10相比磁盘 10可以节省大量的时间, 从而极大地提高了数据库的性能, 提高了 效率。 另外, 通过减少磁盘 10, 可以有效保护磁盘, 从而提升磁盘的使用寿命。 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完 成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读存储 介质中, 上述提到的存储介质可以是只读存储器, 磁盘或光盘等。
以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明的精神和原则 之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims (1)

  1. 权 利 要 求 书
    1、 一种数据访问方法, 其特征在于, 所述方法包括:
    预先在数据库中设置用于存储键的信息的索引字段, 和用于存储值的信息的记录字段, 且所述索引字段和记录字段的长度均固定;
    将所述索引字段映射到快速存储介质中的索引空间;
    当接收到操作数据的请求时, 根据所述数据中的键在所述索引空间中找到与所述数据对 应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据对应的记录字段 并对所述数据执行所述操作;
    其中, 所述快速存储介质的访问效率比所述数据库所在的存储介质的访问效率高。
    2、根据权利要求 1所述的方法, 其特征在于, 将所述索引字段映射到快速存储介质中的 索引空间, 包括:
    在所述快速存储介质中建立哈希空间和所述索引空间;
    将所述数据库中的索引字段映射到所述索引空间中;
    如果所述索引字段中存储有键的信息, 则将所述键的哈希值以及所述索引字段在所述索 引空间中的序号存储在所述哈希空间中, 以建立所述哈希空间和索引空间的关联。
    3、 根据权利要求 2所述的方法, 其特征在于, 当接收到操作数据的请求时, 根据所述数 据中的键在所述索引空间中找到与所述数据对应的索引字段, 根据找到的所述索引字段, 在 所述数据库中确定与所述数据对应的记录字段并对所述数据执行所述操作, 包括:
    当接收到操作数据的请求时, 计算所述数据中的键的哈希值;
    在所述哈希空间中找到所述计算得到的哈希值, 根据所述哈希值对应的索引字段的序号 在所述索引空间中找到相应的索引字段;
    判断找到的所述索引字段中的键是否与所述数据中的键相等;
    如果相等, 则根据所述索引字段的序号、 索引字段的长度和记录字段的长度计算得到所 述数据库中与所述数据对应的记录字段的位置, 并对所述数据执行所述操作。
    4、 根据权利要求 3所述的方法, 其特征在于, 根据所述索引字段的序号、 索引字段的长 度和记录字段的长度计算得到所述数据库中与所述数据对应的记录字段的位置, 包括: 按照如下公式计算所述数据库中与所述数据对应的记录字段的位置:
    Position (i) = LHeader + Lindex * Numk-V + LReCord *
    其中, Position (i) 表示所述数据库中与所述数据对应的记录字段的位置, i表示所述索 引字段的序号, LHeadCT表示所述数据库中头字段的长度, 1^^表示所述数据库中索引字段的 长度, Numk_v表示所述数据库中能够存储的键值对的个数, LR∞OTd表示所述数据库中记录字 段的长度。
    5、 根据权利要求 1所述的方法, 其特征在于, 当接收到操作数据的请求时, 根据所述数 据中的键在所述索引空间中找到与所述数据对应的索引字段, 根据找到的所述索引字段, 在 所述数据库中确定与所述数据对应的记录字段并对所述数据执行所述操作, 包括:
    当接收到插入数据的请求时, 根据所述数据中的键在所述索引空间中找到与所述数据对 应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据对应的索引字段 和记录字段, 并将所述数据写入所述确定的索引字段和记录字段中; 或者,
    当接收到查找数据的请求时, 根据所述数据中的键在所述索引空间中找到与所述数据对 应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据对应的索引字段 和记录字段, 并从所述确定的索引字段和记录字段中读出所述数据; 或者,
    当接收到删除数据的请求时, 根据所述数据中的键在所述索引空间中找到与所述数据对 应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据对应的索引字段 和记录字段, 并在所述确定的索引字段和记录字段中删除所述数据。
    6、根据权利要求 3所述的方法, 其特征在于, 判断找到的所述索引字段中的键是否与所 述数据中的键相等之后, 还包括:
    如果找到的所述索引字段中的键与所述数据中的键不等, 则根据所述哈希空间中与所述 计算得到的哈希值对应的其它索引字段的序号, 在所述索引空间中遍历所述其它索引字段, 直到找到与所述数据中的键相等的键或者遍历完成;
    如果在所述其它索引字段中找到与所述数据中的键相等的键, 则根据所述其它索引字段 的序号、 索引字段的长度和记录字段的长度计算得到所述数据库中与所述数据对应的记录字 段的位置, 并对所述数据执行所述操作;
    如果遍历完成后未找到与所述数据中的键相等的键, 则如果所述操作为查找或删除, 则 确定所述数据库中不存在所述数据, 如果所述操作为插入, 则在所述索引空间中选择一个空 闲索引字段, 将所述数据中键的信息存储在所述空闲索引字段中, 将所述键的哈希值以及所 述空闲索引字段的序号存储在所述哈希空间中, 并根据所述空闲索引字段, 在所述数据库中 确定与所述数据对应的索引字段和记录字段, 并将所述数据写入所述确定的索引字段和记录 字段中。
    7、 一种数据访问装置, 其特征在于, 所述装置包括:
    映射模块, 用于将数据库中的索引字段映射到快速存储介质中的索引空间, 所述数据库 中设置有用于存储键的信息的索引字段, 和用于存储值的信息的记录字段, 且所述索引字段 和记录字段的长度均固定;
    操作模块, 用于当接收到操作数据的请求时, 根据所述数据中的键在所述索引空间中找 到与所述数据对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据 对应的记录字段并对所述数据执行所述操作;
    其中, 所述快速存储介质的访问效率比所述数据库所在的存储介质的访问效率高。
    8、 根据权利要求 7所述的装置, 其特征在于, 所述映射模块包括:
    建立单元, 用于在所述快速存储介质中建立哈希空间和所述索引空间;
    映射单元, 用于将所述数据库中的索引字段映射到所述索引空间中;
    关联单元, 用于如果所述索引字段中存储有键的信息, 则将所述键的哈希值以及所述索 引字段在所述索引空间中的序号存储在所述哈希空间中, 以建立所述哈希空间和索引空间的 关联。
    9、 根据权利要求 8所述的装置, 其特征在于, 所述操作模块包括:
    计算单元, 用于当接收到操作数据的请求时, 计算所述数据中的键的哈希值; 确定单元, 用于在所述哈希空间中找到所述计算得到的哈希值, 根据所述哈希值对应的 索引字段的序号在所述索引空间中找到相应的索引字段;
    判断单元, 用于判断找到的所述索引字段中的键是否与所述数据中的键相等; 第一操作单元, 用于如果所述判断单元判断的结果为相等, 则根据所述索引字段的序号、 索引字段的长度和记录字段的长度计算得到所述数据库中与所述数据对应的记录字段的位 置, 并对所述数据执行所述操作。 10、 根据权利要求 9所述的装置, 其特征在于, 所述第一操作单元用于按照如下公式计 算所述数据库中与所述数据对应的记录字段的位置:
    Position (i) = LHeader + Lindex * Numk-V + LReCord *
    其中, Position (i) 表示所述数据库中与所述数据对应的记录字段的位置, i表示所述索 引字段的序号, LHeadCT表示所述数据库中头字段的长度, LIndex表示所述数据库中索引字段的 长度, Numk_v表示所述数据库中能够存储的键值对的个数, LR∞OTd表示所述数据库中记录字 段的长度。
    11、 根据权利要求 7所述的装置, 其特征在于, 所述操作模块包括:
    插入单元, 用于当接收到插入数据的请求时, 根据所述数据中的键在所述索引空间中找 到与所述数据对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据 对应的索引字段和记录字段, 并将所述数据写入所述确定的索引字段和记录字段中; 或者, 查找单元, 用于当接收到查找数据的请求时, 根据所述数据中的键在所述索引空间中找 到与所述数据对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据 对应的索引字段和记录字段, 并从所述确定的索引字段和记录字段中读出所述数据; 或者, 删除单元, 用于当接收到删除数据的请求时, 根据所述数据中的键在所述索引空间中找 到与所述数据对应的索引字段, 根据找到的所述索引字段, 在所述数据库中确定与所述数据 对应的索引字段和记录字段, 并在所述确定的索引字段和记录字段中删除所述数据。
    12、 根据权利要求 9所述的装置, 其特征在于, 所述操作模块还包括:
    第二操作单元, 用于如果所述判断单元判断出所述找到的索引字段中的键与所述数据中 的键不等, 则根据所述哈希空间中与所述计算得到的哈希值对应的其它索引字段的序号, 在 所述索引空间中遍历所述其它索引字段,直到找到与所述数据中的键相等的键或者遍历完成; 第三操作单元, 用于如果所述第二操作单元在所述其它索引字段中找到与所述数据中的 键相等的键, 则根据所述其它索引字段的序号、 索引字段的长度和记录字段的长度计算得到 所述数据库中与所述数据对应的记录字段的位置, 并对所述数据执行所述操作;
    第四操作单元, 用于如果所述第二操作单元遍历完成后未找到与所述数据中的键相等的 键, 则如果所述操作为查找或删除, 则确定所述数据库中不存在所述数据, 如果所述操作为 插入, 则在所述索引空间中选择一个空闲索引字段, 将所述数据中键的信息存储在所述空闲 索引字段中, 将所述键的哈希值以及所述空闲索引字段的序号存储在所述哈希空间中, 并根 据所述空闲索引字段, 在所述数据库中确定与所述数据对应的索引字段和记录字段, 并将所 述数据写入所述确定的索引字段和记录字段中。
CN201180003271.7A 2011-11-24 2011-11-24 数据访问方法和装置 Active CN103229164B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/082831 WO2013075306A1 (zh) 2011-11-24 2011-11-24 数据访问方法和装置

Publications (2)

Publication Number Publication Date
CN103229164A true CN103229164A (zh) 2013-07-31
CN103229164B CN103229164B (zh) 2016-08-03

Family

ID=48469007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003271.7A Active CN103229164B (zh) 2011-11-24 2011-11-24 数据访问方法和装置

Country Status (2)

Country Link
CN (1) CN103229164B (zh)
WO (1) WO2013075306A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614668A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 基于kv模型的数据访问方法与固态存储设备
CN108614669A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 解决哈希冲突的键-数据访问方法与固态存储设备
CN108614671A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 基于命名空间的键-数据访问方法与固态存储设备
CN109783499A (zh) * 2019-01-18 2019-05-21 成都宝瓜科技有限公司 一种数据缓存方法、装置和服务器
CN111046074A (zh) * 2019-12-13 2020-04-21 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质
CN111061680A (zh) * 2018-10-15 2020-04-24 北京京东尚科信息技术有限公司 一种数据检索的方法和装置
CN111639076A (zh) * 2020-05-14 2020-09-08 民生科技有限责任公司 一种跨平台高效键值存储方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500088A (zh) * 2013-09-18 2014-01-08 北京航空航天大学 一种用于key-value存储系统的trace序列的生成方法
CN106506493A (zh) * 2016-10-27 2017-03-15 摩登大道时尚电子商务有限公司 基于区块链平台的数据处理方法
CN110134660A (zh) * 2019-05-22 2019-08-16 苏州浪潮智能科技有限公司 一种数据访问方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074341A1 (en) * 2001-10-11 2003-04-17 International Business Machines Corporation Method and system for dynamically managing hash pool data structures
CN101315628A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 内存数据库系统及实现内存数据库的方法和装置
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
US20110191302A1 (en) * 2009-04-24 2011-08-04 Hitachi, Ltd. Storage system and data management method of the same
CN102222099A (zh) * 2011-06-21 2011-10-19 中兴通讯股份有限公司 一种数据存储、查找方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100543750C (zh) * 2007-11-30 2009-09-23 中兴通讯股份有限公司 一种基于web应用的矩阵式数据缓存方法及装置
US8732139B2 (en) * 2008-12-18 2014-05-20 Sap Ag Method and system for dynamically partitioning very large database indices on write-once tables

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074341A1 (en) * 2001-10-11 2003-04-17 International Business Machines Corporation Method and system for dynamically managing hash pool data structures
CN101315628A (zh) * 2007-06-01 2008-12-03 华为技术有限公司 内存数据库系统及实现内存数据库的方法和装置
US20110191302A1 (en) * 2009-04-24 2011-08-04 Hitachi, Ltd. Storage system and data management method of the same
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN102222099A (zh) * 2011-06-21 2011-10-19 中兴通讯股份有限公司 一种数据存储、查找方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曾强: "实时历史数据库的设计与分析", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614668A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 基于kv模型的数据访问方法与固态存储设备
CN108614669A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 解决哈希冲突的键-数据访问方法与固态存储设备
CN108614671A (zh) * 2016-12-12 2018-10-02 北京忆恒创源科技有限公司 基于命名空间的键-数据访问方法与固态存储设备
CN108614669B (zh) * 2016-12-12 2023-02-17 北京忆恒创源科技股份有限公司 解决哈希冲突的键-数据访问方法与固态存储设备
CN108614671B (zh) * 2016-12-12 2023-02-28 北京忆恒创源科技股份有限公司 基于命名空间的键-数据访问方法与固态存储设备
CN111061680A (zh) * 2018-10-15 2020-04-24 北京京东尚科信息技术有限公司 一种数据检索的方法和装置
CN109783499A (zh) * 2019-01-18 2019-05-21 成都宝瓜科技有限公司 一种数据缓存方法、装置和服务器
CN109783499B (zh) * 2019-01-18 2023-09-22 成都宝瓜科技有限公司 一种数据缓存方法、装置和服务器
CN111046074A (zh) * 2019-12-13 2020-04-21 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质
CN111046074B (zh) * 2019-12-13 2023-09-01 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质
CN111639076A (zh) * 2020-05-14 2020-09-08 民生科技有限责任公司 一种跨平台高效键值存储方法
CN111639076B (zh) * 2020-05-14 2023-12-22 民生科技有限责任公司 一种跨平台高效键值存储方法

Also Published As

Publication number Publication date
CN103229164B (zh) 2016-08-03
WO2013075306A1 (zh) 2013-05-30

Similar Documents

Publication Publication Date Title
CN103229164B (zh) 数据访问方法和装置
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
EP2735978B1 (en) Storage system and management method used for metadata of cluster file system
CN103080910B (zh) 存储系统
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US20170364414A1 (en) System and method for data deduplication using log-structured merge trees
CN103902623B (zh) 用于在存储系统上存取文件的方法和系统
CN105117415B (zh) 一种优化的ssd数据更新方法
WO2014015828A1 (zh) 数据存储空间的处理方法、处理系统及数据存储服务器
CN103140840B (zh) 数据管理的方法及装置
WO2013152678A1 (zh) 元数据查询方法和装置
JP2015512604A (ja) 暗号ハッシュ・データベース
CN116450656B (zh) 数据处理方法、装置、设备及存储介质
CN113535670B (zh) 一种虚拟化资源镜像存储系统及其实现方法
CN107329692A (zh) 一种数据重删的方法及存储设备
CN102346783B (zh) 数据检索方法及装置
KR101226600B1 (ko) 메모리 시스템 및 그의 메모리 맵핑 방법
KR20230026946A (ko) 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법
WO2022205544A1 (zh) 基于Cuckoo哈希的文件系统目录管理方法及系统
KR101123335B1 (ko) 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체
CN107273306A (zh) 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN114416646A (zh) 一种层级存储系统的数据处理方法及装置
CN114116612A (zh) 一种基于b+树索引归档文件的存取方法
CN110515897B (zh) Lsm存储系统读性能的优化方法及系统
CN111625198A (zh) 一种元数据缓存方法和元数据缓存装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant