WO2023078388A1 - 键-值存储的方法和设备、计算机可读存储介质 - Google Patents

键-值存储的方法和设备、计算机可读存储介质 Download PDF

Info

Publication number
WO2023078388A1
WO2023078388A1 PCT/CN2022/129845 CN2022129845W WO2023078388A1 WO 2023078388 A1 WO2023078388 A1 WO 2023078388A1 CN 2022129845 W CN2022129845 W CN 2022129845W WO 2023078388 A1 WO2023078388 A1 WO 2023078388A1
Authority
WO
WIPO (PCT)
Prior art keywords
index
key
target
value
storage medium
Prior art date
Application number
PCT/CN2022/129845
Other languages
English (en)
French (fr)
Inventor
董劲
韩银俊
陈正华
金浩
屠要峰
高洪
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2023078388A1 publication Critical patent/WO2023078388A1/zh

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to the field of storage technologies, and in particular, to a key-value storage method, a key-value storage device, and a computer-readable storage medium.
  • an embodiment of the present disclosure provides a key-value storage method, including:
  • each index in the index storage medium includes a key, and a key corresponding to the key value storage information in said data storage medium;
  • an embodiment of the present disclosure provides a key-value storage device, including a data storage medium, an index storage medium, at least one memory, and at least one processor; the memory stores information that can be executed by the processor A computer program, when the computer program is executed by the processor, implements the above key-value storage method.
  • an embodiment of the present disclosure provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the above key-value storage method is implemented.
  • FIG. 1 is a flowchart of a key-value storage method provided by an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of data transmission between modules performing each step of the key-value storage method provided by an embodiment of the present disclosure
  • FIG. 3 is a schematic diagram of the relationship between an index storage medium and a data storage medium in an embodiment of the present disclosure
  • FIG. 4 is a schematic diagram of the relationship between an index storage medium and a data storage medium in an embodiment of the present disclosure
  • FIG. 5 is a schematic diagram of the relationship between an index storage medium and a data storage medium in an embodiment of the present disclosure
  • FIG. 6 is a schematic diagram of a logic process of a key-value storage method provided by an embodiment of the present disclosure
  • FIG. 7 is a block diagram of a key-value storage device provided by an embodiment of the present disclosure.
  • Fig. 8 is a composition block diagram of a computer-readable storage medium provided by an embodiment of the present disclosure.
  • the present disclosure may be described with reference to plan views and/or cross-sectional views by way of idealized schematic views of the present disclosure. Accordingly, the example illustrations may be modified according to manufacturing techniques and/or tolerances.
  • transaction logs may be used to implement atomic writing.
  • the write operation may include steps (11) to (15).
  • the write operation may include steps (21) to (23).
  • an embodiment of the present disclosure provides a key-value storage method.
  • the method for key-value storage provided by the present disclosure is used to realize key-value (KV, Key-Value) storage, especially for realizing the “write” operation in the key-value storage.
  • Key-value storage refers to data stored in the form of "Key” and "Value” corresponding to each other.
  • the value is the actual data that needs to be used, and the key is stored in the index (Index), and in the index It also includes the storage information of the value corresponding to the key, such as the storage address and data length of the corresponding value.
  • the key-value storage method of the embodiment of the present disclosure includes steps S101 to S103.
  • the system When the system receives a key-value (KV) write request, it first determines part of the storage space as the target data storage space from the free storage space in the data storage medium, and writes the key-value into the requested target value (Value , that is, the actual data) is written into the target data storage space.
  • KV key-value
  • Each index in the index storage medium includes a key and storage information of a value corresponding to the key in the data storage medium.
  • the target key (Key) of the key-value write request is written into the corresponding target index (Index) in the index storage medium.
  • the target index should include the storage information of the target key and the target value corresponding to the target key in the data storage medium , which is the storage information of the above target data storage space (such as the start address and data length of the target data storage space).
  • the write is successful, and the key-value storage is completed, that is, the target index (including the target key) is stored in the index storage medium, and the target index points to the target data storage space of the data storage medium target value in .
  • the key-value storage method provided by the present disclosure can be carried out in the key-value storage device, and the specific execution of each step can be the corresponding module in the device, for example, the read and write (IO) operation can be performed by the IO management module
  • the processing of the index (key) can be performed by the index management module, and the processing of the value (data) can be performed by the disk space management module; and the write operation can be to write data to the data storage medium and the index storage medium.
  • Each of the above modules can be an independent physical module, or a virtual module divided according to function.
  • the data storage medium and the index storage medium are two predetermined relatively independent storage areas configured to store values (data) and keys (indexes) respectively.
  • the data storage medium and the index storage medium may be different logical partitions in the same storage medium device.
  • the data storage medium and the index storage medium may also be two independent storage medium devices.
  • the data storage medium may be a storage medium device (such as a host), and the index storage medium may be a third-party storage system, such as a cloud system, communicated with the host through a network or the like.
  • a storage medium device such as a host
  • the index storage medium may be a third-party storage system, such as a cloud system, communicated with the host through a network or the like.
  • the key-value storage method proposed by the present disclosure may also include the step of determining the data storage medium and the index storage medium , such as pre-dividing (such as logical partitioning) the data storage medium and the index storage medium, or presetting the data storage medium and the index storage medium.
  • new values are first written into the free storage space of the data storage medium (dynamically generated), so the writing does not affect the previous old data (old value ), and the index that needs to be inserted can also be dynamically generated in memory, so it avoids the problem of updating space management metadata while writing data, and even if the writing is unsuccessful, it can return to the previous key-value instead of A "data loss" situation will occur; that is, the key-value storage method provided by the present disclosure can realize transactional atomic writing in a "non-transactional" manner without using a "log”.
  • the index storage medium is an atomic write storage medium.
  • the corresponding index storage medium can be an atomic write storage medium, that is, the characteristics of the index storage medium itself ensure that it can support atomic write of data of a specific size, for example Support atomic writing of 4KB (KiloByte, kilobyte) data.
  • NVMe SSD Non-Volatile Memory express Solid State Disk, non-volatile solid-state disk
  • the method for key-value storage before writing the target key of the key-value write request into the target index in the index storage medium (S102), the method for key-value storage further includes step S1001.
  • Each storage page is an atomic write storage unit, and the storage capacity of each storage page is greater than the maximum data volume of a single index, each index is stored in a storage page, and each storage page stores one or more complete indexes.
  • the index storage medium can be divided into multiple storage pages (PAGE) in advance, and each storage page is a storage area supporting atomic writing, and its size should exceed the possible size of a single index.
  • PAGE storage pages
  • each index can be written into a corresponding storage page to ensure the atomic write characteristics of the index.
  • multiple indexes can also be written in one storage page.
  • the method for key-value storage before determining the target data storage space from the free storage space of the data storage medium (S101), the method for key-value storage further includes step S1002.
  • all the existing indexes in the index storage medium can be acquired into the internal memory (such as DRAM memory) in advance, and according to these indexes, it is possible to determine which indexes are stored in the data storage medium.
  • the space has been used, which storage space is still free, so as to obtain the free storage space in the memory for storage space management; in addition, it can also determine the free index in the index storage medium in the memory for index management.
  • the IO management module can read all the indexes in the index storage medium into the memory (such as DRAM memory), and the index management module can process them in the memory to determine the The index set and the storage information corresponding to the index, and the disk space management module generates the disk space management data of the data storage medium in the memory according to the index set, that is, the part corresponding to the index in the data storage medium is determined as the used storage space, and the remaining A part is free storage space; and a corresponding free index is determined.
  • the memory such as DRAM memory
  • the index management module can process them in the memory to determine the The index set and the storage information corresponding to the index
  • the disk space management module generates the disk space management data of the data storage medium in the memory according to the index set, that is, the part corresponding to the index in the data storage medium is determined as the used storage space, and the remaining A part is free storage space; and a corresponding free index is determined.
  • the above free storage space and free index can be managed in memory to avoid persistence, and it is not necessary to use logs in the process of allocating and recycling storage space and indexes.
  • the writing the target key of the key-value write request into the target index in the index storage medium (S102) includes step S1021.
  • the target key can be searched in all existing indexes. If not found, the target index is created (such as in memory) (of course it includes the target key), and the target index is written Insert (insert) into the index storage medium, for example, write the target index in a new storage page (PAGE).
  • the target index is created (such as in memory) (of course it includes the target key), and the target index is written Insert (insert) into the index storage medium, for example, write the target index in a new storage page (PAGE).
  • the key in the target index is the target key
  • its corresponding storage information is the storage information of the target value, that is, the information of the target data storage space in the above-mentioned data storage medium.
  • the writing the target key of the key-value write request into the target index in the index storage medium (S102) includes step S1022.
  • the completion of key-value storage (S103) includes step S1031.
  • the index with the target key is used as the target index, and it is updated (actually, the updated target index can be generated in memory first, and its Write to replace the original target index), such as updating the data in the storage page (PAGE) where the corresponding target index is located, specifically updating the storage information in the target index to the information of the target data storage space in the above-mentioned data storage medium.
  • the value corresponding to the target index before the update (that is, "old data") is useless, so the storage space occupied by the value in the data storage medium can be recovered, for example, the corresponding storage
  • the space is reclassified as free storage space.
  • the key-value storage method provided in the present disclosure further includes step S1041.
  • the target data storage space can be reclaimed. It can be seen that the existing key-value is not affected at all at this time, and subsequent operations can still be performed based on the existing key-value, and no actual operation is performed on the existing key-value at this time.
  • the key-value storage method provided in the present disclosure further includes step S1042.
  • the target value is written, referring to FIG. 6 , if the writing of the target key fails (including the failure to create the target index or the failure to update the target index), it is also only necessary to reclaim the target data storage space. It can be seen that the existing key-value at this time is also completely unaffected, and subsequent operations can still be performed based on the existing key-value, and only one value (data) write operation is performed at this time.
  • the key-value storage method can realize the atomic writing of key-value without using logs, and only need to perform at most two write operations during the operation process without reading Operation, thereby reducing the number of IO operations, improving efficiency, and improving the IO performance of the system.
  • the key-value storage method provided by the present disclosure includes the following three steps.
  • the first step is to determine the storage medium:
  • the storage medium device is divided into an index area (index storage medium) and a data area (data storage medium).
  • the second step is to generate disk space management data in memory:
  • the IO management module reads all indexes into the memory.
  • the index management module processes the index to determine the index set and the storage information corresponding to the index.
  • the disk space management module generates the disk space management data of the data area in the memory according to the index set, and determines the free storage space.
  • Step 3 When a KV (key-value) write request is received, process the KV write request:
  • the disk space management module allocates free storage space (target data storage space) for Value (target value, data).
  • the IO management module writes the data (Value) into the new free storage space allocated above.
  • the index management module searches for an index in the index collection according to the Key (target key).
  • the index management module generates a temporary index (target index) according to the new free storage space and data (Value).
  • the IO management module inserts the temporary index into the index area.
  • the index management module generates a new index (target index) according to the new free storage space and data (Value).
  • the IO management module uses the new index to update the old index.
  • the disk space management module reclaims the storage space occupied by the old data (Value), and the KV write request is successfully processed this time. At this time, KV is updated and data consistency is guaranteed.
  • the key-value storage method provided by the present disclosure includes the following three steps.
  • the first step is to determine the storage medium:
  • the second step is to generate disk space management data in memory:
  • the IO management module reads all indexes into the memory.
  • the index management module processes the index to determine the index set and the storage information corresponding to the index.
  • the disk space management module generates the disk space management data of the data medium in the memory according to the index set, and determines the free storage space.
  • Step 3 When a KV (key-value) write request is received, process the KV write request:
  • the disk space management module allocates free storage space (target data storage space) for Value (target value, data).
  • the IO management module writes the data (Value) into the new free storage space allocated above.
  • the index management module searches for an index in the index collection according to the Key (target key).
  • the index management module generates a temporary index (target index) according to the new free storage space and data (Value).
  • the IO management module inserts the temporary index into the index medium.
  • the index management module generates a new index (target index) according to the above-mentioned new free storage space and data (Value).
  • the IO management module uses the new index to update the old index.
  • the disk space management module reclaims the storage space occupied by the old data (Value), and the KV write request is successfully processed this time. At this time, KV is updated and data consistency is guaranteed.
  • the key-value storage method provided by the present disclosure includes the following three steps .
  • the first step is to determine the storage medium:
  • the host where the data storage medium is located is connected to the third-party storage system (index storage medium) through a network.
  • the index can be stored in a third-party storage system, and the third-party storage system may not be divided into storage pages at this time.
  • the second step is to generate disk space management data in memory:
  • the disk space management module generates the disk space management data of the data storage medium in the memory according to the index set, and determines the free storage space.
  • Step 3 When a KV (key-value) write request is received, process the KV write request:
  • the disk space management module allocates free storage space (target data storage space) for Value (target value, data).
  • the IO management module writes the data (Value) into the new free storage space allocated above.
  • (2a-1) Find the index corresponding to the Key (key) from the third-party storage system.
  • the index management module generates a temporary index (target index) according to the new free storage space and data (Value).
  • the index management module generates a new index (target index) according to the new free storage space and data (Value).
  • the disk space management module reclaims the storage space occupied by the old data (Value), and the KV write request is successfully processed this time. At this time, KV is updated and data consistency is guaranteed.
  • an embodiment of the present disclosure provides a key-value storage device, including a data storage medium, an index storage medium, at least one memory, and at least one processor; the memory stores information that can be executed by the processor.
  • a computer program when the computer program is executed by a processor, implements the key-value storage method provided by the present disclosure.
  • the key-value storage device includes a memory and a processor, and a computer program that can realize the above method of key-value storage is stored in the memory, so the memory and the processor can control the above method and store the key-value to data storage media and index storage media.
  • a processor is a device with data processing capabilities, including but not limited to a central processing unit (CPU), etc.
  • a memory is a device with data storage capabilities, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.) , read-only memory (ROM), electrified erasable programmable read-only memory (EEPROM), flash memory (FLASH);
  • the I/O interface read-write interface
  • the processor is connected between the processor and the memory, and can realize the information of the memory and the processor Interaction, including but not limited to data bus (Bus), etc.
  • an embodiment of the present disclosure provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the key-value storage method provided by the present disclosure is implemented.
  • the computer readable storage medium stores a computer program capable of realizing the above key-value storage method.
  • the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be composed of several physical components. Components cooperate to execute.
  • Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit (CPU), digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, Such as application specific integrated circuits.
  • a processor such as a central processing unit (CPU), digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, Such as application specific integrated circuits.
  • Such software may be distributed on computer readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media).
  • computer storage media includes both volatile and nonvolatile media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. permanent, removable and non-removable media.
  • Computer storage media include but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (FLASH) or other disk storage ; compact disc read-only (CD-ROM), digital versatile disc (DVD) or other optical disk storage; magnetic cartridge, magnetic tape, magnetic disk storage or other magnetic storage; any other that can be used to store desired information and that can be accessed by a computer medium.
  • communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Landscapes

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

Abstract

本公开提供了一种键-值存储的方法,包括:响应于键-值写入请求,从数据存储介质的空闲存储空间中确定出目标数据存储空间,将所述键-值写入请求的目标值写入所述目标数据存储空间;响应于所述目标值写入成功,将所述键-值写入请求的目标键写入索引存储介质内的目标索引中;所述索引存储介质中每个索引包括键、以及该键对应的值在所述数据存储介质中的存储信息;以及响应于所述目标键写入成功,完成键-值存储。本公开还提供了一种键-值存储的设备、一种计算机可读存储介质。

Description

键-值存储的方法和设备、计算机可读存储介质
相关申请的交叉引用
本申请要求于2021年11月5日提交的中国专利申请NO.202111305206.1的优先权,该中国专利申请的内容通过引用的方式整体合并于此。
技术领域
本公开涉及存储技术领域,特别涉及键-值存储的方法、键-值存储的设备、计算机可读存储介质。
背景技术
在键-值(KV,Key-Value)存储中,要求实现“原子写(Atomic Writes)”,即,新数据若被完整写入(存储)则成功,并替换旧数据,若没能完整写入则失败,此时需完全恢复至旧数据,而不允许出现新数据和旧数据混杂(即新数据部分写入)的情况。
为保证新数据完整写入失败时能恢复至旧数据,需要设置事务(Transaction)日志,在新数据写入过程中起到临时记录作用,但这种方式导致在写入过程中需尽量多地进行多次不必要的读写(IO)操作,降低了效率和系统的IO性能。
公开内容
第一方面,本公开实施例提供一种键-值存储的方法,包括:
响应于键-值写入请求,从数据存储介质的空闲存储空间中确定出目标数据存储空间,将所述键-值写入请求的目标值写入所述目标数据存储空间;
响应于所述目标值写入成功,将所述键-值写入请求的目标键写入索引存储介质内的目标索引中;所述索引存储介质中每个索引包括 键、以及该键对应的值在所述数据存储介质中的存储信息;以及
响应于所述目标键写入成功,完成键-值存储。
第二方面,本公开实施例提供一种键-值存储的设备,包括数据存储介质、索引存储介质、至少一个存储器、以及至少一个处理器;所述存储器存储有能被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时实现上述的键-值存储的方法。
第三方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的键-值存储的方法。
附图说明
在本公开实施例的附图中:
图1为本公开实施例提供的一种键-值存储的方法的流程图;
图2为执行本公开实施例提供的键-值存储的方法的各步骤的各模块间的数据传输示意图;
图3为本公开实施例中的索引存储介质和数据存储介质的关系示意图;
图4为本公开实施例中的索引存储介质和数据存储介质的关系示意图;
图5为本公开实施例中的索引存储介质和数据存储介质的关系示意图;
图6为本公开实施例提供的键-值存储的方法的逻辑过程示意图;
图7为本公开实施例提供的一种键-值存储的设备的组成框图;以及
图8为本公开实施例提供的一种计算机可读存储介质的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开实施例提供的键-值存储的方法和键-值存储的设备、 计算机可读存储介质进行详细描述。
在下文中将参考附图更充分地描述本公开,但是所示的实施例可以以不同形式来体现,且本公开不应当被解释为限于以下阐述的实施例。提供这些实施例的目的在于使本公开更加透彻和完整,并使本领域技术人员充分理解本公开的范围。
本公开实施例的附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与详细实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见。
本公开可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
本公开所使用的术语仅用于描述特定实施例,且不限制本公开。如本公开所使用的术语“和/或”包括一个或多个相关列举条目的任何和所有组合。如本公开所使用的单数形式“一个”和“该”也包括复数形式,除非上下文另外清楚指出。如本公开所使用的术语“包括”、“由……制成”,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本公开所用的所有术语(包括技术术语和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
本公开不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是限制性的。
在一些相关技术中,可采用事务(Transaction)日志实现原子写。
例如,当采用UNDO(回滚)日志技术时,写入操作可包括步骤(11)至(15)。
(11)根据索引找到旧数据。
(12)读取旧数据。
(13)根据旧数据构造UNDO日志。
(14)写入UNDO日志。
(15)在旧数据位置写入新数据:
(15a)写入成功时,删除UNDO日志;
(15b)写入失败时,读取UNDO日志,从中获取旧数据,并将旧数据重新写入后删除UNDO日志。
从上述过程可以看出,采用UNDO日志技术进行写入操作时,写入成功时需要1次读取、3次写入,而写入失败时至少需要2次读取、4次写入,从而增加了IO次数、降低了系统IO性能。
再如,当采用REDO(重做)日志或预写日志(WAL,Write Ahead Log)技术时,写入操作可包括步骤(21)至(23)。
(21)以新数据构造REDO日志。
(22)写入REDO日志。
(23)在旧数据位置写入新数据:
(23a)写入成功时,删除REDO日志;
(23b)写入失败时,读取REDO日志,从中获取新数据,并将新数据重新写入直至成功,之后删除REDO日志。
从上述过程可以看出,采用REDO日志技术写入成功时需要3次写入,写入失败时至少需要1次读取、4次写入,从而增加了IO次数、降低了系统IO性能。
第一方面,本公开实施例提供一种键-值存储的方法。
本公开提供的键-值存储的方法用于实现键-值(KV,Key-Value)存储,尤其用于实现键-值存储中的“写入”操作。
键-值存储是指以相互对应的“键(Key)”和“值(Value)”的形式存储的数据,值为需要使用的实际数据,而键存储在索引(Index)中,且索引中还包括该键对应的值的存储信息,例如是对 应的值的存储地址和数据长度。
参照图1,本公开实施例的键-值存储的方法包括步骤S101至S103。
S101、响应于键-值写入请求,从数据存储介质的空闲存储空间中确定出目标数据存储空间,将键-值写入请求的目标值写入目标数据存储空间。
当系统接收到键-值(KV)写入请求时,先从数据存储介质中空闲的存储空间中,确定出部分存储空间为目标数据存储空间,将键-值写入请求的目标值(Value,即实际的数据)写入该目标数据存储空间中。
S102、响应于目标值写入成功,将键-值写入请求的目标键写入索引存储介质内的目标索引中。
索引存储介质中每个索引包括键、以及该键对应的值在数据存储介质中的存储信息。
如果目标值写入成功,则将键-值写入请求的目标键(Key)写入到索引存储介质中对应的目标索引(Index)中。
由于索引存储介质中每个索引包括键、以及键对应的值的存储信息,故写入完成后,该目标索引中应包括目标键,以及目标键对应的目标值在数据存储介质中的存储信息,也就是以上目标数据存储空间的存储信息(如目标数据存储空间的起始地址和数据长度)。
S103、响应于目标键写入成功,完成键-值存储。
若目标键成功写入到目标索引中,则写入成功,键-值存储完成,即,目标索引(包括目标键)存储在索引存储介质内,而目标索引指向数据存储介质的目标数据存储空间中的目标值。
参照图2,本公开提供的键-值存储的方法可在键-值存储的设备中进行,而具体执行各步骤的可为设备中相应的模块,例如读写(IO)操作可由IO管理模块进行,而索引(键)的处理可由索引管理模块进行,值(数据)的处理可由磁盘空间管理模块进行;而写入操作可以是将数据写入到数据存储介质和索引存储介质上。
以上各模块可为独立的实体模块,也可为按照功能划分的虚拟 模块。
数据存储介质和索引存储介质是预先确定的两个相对独立的存储区,分别配置为存储值(数据)和键(索引)。
例如,参照图3,数据存储介质和索引存储介质可以是同一个存储介质器件中的不同逻辑分区。
或者,也可参照图4,数据存储介质和索引存储介质也可以是两个独立的存储介质器件。
或者,也可参照图5,数据存储介质可为一个存储介质器件(如主机),而索引存储介质可为通过网络等与主机通信连接的第三方存储系统,如云系统。
不论数据存储介质和索引存储介质的具体形式如何,其都需要在执行S101步骤前已确定的,故本公提出的键-值存储的方法中还可包括确定数据存储介质和索引存储介质的步骤,例如预先划分(如逻辑分区)出数据存储介质和索引存储介质,或是预先设定数据存储介质和索引存储介质。
本公开提出的键-值存储的方法中,先将新的值(新数据)写入数据存储介质的空闲存储空间(动态产生)中,故该写入不影响之前的旧数据(旧的值),而且需要插入的索引也可在内存中动态生成,故避免了写数据的同时还要更新空间管理元数据的问题,且写入即使不成功也可返回使用之前的键-值,而不会产生“数据丢失”的情况;即本公开提供的键-值存储的方法可在不使用“日志”的情况下,以“非事务”的方式实现事务性的原子写。
而且,本公开提供的键-值存储的方法中,最多只要进行两次写入(写入新的值、写入新的键)操作即可,故需进行的IO操作次数少,可提高效率和系统的IO性能。
在一些实施方式中,索引存储介质为原子写存储介质。
在上述实施方式中,为保证索引的“原子写”特性,故其对应的索引存储介质可就是原子写存储介质,即索引存储介质本身的特性就保证其能支持特定大小数据的原子写,例如支持4KB(KiloByte,千字节)数据的原子写。
原子写存储介质的具体形式是多样的,例如为NVMe SSD(Non-Volatile Memory express Solid State Disk,非易失固态硬盘)等,在此不再详细描述。
在一些实施方式中,在所述将键-值写入请求的目标键写入索引存储介质内的目标索引中(S102)之前,所述键-值存储的方法还包括步骤S1001。
S1001、将索引存储介质划分为多个存储页。
每个存储页为一个原子写存储单元,且每个存储页存储量大于单个索引的最大数据量,每个索引存储在一个存储页中,每个存储页存储一个或者多个完整索引。
在上述实施方式中,参照图3、图4,可预先将索引存储介质划分为多个存储页(PAGE),每个存储页是一个支持原子写的存储区域,且其大小要超过单个索引可能的最大数据量,由此,每个索引可被写入一个对应的存储页中,以保证索引的原子写特性。当然,若存储页的空间足够,则一个存储页中也可写入多个索引。
在一些实施方式中,在所述从数据存储介质的空闲存储空间中确定出目标数据存储空间(S101)之前,所述键-值存储的方法还包括步骤S1002。
S1002、获取索引存储介质中存储的全部索引到内存中,根据获取的索引,在内存中确定出数据存储介质中的空闲存储空间和索引存储介质中的空闲索引。
在上述实施方式中,在写入数据(目标值)前,可预先将索引存储介质中已有的全部索引获取至内存(如DRAM内存)中,并根据这些索引确定出数据存储介质中哪些存储空间已被使用,哪些存储空间仍然空闲,从而在内存中得出空闲存储空间,进行存储空间管理;另外,也可在内存中确定出索引存储介质中的空闲索引,进行索引管理。
例如,参照图2,可在初始化(如设备开机)时,由IO管理模块将索引存储介质中全部索引都读取到内存(如DRAM内存),由索引管理模块在内存中进行处理,确定出索引集合和索引对应的存储信 息,并由磁盘空间管理模块根据索引集合在内存中生成数据存储介质的磁盘空间管理数据,即,确定数据存储介质中对应索引的部分为已使用的存储空间,剩余部分为空闲存储空间;以及确定出相应的空闲索引。
由此,以上空闲存储空间和空闲索引均可在内存中被管理,避免持久化,进而不必在存储空间和索引的分配和回收过程中使用日志。
在一些实施方式中,所述将键-值写入请求的目标键写入索引存储介质内的目标索引中(S102)包括步骤S1021。
S1021、若索引存储介质内不存在具有目标键的索引,则新建目标索引,并将目标键写入目标索引中。
在上述实施方式中,参照图6,当现有索引中不存在目标键时,则表明待写入的键-值是“新增(或新插入)”的,需要为其“新建”目标索引。
为此,目标值写入成功后,可在已有的所有索引中查找目标键,若未找到,则新建(如在内存中新建)目标索引(当然其包括目标键),并将目标索引写入(插入)索引存储介质中,例如是在一个新的存储页(PAGE)中写入目标索引。
当然,目标索引中的键为目标键,其对应的存储信息为目标值的存储信息,即上述数据存储介质中目标数据存储空间的信息。
在一些实施方式中,所述将键-值写入请求的目标键写入索引存储介质内的目标索引中(S102)包括步骤S1022。
S1022、若索引存储介质内已存在具有目标键的索引,则以具有目标键的索引为目标索引,并更新目标索引。
在一些实施方式中,所述完成键-值存储(S103)包括步骤S1031。
S1031、回收更新前的目标索引对应的值在数据存储介质中占据的存储空间。
在上述实施方式中,参照图6,若某个现有索引中的键就等于目标键,则表明待写入的键-值是“现有”的,故此时的键-值写入请求实际上是“更新”已有键-值,更具体是“更新”已有键-值中的值(数据),同时,当更新的值(数据)的存储位置发生变化时,索引中的 存储信息也要相应变化。
为此,当在已有的所有索引中查找到目标键时,就以该具有目标键的索引作为目标索引,并对其进行更新(实际可先在内存中生成更新的目标索引,并将其写入以替换原目标索引),如更新相应目标索引所在存储页(PAGE)中的数据,具体是将目标索引中的存储信息更新为上述数据存储介质中目标数据存储空间的信息。
相应的,目标索引更新完成后,更新前的目标索引对应的值(即“旧数据”)已经没用了,故可回收该值在数据存储介质中占据的存储空间,例如,可将相应存储空间重新归入空闲存储空间。
在一些实施方式中,本公开提供的键-值存储的方法还包括步骤S1041。
S1041、响应于目标值写入失败,回收目标数据存储空间。
在上述实施方式中,参照图6,当以上目标值写入失败时,例如目标值因某些原因没能成功写入目标数据存储空间时,则可回收目标数据存储空间。可见,此时现有的键-值完全不受影响,后续仍可以现有键-值为准进行操作,且此时并未对现有键-值进行任何实际操作。
在一些实施方式中,本公开提供的键-值存储的方法还包括步骤S1042。
S1042、响应于目标键写入失败,回收目标数据存储空间。
在目标值写入后,参照图6,若目标键写入失败(包括新建目标索引失败或更新目标索引失败),则同样只要回收目标数据存储空间即可。可见,此时现有的键-值同样完全不受影响,后续仍可以现有键-值为准进行操作,且此时只进行了一次值(数据)的写入操作。
由此可见,本公开提供的键-值存储的方法可在不利用日志的情况下,实现键-值的原子写,且操作过程中最多只要进行两次写入操作,而不需要进行读取操作,从而减少了IO操作次数,提高了效率,改善了系统的IO性能。
在本公开的一个示例中,参照图3,当索引存储介质和数据存储介质为同一存储介质器件的不同逻辑分区时,本公开提供的键-值存储的方法包括下述三步。
第一步、确定存储介质:
(1)将存储介质器件划分为索引区(索引存储介质)和数据区(数据存储介质)。
(2)将索引区划分为若干个PAGE(存储页),每个存储页(PAGE)的大小为存储介质器件支持的原子写大小,并且一个索引能且只能完整地存储在同一个存储页(PAGE)中。
第二步、在内存中生成磁盘空间管理数据:
(1)初始化时由IO管理模块将全部索引读取到内存。
(2)由索引管理模块处理索引,确定出索引集合和索引对应的存储信息。
(3)由磁盘空间管理模块根据索引集合在内存中生成数据区的磁盘空间管理数据,确定出空闲存储空间。
第三步、接收到KV(键-值)写入请求时,处理KV写入请求:
(1)由磁盘空间管理模块为Value(目标值,数据)分配空闲存储空间(目标数据存储空间)。
(2)由IO管理模块将数据(Value)写入上述分配的新空闲存储空间。
(2a)数据写入成功。
(2a-1)由索引管理模块根据Key(目标键)在索引集合中查找索引。
(2a-1a)若在索引集合中没有找到目标键对应的索引,即应插入KV。
(2a-1a-1)由索引管理模块根据新空闲存储空间和数据(Value)生成临时索引(目标索引)。
(2a-1a-2)由IO管理模块将上述临时索引插入索引区。
(2a-1a-2a)插入上述临时索引成功,本次KV写入请求处理成功。
(2a-1a-2b)插入上述临时索引失败。
(2a-1a-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。 此时,由存储区原子写特性保证上述目标键(Key)对应的索引不生效,已写入的数据(Value)不会被访问到,原子写特性得到保证。
(2a-1b)若在索引集合中找到目标键对应的(旧)索引,即应更新KV。
(2a-1b-1)由索引管理模块根据新空闲存储空间和数据(Value)生成新的索引(目标索引)。
(2a-1b-2)由IO管理模块使用上述新的索引更新旧索引。
(2a-1b-2a)索引更新成功。
(2a-1b-2a-1)由磁盘空间管理模块回收旧数据(Value)占据的存储空间,本次KV写入请求处理成功。此时KV均更新,数据一致性得到保证。
(2a-1b-2b)索引更新失败。
(2a-1b-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,由数据区原子写特性保证旧索引仍正确且有效,KV均未更新,数据一致性得到保证。
(2b)数据(Value)写入失败。
(2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,KV均未更新,数据一致性同样得到保证。
在本公开一个示例中,参照图4,当索引存储介质和数据存储介质为不同存储介质器件时,本公开提供的键-值存储方法包括以下三步。
第一步、确定存储介质:
(1)确定出索引介质(索引存储介质)和数据介质(数据存储 介质)。
(2)将索引介质划分为若干个PAGE(存储页),每个存储页(PAGE)的大小为存储介质器件支持的原子写大小,并且一个索引能且只能完整地存储在同一个存储页(PAGE)中。
第二步、在内存中生成磁盘空间管理数据:
(1)初始化时由IO管理模块将全部索引读取到内存。
(2)由索引管理模块处理索引,确定出索引集合和索引对应的存储信息。
(3)由磁盘空间管理模块根据索引集合在内存中生成数据介质的磁盘空间管理数据,确定出空闲存储空间。
第三步、接收到KV(键-值)写入请求时,处理KV写入请求:
(1)由磁盘空间管理模块为Value(目标值,数据)分配空闲存储空间(目标数据存储空间)。
(2)由IO管理模块将数据(Value)写入上述分配的新空闲存储空间。
(2a)数据写入成功。
(2a-1)由索引管理模块根据Key(目标键)在索引集合中查找索引。
(2a-1a)若在索引集合中没有找到目标键对应的索引,即应插入KV。
(2a-1a-1)由索引管理模块根据新空闲存储空间和数据(Value)生成临时索引(目标索引)。
(2a-1a-2)由IO管理模块将上述临时索引插入索引介质。
(2a-1a-2a)插入上述临时索引成功,本次KV写入请求处理成功。
(2a-1a-2b)插入上述临时索引失败。
(2a-1a-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,由存储介质原子写特性保证上述目 标键(Key)对应的索引不生效,已写入的数据(Value)不会被访问到,原子写特性得到保证。
(2a-1b)若在索引集合中找到目标键对应的(旧)索引,即应更新KV。
(2a-1b-1)由索引管理模块根据上述新空闲存储空间和数据(Value)生成新的索引(目标索引)。
(2a-1b-2)由IO管理模块使用上述新的索引更新旧索引。
(2a-1b-2a)索引更新成功。
(2a-1b-2a-1)由磁盘空间管理模块回收旧数据(Value)占据的存储空间,本次KV写入请求处理成功。此时KV均更新,数据一致性得到保证。
(2a-1b-2b)索引更新失败。
(2a-1b-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,由存储介质原子写特性保证旧索引仍正确且有效,KV均未更新,数据一致性得到保证。
(2b)数据(Value)写入失败。
(2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,KV均未更新,数据一致性同样得到保证。
在本公开的一个示例中,参照图5,当索引存储介质为第三方存储系统,而数据存储介质为存储介质器件(如主机)时,本公开提供的键-值存储的方法包括以下三步。
第一步、确定存储介质:
(1)数据存储介质所在主机与第三方存储系统(索引存储介质)通过网络链接。
(2)索引可存储在第三方存储系统中,此时可不对第三方存储系统进行存储页划分。
第二步、在内存中生成磁盘空间管理数据:
(1)初始化时从第三方存储系统获取索引集合。
(2)由磁盘空间管理模块根据索引集合在内存中生成数据存储介质的磁盘空间管理数据,确定出空闲存储空间。
第三步、接收到KV(键-值)写入请求时,处理KV写入请求:
(1)由磁盘空间管理模块为Value(目标值,数据)分配空闲存储空间(目标数据存储空间)。
(2)由IO管理模块将数据(Value)写入上述分配的新空闲存储空间。
(2a)数据写入成功。
(2a-1)从第三方存储系统查找Key(键)对应的索引。
(2a-1a)若从第三方存储系统中没有找到目标键对应的索引,即应插入KV。
(2a-1a-1)由索引管理模块根据新空闲存储空间和数据(Value)生成临时索引(目标索引)。
(2a-1a-2)向第三方存储系统插入上述临时索引。
(2a-1a-2a)插入上述临时索引成功,本次KV写入请求处理成功。
(2a-1a-2b)插入上述临时索引失败。
(2a-1a-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,由数据存储介质原子写特性保证上述目标键(Key)的索引不生效,已写入的数据(Value)不会被访问到,原子写特性得到保证。
(2a-1b)若从第三方存储系统中找到目标键对应的(旧)索引,即应更新KV。
(2a-1b-1)由索引管理模块根据新空闲存储空间和数 据(Value)生成新的索引(目标索引)。
(2a-1b-2)向第三方存储系统更新该新的索引。
(2a-1b-2a)索引更新成功。
(2a-1b-2a-1)由磁盘空间管理模块回收旧数据(Value)占据的存储空间,本次KV写入请求处理成功。此时KV均更新,数据一致性得到保证。
(2a-1b-2b)索引更新失败。
(2a-1b-2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,由存储介质原子写特性保证旧索引仍正确且有效,KV均未更新,数据一致性得到保证。
(2b)数据(Value)写入失败。
(2b-1)由磁盘空间管理模块回收上述新空闲存储空间,本次KV写入请求处理失败。此时,KV均未更新,数据一致性同样得到保证。
第二方面,参照图7,本公开实施例提供一种键-值存储的设备,包括数据存储介质、索引存储介质、至少一个存储器、以及至少一个处理器;存储器存储有能被处理器执行的计算机程序,计算机程序被处理器执行时实现本公开提供的键-值存储的方法。
本公开提供的键-值存储的设备中包括存储器和处理器,存储器中存储有能实现以上键-值存储的方法的计算机程序,故存储器和处理器能控制进行以上方法,将键-值存储到数据存储介质和索引存储介质中。
处理器为具有数据处理能力的器件,包括但不限于中央处理器(CPU)等;存储器为具有数据存储能力的器件,包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)连接在处理器与存储器间,能实现存储器与处理器的信 息交互,包括但不限于数据总线(Bus)等。
第三方面,参照图8,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开提供的键-值存储的方法。
本公开提供的计算机可读存储介质中,存储有能实现以上键-值存储的方法的计算机程序。
本领域普通技术人员可以理解,上文中所公开的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。
某些物理组件或所有物理组件可以被实施为由处理器(如中央处理器(CPU)、数字信号处理器或微处理器)执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH)或其它磁盘存储器;只读光盘(CD-ROM)、数字多功能盘(DVD)或其它光盘存储器;磁盒、磁带、磁盘存储或其它磁存储器;可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本公开已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目 的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则与特定实施例相结合描述的特征、特性和/或元素可单独使用,或可与结合其它实施例描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (10)

  1. 一种键-值存储的方法,包括:
    响应于键-值写入请求,从数据存储介质的空闲存储空间中确定出目标数据存储空间,将所述键-值写入请求的目标值写入所述目标数据存储空间;
    响应于所述目标值写入成功,将所述键-值写入请求的目标键写入索引存储介质内的目标索引中;所述索引存储介质中每个索引包括键、以及该键对应的值在所述数据存储介质中的存储信息;以及
    响应于所述目标键写入成功,完成键-值存储。
  2. 根据权利要求1所述的方法,还包括:
    在所述从数据存储介质的空闲存储空间中确定出目标数据存储空间之前,获取所述索引存储介质中存储的全部索引到内存中,根据获取的索引,在内存中确定出所述数据存储介质中的空闲存储空间和所述索引存储介质中的空闲索引。
  3. 根据权利要求1所述的方法,其中,所述将所述键-值写入请求的目标键写入索引存储介质内的目标索引中包括:
    若所述索引存储介质内不存在具有所述目标键的索引,则新建目标索引,并将所述目标键写入目标索引中。
  4. 根据权利要求1所述的方法,其中,
    所述将所述键-值写入请求的目标键写入索引存储介质内的目标索引中包括:若所述索引存储介质内已存在具有所述目标键的索引,则以具有所述目标键的索引为目标索引,并更新所述目标索引;
    所述完成键-值存储包括:回收更新前的所述目标索引对应的值在所述数据存储介质中占据的存储空间。
  5. 根据权利要求1所述的方法,还包括:
    响应于所述目标值写入失败,回收所述目标数据存储空间。
  6. 根据权利要求1所述的方法,还包括:
    响应于所述目标键写入失败,回收所述目标数据存储空间。
  7. 根据权利要求1所述的方法,其中,
    所述索引存储介质为原子写存储介质。
  8. 根据权利要求7所述的方法,还包括:
    在所述将所述键-值写入请求的目标键写入索引存储介质内的目标索引中之前,将所述索引存储介质划分为多个存储页;每个所述存储页为一个原子写存储单元,且每个所述存储页的存储量大于单个索引的最大数据量,每个所述索引存储在一个存储页中,每个所述存储页存储至少一个完整索引。
  9. 一种键-值存储的设备,包括数据存储介质、索引存储介质、至少一个存储器、以及至少一个处理器;所述存储器存储有能被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时实现权利要求1至8中任意一项所述的键-值存储的方法。
  10. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8中任意一项所述的键-值存储的方法。
PCT/CN2022/129845 2021-11-05 2022-11-04 键-值存储的方法和设备、计算机可读存储介质 WO2023078388A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111305206.1 2021-11-05
CN202111305206.1A CN116089415A (zh) 2021-11-05 2021-11-05 键-值存储的方法和设备、计算机可读介质

Publications (1)

Publication Number Publication Date
WO2023078388A1 true WO2023078388A1 (zh) 2023-05-11

Family

ID=86185475

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/129845 WO2023078388A1 (zh) 2021-11-05 2022-11-04 键-值存储的方法和设备、计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN116089415A (zh)
WO (1) WO2023078388A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559027A (zh) * 2013-10-22 2014-02-05 北京航空航天大学 一种key与value分开存储的key-value存储系统设计方法
US20150331619A1 (en) * 2012-12-14 2015-11-19 Tencent Technology (Shenzhen) Company Limited Data storage method and apparatus
CN107967122A (zh) * 2017-11-22 2018-04-27 郑州云海信息技术有限公司 一种块设备的数据写入方法、装置及介质
CN109800336A (zh) * 2019-01-30 2019-05-24 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
CN113495847A (zh) * 2020-04-04 2021-10-12 厦门网宿有限公司 一种存储空间回收方法、系统及计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150331619A1 (en) * 2012-12-14 2015-11-19 Tencent Technology (Shenzhen) Company Limited Data storage method and apparatus
CN103559027A (zh) * 2013-10-22 2014-02-05 北京航空航天大学 一种key与value分开存储的key-value存储系统设计方法
CN107967122A (zh) * 2017-11-22 2018-04-27 郑州云海信息技术有限公司 一种块设备的数据写入方法、装置及介质
CN109800336A (zh) * 2019-01-30 2019-05-24 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
CN113495847A (zh) * 2020-04-04 2021-10-12 厦门网宿有限公司 一种存储空间回收方法、系统及计算机存储介质

Also Published As

Publication number Publication date
CN116089415A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US10983955B2 (en) Data unit cloning in memory-based file systems
US11301379B2 (en) Access request processing method and apparatus, and computer device
US8239648B2 (en) Reclamation of thin provisioned disk storage
US20190278502A1 (en) Memory system and method for controlling nonvolatile memory
KR102275563B1 (ko) 호스트-관리 비휘발성 메모리
US11347417B2 (en) Locking structures in flash memory
US11042453B2 (en) Database journaling method and apparatus
US11030092B2 (en) Access request processing method and apparatus, and computer system
US9307024B2 (en) Efficient storage of small random changes to data on disk
KR20200023757A (ko) 메모리 시스템
US10198352B2 (en) Efficient pointer swizzling for persistent objects
US20220350779A1 (en) File system cloning method and apparatus
CN115309584A (zh) 键值存储故障后的分区存储器装置恢复
US20090112951A1 (en) Apparatus and method of managing files and memory device
WO2016206070A1 (zh) 一种文件更新方法及存储设备
WO2023078388A1 (zh) 键-值存储的方法和设备、计算机可读存储介质
US10452496B2 (en) System and method for managing storage transaction requests
US20200226060A1 (en) In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations
CN111625477B (zh) 访问擦除块的读请求的处理方法与装置
CN107562654B (zh) Io命令处理方法与装置
US11662949B2 (en) Storage server, a method of operating the same storage server and a data center including the same storage server
CN113656396A (zh) 非统一内存访问架构下的持久性内存索引构建方法
WO2023050991A1 (zh) 数据缓存方法及装置、合并存储设备、数据缓存系统、电子设备和计算机可读存储介质
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory
US10740015B2 (en) Optimized management of file system metadata within solid state storage devices (SSDs)

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22889409

Country of ref document: EP

Kind code of ref document: A1