CN111581451A - Update and query of distributed KV storage system - Google Patents

Update and query of distributed KV storage system Download PDF

Info

Publication number
CN111581451A
CN111581451A CN201910247686.7A CN201910247686A CN111581451A CN 111581451 A CN111581451 A CN 111581451A CN 201910247686 A CN201910247686 A CN 201910247686A CN 111581451 A CN111581451 A CN 111581451A
Authority
CN
China
Prior art keywords
storage device
server
command
storage
present application
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
CN201910247686.7A
Other languages
Chinese (zh)
Other versions
CN111581451B (en
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.)
Beijing Starblaze Technology Co ltd
Original Assignee
Beijing Starblaze Technology 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 Beijing Starblaze Technology Co ltd filed Critical Beijing Starblaze Technology Co ltd
Priority to CN201910247686.7A priority Critical patent/CN111581451B/en
Priority to CN202110795285.2A priority patent/CN113535851A/en
Publication of CN111581451A publication Critical patent/CN111581451A/en
Application granted granted Critical
Publication of CN111581451B publication Critical patent/CN111581451B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

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

Abstract

The application discloses a distributed KV storage system and a method for updating and inquiring commands by using the distributed KV storage system, and relates to the technical field of storage equipment. The distributed KV storage system comprises a server and a plurality of storage devices, wherein the server is coupled with the storage devices through a network; the storage device includes a K-D table for recording one or more keys to which the storage devices of the storage system are capable of responding.

Description

Update and query of distributed KV storage system
Technical Field
The present application relates to distributed KV storage systems, and more particularly, to a method and apparatus for implementing updates and queries in a distributed KV storage system.
Background
FIG. 1A illustrates a block diagram of a storage device. The storage device 102 is coupled to a host for providing storage capabilities to the host. The host and the storage device 102 may be coupled by various methods, including but not limited to, connecting the host and the storage device 102 by, for example, SATA (Serial Advanced Technology Attachment), SCSI (Small computer system Interface), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), USB (Universal Serial Bus), PCIE (Peripheral Component Interconnect Express, PCIE, high speed Peripheral Component Interconnect), NVMe (NVM Express, high speed nonvolatile storage), ethernet, fibre channel, wireless communication network, etc. The host may be an information processing device, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, etc., capable of communicating with the storage device in the manner described above. The Memory device 102 includes an interface 103, a control section 104, one or more NVM chips 105, and a DRAM (dynamic random Access Memory) 110.
NAND flash Memory, phase change Memory, FeRAM (Ferroelectric RAM), MRAM (magnetoresistive Memory), RRAM (Resistive Random Access Memory), etc. are common NVM.
The interface 103 may be adapted to exchange data with a host by means such as SATA, IDE, USB, PCIE, NVMe, SAS, ethernet, fibre channel, etc.
The control unit 104 is used to control data transfer between the interface 103, the NVM chip 105, and the DRAM 110, and also used for memory management, host logical address to flash physical address mapping, erase leveling, bad block management, and the like. The control component 104 can be implemented in various manners of software, hardware, firmware, or a combination thereof, for example, the control component 104 can be in the form of an FPGA (Field-programmable gate array), an ASIC (Application-specific integrated Circuit), or a combination thereof. The control component 104 may also include a processor or controller in which software is executed to manipulate the hardware of the control component 104 to process IO (Input/Output) commands. The control component 104 may also be coupled to the DRAM 110 and may access data of the DRAM 110. FTL tables and/or cached IO command data may be stored in the DRAM.
Control section 104 includes a flash interface controller (or referred to as a media interface controller, a flash channel controller) that is coupled to NVM chip 105 and issues commands to NVM chip 105 in a manner that conforms to an interface protocol of NVM chip 105 to operate NVM chip 105 and receive command execution results output from NVM chip 105. Known NVM chip interface protocols include "Toggle", "ONFI", etc.
A storage device supporting a Key-Value (Key-Value, also referred to as "KV") storage model provides Key (Key) -based read (get) and write (Put) operations. The write operation is also referred to as an update operation. To perform a write operation, the host provides a Key (Key) and a Value (Value) to the storage device to write the Value to the storage device and to index the Key into the written data. To perform a read operation, the host provides a key to the storage device, and the storage device finds a corresponding value based on the key and provides the value to the host. Thus in a KV memory system, the key is the index used to access the data, and the Value is the data being accessed. The keywords (keys) correspond to the values (V) one to one.
Fig. 1B shows a schematic diagram of an address translation system for a KV memory device of the prior art. The Address translation system (also referred to as FTL table) of the KV storage device provides a mapping from the key (K) to a logical Address or a physical Address (e.g., PPA, physical page Address). And responding to the acquired key word (K), and using the key word (K) as an index to query the FTL table to obtain a corresponding logical address or physical address.
KV storage devices or distributed storage systems utilizing KV storage devices are provided in chinese patent applications having application numbers 201711392529.2, 201711474660.3, 201810332295.0, 201810286955.6, and 201810286986.1.
Disclosure of Invention
According to a first aspect of the present application, there is provided a first distributed KV storage system according to the first aspect of the present application, comprising a server and a plurality of storage devices, the server and the storage devices being coupled through a network; the storage device includes a K-D table for recording one or more keys to which the storage devices of the storage system are capable of responding.
A first distributed KV storage system according to the first aspect of the present application provides a second distributed KV storage system according to the first aspect of the present application, the K-D tables of the respective storage devices being identical.
According to the first or second distributed KV storage system of the first aspect of the present application, there is provided a third distributed KV storage system of the first aspect of the present application, wherein each row of the K-D table records a storage device ID of each storage device and a corresponding key list, and the key list includes one or more keys.
A third distributed KV storage system according to the first aspect of the present application provides a fourth distributed KV storage system according to the first aspect of the present application, the key comprising one or more attributes.
According to one of the first to fourth distributed KV storage systems of the first aspect of the present application, there is provided a fifth distributed KV storage system of the first aspect of the present application, wherein the attribute includes one or more of time of generating a picture/video, a camera identification of acquiring the picture/video, an object class appearing in the picture/video, and an attribute related to the object class; thumbnail, snapshot, and/or address storing original picture/video as a value corresponding to a keyword.
According to one of the first to fifth distributed KV storage systems of the first aspect of the present application, there is provided a sixth distributed KV storage system of the first aspect of the present application, wherein each row of the K-D table further records time, a camera ID of acquiring a corresponding picture/video, and a working state of the storage device.
According to one of the first to sixth distributed KV storage systems of the first aspect of the present application, there is provided a seventh distributed KV storage system according to the first aspect of the present application, the server accessing the storage devices by broadcasting a command to a network.
According to one of the first to seventh distributed KV storage systems of the first aspect of the present application, there is provided an eighth distributed KV storage system of the first aspect of the present application, the server using an update command to insert a < key, value > pair into one or more storage devices in the distributed storage system.
According to one of the first to eighth distributed KV storage systems of the first aspect of the present application, there is provided the ninth distributed KV storage system of the first aspect of the present application, wherein the server uses the query command to obtain the value corresponding to the keyword.
According to one of the first to ninth distributed KV storage systems of the first aspect of the present application, there is provided the tenth distributed KV storage system of the first aspect of the present application, the server further comprising a storage space accessible by each storage device: one or more shared memories such that each storage device accesses the shared memory to apply to the server for processing the received command.
According to one of the first to tenth distributed KV storage systems of the first aspect of the present application, there is provided the eleventh distributed KV storage system of the first aspect of the present application, wherein the storage device receives a keyword associated with the update command broadcast from the network, and queries its own K-D table using the keyword to be updated.
According to an eleventh distributed KV storage system according to the first aspect of the present application, there is provided the twelfth distributed KV storage system according to the first aspect of the present application, which, in response to storing the keyword to be updated by itself, indicates to the server that it is capable of processing the update command corresponding to the keyword to be updated by itself.
According to an eleventh or twelfth distributed KV storage system of the first aspect of the present application, there is provided the thirteenth distributed KV storage system of the first aspect of the present application, wherein the storage device writes its own storage device ID to the first shared memory of the server to indicate to the server that it is capable of processing an update command corresponding to the key to be updated.
According to a thirteenth distributed KV storage system of the first aspect of the present application, there is provided the fourteenth distributed KV storage system of the first aspect of the present application, wherein each storage device competes for the right of use of the first shared memory, and the storage device that obtains the right of use of the first shared memory writes its own storage device ID into the first shared memory.
According to a fourteenth distributed KV storage system of the first aspect of the present application, there is provided the fifteenth distributed KV storage system of the first aspect of the present application, wherein the first shared memory temporarily stores the ID of the storage device that failed in the contention, as a substitute when the storage device that succeeded in the contention fails.
According to one of the eleventh to fifteenth distributed KV storage systems of the first aspect of the present application, there is provided the sixteenth distributed KV storage system of the first aspect of the present application, in response to identifying that it does not store the key to be updated by itself, the storage device does not attempt to update the first shared memory.
According to one of the eleventh to sixteenth distributed KV storage systems according to the first aspect of the present application, there is provided the seventeenth distributed KV storage system according to the first aspect of the present application, in response to identifying that it does not store the keyword to be updated by itself but has a capability of recording the keyword to be updated, the storage device also competes for the usage right of the first shared memory.
A seventeenth distributed KV storage system according to the first aspect of the present application provides the eighteenth distributed KV storage system according to the first aspect of the present application, wherein if the first storage device has a keyword to be updated recorded therein and the second storage device has a capability of recording the keyword to be updated, the first storage device has a priority over the second storage device in competition for the shared memory.
According to one of the eleventh to eighteenth distributed KV storage systems of the first aspect of the present application, there is provided the nineteenth distributed KV storage system of the first aspect of the present application, wherein the server accesses the first shared memory associated with the update command in response to the first shared memory being updated or after a period of time in which the update command is issued, to identify an ID of a storage device applying for processing the update command.
According to a nineteenth distributed KV storage system according to the first aspect of the present application, there is provided the twentieth distributed KV storage system according to the first aspect of the present application, wherein the server acquires the storage device ID of the first storage device that processes the update command from the first shared memory associated with the update command, and writes the acquired storage device ID to the second shared memory to instruct the first storage device to process the update command.
A twenty-first distributed KV storage system according to the first aspect of the present application is provided, in which all storage devices applying for processing the update command to the server read the second shared memory to identify whether themselves have obtained authorization to process the update command.
According to a twenty-first distributed KV storage system of the first aspect of the present application, there is provided the twenty-second distributed KV storage system of the first aspect of the present application, wherein the storage device reads the second shared memory within a specified time period after writing the storage device ID of the storage device itself into the first shared memory.
According to a twenty-second distributed KV storage system according to the first aspect of the present application, there is provided a twenty-third distributed KV storage system according to the first aspect of the present application, wherein each storage device updates its own K-D table, and records, in its own K-D table, an ID of a storage device associated with a key of the update command.
According to one of the eleventh to twenty-third distributed KV storage systems of the first aspect of the present application, there is provided the twenty-fourth distributed KV storage system of the first aspect of the present application, in which a time when it was last updated, an identification of a camera causing the update, and a state of the storage device are also recorded in association with the storage device ID in the K-D table.
According to one of the eleventh to twenty-fourth distributed KV storage systems of the first aspect of the present application, there is provided the twenty-fifth distributed KV storage system of the first aspect of the present application, wherein in response to the second shared memory being updated, the server further broadcasts the storage device ID recorded in the second shared memory for processing the update command, so that each of the storage devices that have received the broadcast records the broadcasted storage device ID and the key of the update command in its own K-D table.
According to one of the eleventh to twenty-fifth distributed KV storage systems of the first aspect of the present application, there is provided the twenty-sixth distributed KV storage system of the first aspect of the present application, wherein the other storage device that is not authorized to process the update command further indicates, after completing the update of the K-D table, that the update process of the K-D table is completed, and that the association relationship between the ID of the storage device that processes the update command and the keyword associated with the update command has been recorded by itself.
According to one of the first to tenth distributed KV storage systems of the first aspect of the present application, there is provided a twenty-seventh distributed KV storage system according to the first aspect of the present application, which, in response to a storage device receiving a broadcasted keyword associated with an update command, gives a response to a server and indicates in the response whether it is capable of responding to the update command to the server; receiving a storage device selected by the broadcasted server and used for processing the updating command; each storage device updates the K-D table of the storage device; and the storage device selected by the server also records the key indicated by the updating command and the value corresponding to the key.
According to a twenty-seventh distributed KV storage system of the first aspect of the present application, there is provided the twenty-eighth distributed KV storage system of the first aspect of the present application, where the storage device decides what instruction to give to the server according to whether it has a free storage space, a free computing power, and/or whether it contains a keyword to be updated in its K-D table.
According to a twenty-seventh or twenty-eighth distributed KV storage system of the first aspect of the present application, there is provided the twenty-ninth distributed KV storage system of the first aspect of the present application, wherein if the K-D table of the storage device contains a keyword to be updated, but the current load of the storage device is high, the storage device may indicate to the server that it is unable to respond to the update command.
According to one of the twenty-seventh to twenty-ninth distributed KV storage systems according to the first aspect of the present application, there is provided the thirty-ninth distributed KV storage system according to the first aspect of the present application, wherein the server selects one or more storage devices from among the storage devices that have the capability of processing the update command to process the update command, in response to receiving a response to whether it has the capability of processing the update command itself from one, more or all of the storage devices.
According to one of the twenty-seventh to thirty-eighth distributed KV storage systems of the first aspect of the present application, there is provided the thirty-first distributed KV storage system of the first aspect of the present application, wherein after receiving the storage device selected by the broadcasted server to process the update command, each storage device records the ID of the storage device to process the update command and the keyword of the update command in its own K-D table in association.
According to one of the twenty-seventh to thirty-first distributed KV storage systems of the first aspect of the present application, there is provided a thirty-second distributed KV storage system of the first aspect of the present application, wherein the selected storage device indicates to the server that the processing of the update command is completed after completing the update of the own K-D table and the own KV storage device; and the unselected storage equipment indicates the completion of the updating of the self K-D table to the server after the updating of the self K-D table is completed.
According to one of the twenty-seventh to thirty-third distributed KV storage systems of the first aspect of the present application, there is provided the thirty-third distributed KV storage system of the first aspect of the present application, wherein the server updates its K-D table in response to receiving a response of each storage device to record an association of a keyword of the update command with the storage device.
According to one of the twenty-seventh to thirty-fourth distributed KV storage systems of the first aspect of the present application, there is provided the thirty-fourth distributed KV storage system of the first aspect of the present application, wherein the server does not need to wait for receiving responses of all the storage devices and then update its own K-D table, but updates its own K-D table based on the collected responses after a specified period of time in which a message of selecting a storage device is sent out.
According to one of the first to tenth distributed KV storage systems of the first aspect of the present application, there is provided a thirty-fifth distributed KV storage system according to the first aspect of the present application, responsive to the storage device receiving a broadcasted keyword associated with the query command; accessing a K-D table of the user by using a keyword of the query command, and acquiring a storage device ID corresponding to the keyword from the K-D table; responding to the obtained storage equipment ID corresponding to the keyword is the same as the storage equipment ID of the server, and giving a query command hit message to the server; and responding to the received query execution message, and executing the KV query to obtain a value corresponding to the passing keyword.
According to a thirty-fifth distributed KV storage system of the first aspect of the present application, there is provided a thirty-sixth distributed KV storage system of the first aspect of the present application, the storage device transmitting the value to the server.
A thirty-fifth or thirty-sixth distributed KV storage system according to the first aspect of the present application provides the thirty-seventh distributed KV storage system according to the first aspect of the present application, wherein the server further broadcasts, together with the key, a memory address for receiving a value corresponding to the key.
According to one of the thirty-fifth to thirty-seventh distributed KV storage systems of the first aspect of the present application, there is provided the thirty-eighth distributed KV storage system of the first aspect of the present application, wherein if it is found that itself is not a keyword for recording the query command as the KV storage device, a message that the query command is not hit is issued to the server, or a response to the query command is not given to the server.
According to one of the thirty-fifth to thirty-eighth distributed KV storage systems of the first aspect of the present application, there is provided the thirty-ninth distributed KV storage system of the first aspect of the present application, wherein the server issues a query execution message to one, a plurality of or all of the storage devices that responded to the query command hit message, so as to instruct the storage device that received the query execution message to transmit a value corresponding to the keyword of the query command to the server.
According to one of the thirty-fifth to thirty-ninth distributed KV storage systems of the first aspect of the present application, there is provided the forty-th distributed KV storage system of the first aspect of the present application, the query execution message provided by the server further indicating a memory address and/or capacity of the received value.
According to one of the thirty-fifth to forty-fourth distributed KV storage systems of the first aspect of the present application, there is provided the forty-fourth distributed KV storage system of the first aspect of the present application, wherein the storage device provides the server with a value not exceeding the memory capacity indicated by the query execution message.
According to one of the thirty-fifth to forty-fourth distributed KV storage systems of the first aspect of the present application, there is provided a forty-second distributed KV storage system according to the first aspect of the present application, wherein the server refuses to receive the portion exceeding the value of the memory capacity.
According to one of the thirty-fifth to forty-second distributed KV storage systems of the first aspect of the present application, there is provided a forty-third distributed KV storage system of the first aspect of the present application, wherein the server instructs the respective storage devices to provide the values through a plurality of transmissions by the query execution message.
According to one of the thirty-fifth to forty-third distributed KV storage systems of the first aspect of the present application, there is provided a forty-fourth distributed KV storage system of the first aspect of the present application, further transmitting a message indicating that the memory is full to the server in response to the value transmitted to the server having been transmitted by the specified length.
A forty-fourth distributed KV storage system according to the first aspect of the present application provides the forty-fifth distributed KV storage system according to the first aspect of the present application, the server indicating to the storage device that available memory has appeared to cause the storage device to continue to transmit further portions of the value to the server.
According to one of the thirty-fifth to forty-fifth distributed KV storage systems of the first aspect of the present application, there is provided the forty-sixth distributed KV storage system of the first aspect of the present application, further transmitting a message that processing of the query command is completed to the server in response to completion of transmission of the value to the server.
According to a second aspect of the present application, there is provided a first method of processing an update command according to the second aspect of the present application, comprising: receiving a keyword which is broadcasted by a network and is associated with an updating command; indicating to the server that the server is capable of processing an update command corresponding to the keyword to be updated; and responding to the received updating execution message, and recording the key indicated by the updating command and the value corresponding to the key.
According to a second aspect of the present application, there is provided a method of processing an update command according to the second aspect of the present application, in response to storing a keyword to be updated by itself, indicating to a server that the server is capable of processing the update command corresponding to the keyword to be updated by itself.
According to the method for processing the update command of the second aspect of the present application, there is provided a method for processing an update command of the third aspect of the present application, wherein after the update is completed, the completion of the update command processing is indicated to the server.
According to the first method of processing an update command of the second aspect of the present application, there is provided the fourth method of processing an update command of the second aspect of the present application, further updating its own K-D table in response to receiving the update execution message.
According to the first method of processing an update command of the second aspect of the present application, there is provided a fifth method of processing an update command of the second aspect of the present application, which queries its own K-D table using a keyword to be updated to identify that it is capable of processing an update command corresponding to the keyword to be updated.
According to the first method for processing an update command of the second aspect of the present application, there is provided the sixth method for processing an update command of the second aspect of the present application, and the address of the shared memory associated with the key to be updated is also provided to each storage device.
According to one of the methods of processing update commands of the first to sixth aspects of the present application, there is provided the method of processing update commands of the seventh aspect of the present application, writing the storage device ID of itself to the first shared memory of the server to indicate to the server that itself is capable of processing update commands corresponding to the key to be updated.
According to one of the methods of processing an update command of the second aspect of the present application, there is provided the eighth method of processing an update command of the second aspect of the present application, wherein each of the storage devices contends for use right of the first shared memory, and the storage device that obtains the use right of the first shared memory writes its own storage device ID into the first shared memory.
According to a method of processing an update command of the eighth aspect of the present application, there is provided the method of processing an update command of the ninth aspect of the present application, wherein the first shared memory temporarily stores an ID of a storage device for which contention fails, as a substitute when a storage device for which contention succeeds fails.
According to one of the methods of processing an update command of the second aspect of the present application, there is provided the method of processing an update command of the tenth aspect of the present application, in which the storage device does not attempt to update the first shared memory in response to recognizing that it does not store a key to be updated by itself.
According to one of the methods of processing update commands of the first to sixth aspects of the present application, there is provided the method of processing update commands of the eleventh aspect of the present application, wherein in response to recognizing that the storage device itself does not store the keyword to be updated but has the capability of recording the keyword to be updated, the storage device also contends for use of the first shared memory.
According to a twelfth method of processing an update command of the second aspect of the present application, there is provided the method of processing an update command of the second aspect of the present application, wherein if a keyword to be updated is recorded in the first storage device and the second storage device has a capability of recording the keyword to be updated, the first storage device has a priority over the second storage device in contention for the shared memory.
According to one of the methods of processing an update command of the second aspect of the present application, there is provided the method of processing an update command of the thirteenth aspect of the present application, wherein the server accesses the first shared memory associated with the update command in response to the first shared memory being updated or after a period of time in which the update command is issued, to identify an ID of a storage device that applies for processing the update command.
According to a thirteenth method of processing an update command of the second aspect of the present application, there is provided the fourteenth method of processing an update command of the second aspect of the present application, wherein the server acquires the storage device ID of the first storage device that processes the update command from the first shared memory associated with the update command, and writes the acquired storage device ID to the second shared memory to instruct the first storage device to process the update command.
According to a fourteenth method of processing an update command of the second aspect of the present application, there is provided the fifteenth method of processing an update command of the second aspect of the present application, wherein all storage devices applying to a server for processing the update command read the second shared memory to identify whether themselves have obtained authorization to process the update command.
According to a fifteenth method of processing an update command of the second aspect of the present application, there is provided the sixteenth method of processing an update command of the second aspect of the present application, wherein the storage device reads the second shared memory within a specified time period after writing its own storage device ID into the first shared memory.
According to a sixteenth method of processing an update command of the second aspect of the present application, there is provided the seventeenth method of processing an update command of the second aspect of the present application, wherein each of the storage devices updates its own K-D table in which the ID of the storage device associated with the key of the update command is recorded.
According to one of the methods of processing an update command of the second aspect of the present application, there is provided the method of processing an update command of the eighteenth aspect of the present application, in which the time of the last update thereof, the identification of the camera causing the update, the state of the storage device are also recorded in association with the storage device ID in the K-D table.
According to one of the fifteenth to eighteenth methods of processing an update command of the second aspect of the present application, there is provided the nineteenth method of processing an update command of the second aspect of the present application, wherein in response to the second shared memory being updated, the server further broadcasts the storage device ID recorded in the second shared memory for processing the update command, so that each of the storage devices that received the broadcast records the broadcasted storage device ID and the key of the update command in its own K-D table.
According to one of the first to nineteenth methods of processing an update command of the second aspect of the present application, there is provided the method of processing an update command of the twentieth aspect of the present application, wherein the other storage device that is not authorized to process the update command, after completing the update of the K-D table, further indicates to the server that the update process of the K-D table is completed, and that itself has recorded the association relationship between the ID of the storage device that processed the update command and the keyword associated with the update command.
According to a third aspect of the present application, there is provided a method of processing an update command according to the first aspect of the present application, including: receiving a broadcasted keyword associated with the update command; giving a response to the server and indicating in the response to the server whether itself has the ability to respond to the update command; receiving a storage device selected by the broadcasted server and used for processing the updating command; each storage device updates the K-D table of the storage device; and the storage device selected by the server also records the key indicated by the updating command and the value corresponding to the key.
According to the first method for processing an update command of the third aspect of the present application, there is provided the second method for processing an update command of the third aspect of the present application, wherein the storage device decides what instruction to give to the server according to whether the storage device has free storage space, free computing power and/or whether the key to be updated is contained in the K-D table of the storage device.
According to the third aspect of the present invention, there is provided a method for processing an update command, wherein if a K-D table of a storage device contains a key to be updated but the storage device is currently loaded very high, the storage device may indicate to a server that it is not capable of responding to the update command.
According to one of the methods of processing an update command of the third aspect of the present application, there is provided the method of processing an update command of the fourth aspect of the present application, wherein the server selects one or more storage devices from among the storage devices capable of processing the update command to process the update command, in response to receiving a response to whether it is capable of processing the update command from one, more, or all of the storage devices.
According to one of the methods of processing an update command of the third aspect of the present application, there is provided the method of processing an update command of the fifth aspect of the present application, wherein, after receiving a storage device selected by a server for broadcasting and processing the update command, each storage device records an ID of the storage device processing the update command and a key of the update command in association with each other in its own K-D table.
According to one of the methods of processing an update command of the third aspect of the present application, there is provided the method of processing an update command of the sixth aspect of the present application, wherein the selected storage device indicates to the server that the processing of the update command is completed after completing the updating of the own K-D table and the KV storage device of the own; and the unselected storage equipment indicates the completion of the updating of the self K-D table to the server after the updating of the self K-D table is completed.
According to one of the methods of processing an update command of the third aspect of the present application, there is provided the method of processing an update command of the seventh aspect of the present application, wherein the server updates its K-D table in response to receiving a response from each storage device to record an association of a key of the update command with the storage device.
According to one of the methods of processing an update command of the third aspect of the present application, there is provided the method of processing an update command of the eighth aspect of the present application, in which the server does not have to wait for responses of all storage devices to be received and then update its own K-D table, but updates its own K-D table based on the collected responses after a specified period of time in which a message to select a storage device is issued.
According to a fourth aspect of the present application, there is provided a first method for processing a query command according to the fourth aspect of the present application, comprising: receiving broadcasted keywords associated with the query command; accessing a K-D table of the user by using a keyword of the query command, and acquiring a storage device ID corresponding to the keyword from the K-D table; responding to the obtained storage equipment ID corresponding to the keyword is the same as the storage equipment ID of the server, and giving a query command hit message to the server; and responding to the received query execution message, and executing the KV query to obtain a value corresponding to the passing keyword.
The first method of processing a query command according to the fourth aspect of the present application provides the second method of processing a query command according to the fourth aspect of the present application, and transmits the value to the server.
According to a first method of processing a query command of the fourth aspect of the present application, there is provided the third method of processing a query command of the fourth aspect of the present application, wherein the server further broadcasts, together with the keyword, a memory address for receiving a value corresponding to the keyword.
According to one of the first to third methods of processing a query command of the fourth aspect of the present application, there is provided the method of processing a query command of the fourth aspect of the present application, wherein if a keyword that does not record the query command as the KV storage device by itself is found, a message that the query command is not hit is issued to the server, or a response to the query command is not given to the server.
According to one of the first to fourth methods for processing a query command of the fourth aspect of the present application, there is provided a fifth method for processing a query command of the fourth aspect of the present application, in which the server issues a query execution message to one, a plurality of or all of the storage devices that responded to the query command hit message, so as to instruct the storage device that received the query execution message to transmit a value corresponding to the keyword of the query command to the server.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided a method of processing a query command of the sixth aspect of the present application, wherein the query execution message provided by the server further indicates a memory address and/or a capacity of the received value.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided a method of processing a query command of the seventh aspect of the present application, the storage device providing the server with a value not exceeding the memory capacity indicated by the query execution message.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided the method of processing a query command of the eighth aspect of the present application, the server refuses to receive a portion exceeding the value of the memory capacity.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided a method of processing a query command of the ninth aspect of the present application, the server instructing the respective storage devices to provide the values by a plurality of transfers through the query execution message.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided the method of processing a query command of the tenth aspect of the present application, further transmitting a message indicating that the memory is full to the server in response to the value transmitted to the server having transmitted the specified length.
According to a tenth method of processing a query command of the fourth aspect of the present application, there is provided the eleventh method of processing a query command of the fourth aspect of the present application, wherein the server indicates to the storage device that available memory has appeared, so that the storage device continues to transfer other parts of the value to the server.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided the method of processing a query command of the twelfth aspect of the present application, wherein the server aggregates data acquired from one, more or all of the storage devices to which the value is transferred as a result of the query command.
According to one of the methods of processing a query command of the fourth aspect of the present application, there is provided the method of processing a query command of the thirteenth aspect of the present application, further sending a message that the processing of the query command is completed to the server in response to the transmission of the value completion to the server.
According to a fifth aspect of the present application, there is provided a program comprising program code which, when loaded into and executed on a storage device, causes the storage device to perform one of the methods according to the second, third or fourth aspects of the present application.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings can be obtained by those skilled in the art according to the drawings.
FIG. 1A is a block diagram of a prior art storage device;
FIG. 1B is a schematic diagram of a prior art address translation system for a memory device;
FIG. 2A illustrates a schematic diagram of a K-D table according to an embodiment of the present application;
FIG. 2B illustrates a block diagram of a distributed storage system according to an embodiment of the present application;
FIG. 3 illustrates a flow diagram for processing an update command according to an embodiment of the present application;
FIG. 4 illustrates a flow diagram for processing an update command according to yet another embodiment of the present application;
FIG. 5 illustrates a flow diagram for processing a query command according to an embodiment of the present application;
FIG. 6 illustrates a flow diagram for processing a query command according to yet another embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application are clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are some, but not all, embodiments of the present application. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
Taking a storage system applied to video monitoring as an example, attributes of multiple dimensions are generated for pictures or videos collected by a camera and stored. Attributes include, for example, the time the picture/video was generated, the camera identification that the picture/video was captured, the class of objects (e.g., people, animals, vehicles) that appear in the picture/video, attributes related to the class of objects (e.g., age, gender, license plate number, etc.). Thumbnails or snapshots are also generated for the pictures/videos to facilitate the user in quickly resolving the results of the query by browsing the thumbnails or snapshots.
According to the embodiment of the application, the attributes of multiple dimensions and the thumbnail/snapshot are stored as the structured information, so that the distributed storage system provides the function of inquiring the thumbnail/snapshot according to one or more attributes, and optionally or further provides the function of inquiring the acquired original picture/video according to one or more attributes. It is apparent that there may be more thumbnails/snapshots with queried attributes in a query. The attribute is taken as a key (K) and the thumbnail, snapshot, and/or address where the original picture/video is stored is taken as a value (V) corresponding to the key.
FIG. 2A shows a schematic diagram of a K-D table according to an embodiment of the present application.
According to embodiments of the present application, a K-D table is provided for recording the correspondence of attributes to storage devices (e.g., hard disks) indicating which storage device or devices can respond to a query specifying a keyword.
In FIG. 2A, the K-D table is shown in table form, with each row of the table recording a "storage ID" and a key list. The storage device ID is used to indicate the storage device, and the key list includes one or more keys. Each row of the K-D table has a key stored in a certain storage device recorded in association therewith.
Optionally, the storage device is a KV storage device. According to the embodiment of the application, the K-D table is provided besides being used as the KV storage device, and the updating and inquiring functions of the K-D table are provided. Given the teachings of the embodiments of the present application, one of ordinary skill in the art will be readily able to implement or obtain a KV storage device that provides a K-D table that provides two storage capabilities, one being the KV storage device and the other being the querying of the K-D table based on a key and returning a storage device ID.
Optionally, each row of the K-D table also records the time (update time), the camera ID to capture the corresponding picture/video, the operating status of the storage device (readable, full, keyword number up/down, etc.).
FIG. 2B illustrates a block diagram of a distributed storage system according to an embodiment of the present application.
The distributed storage system comprises a server and a plurality of storage devices, and the server and the storage devices are coupled through a network. Each of the storage devices includes a K-D table. The K-D table for each storage device is a K-D table for the entire distributed storage system in which one or more keys to which the storage devices of the distributed storage system can respond are recorded. Optionally, the K-D tables of each storage device are the same.
The server accesses the storage devices by broadcasting commands to the network. The broadcasted command will be received by each of the normally operating storage devices. The server uses an update command to insert a < Key, value V > pair into one or more storage devices in the distributed storage system. The server uses the query command to obtain the value V corresponding to the Key.
Optionally, the server does not know the correspondence between the Key and the storage device, so that for the update command and the query command, the server broadcasts to the whole network, and the storage device capable of processing the update command/query command can receive the command sent by the server.
According to an embodiment of the application, the server further comprises a storage space, e.g. a shared memory, accessible by the storage devices. The server provides shared storage areas A and B for each broadcast updating command, and each storage device of the distributed storage system accesses the shared storage areas A and/or B to apply for processing the received updating command to the server. The storage device accesses the shared Memory a and/or B using, for example, RDMA (Remote Direct Memory Access).
FIG. 3 shows a flow diagram for processing an update command according to an embodiment of the application.
The distributed storage system includes a server and storage apparatuses 1 and 2 coupled to the server through a network. The processing of the update command includes two phases. In the first phase, the server broadcasts a Key (Key) associated with the update command (referred to as the Key to be updated) to the network. Optionally, the server also provides addresses of the storage areas a and/or B associated with the key to be updated to the respective storage devices by broadcasting.
And the storage equipment which receives the keywords to be updated sent by the server queries the K-D table of the storage equipment by using the keywords to be updated so as to identify whether the storage equipment stores the keywords to be updated or not as KV storage equipment. For example, the storage device queries, from its own K-D table, whether the storage device ID corresponding to the keyword list containing the keyword to be updated indicates its own storage device.
The storage device that recognizes itself that stores the keyword to be updated gives a response to the server. By writing its own storage device ID in the shared memory a of the server, the storage device indicates to the server that it is capable of processing an update command corresponding to the key to be updated.
In the example of fig. 2, both the storage device 1 and the storage device 2 recognize that themselves store a keyword to be updated. In this case, the storage device 1 competes with the storage device 2 for the usage right of the shared memory a. The storage device (for example, the storage device 1) which has succeeded in obtaining the use right of the shared memory a in the competition writes its own storage device ID into the shared memory a. And the operation of the storage device 2 writing its own storage device ID to the shared memory a fails. Alternatively, the server temporarily stores the storage device ID of the storage device 2 as a substitute when the storage device 1 fails.
Alternatively, if the storage device identifies itself as not storing the key to be updated, the storage device does not attempt to update the shared memory a. Optionally, the storage device does not respond to the update command to reduce unnecessary traffic in the network.
Still alternatively, if the storage device recognizes that it does not store the key to be updated, but the storage device has the ability (e.g., free storage space) to record the key to be updated, the storage device also attempts to write its own storage device ID to the shared memory a. Alternatively, if the storage device 1 records the key to be updated and the storage device 2 has the capability of recording the key to be updated, the storage device 1 and the storage device 2 have different priorities when competing for the shared memory a.
In a second phase of processing the update command, the server accesses the shared memory a associated with the update command in response to the shared memory a being updated, or after a period of time when the update command was issued, to identify which storage device applies for processing the update command. The server acquires the storage device ID (storage device 1) from the shared memory a associated with the update command, and writes the acquired storage device ID to the shared memory B to instruct the storage device 1 to process the update command.
All storage devices applying for processing the update command from the server read the shared memory B after attempting to update the shared memory a. To identify whether it has obtained authorization to process the update command. Alternatively, the storage device reads shared memory B within a specified time period after attempting to update shared memory a. Therefore, the server does not need to know the address of each storage device, and each storage device acquires the address of the server from the update command.
For example, referring to fig. 2, the storage device 1 reads its own storage device ID from the shared memory B, while the storage device 2 reads its own storage device ID, not from the shared memory, but the storage device ID of the storage device 1. So that the storage device 1 knows that it has obtained the right to process the update command, whereas the storage device 2 knows that it has not obtained the right to process the update command, but that the storage device 1 has obtained the right to process the update command.
In response, the storage apparatus 1 and the storage apparatus 2 each update their own K-D table in which the key of the storage apparatus 1 associated with the update command is recorded. Thus, according to the K-D table of the storage device 1 or the storage device 2, the key and the corresponding value of the update command stored in the storage device 1 are recorded.
Optionally, in the K-D table, information of the time when it was last updated, the identification of the camera that caused the update, the state of the storage device, and the like is also recorded in association with the storage device ID.
Alternatively, along with the server updating the shared memory B, the storage device ID recorded in the shared memory B to process the update command is also broadcast to the network. Therefore, each storage device in the network which receives the broadcast records the ID of the broadcast storage device and the key word of the updating command in the K-D table of the storage device.
With continued reference to fig. 3, since the storage device 1 is authorized by the server to process the update command, in addition to updating its own K-D table, the storage device 1 responds to the update command as a KV storage device to record the key indicated by the update command and the value corresponding to the key (update KV storage).
After the storage device 1 authorized to process the update command completes updating the K-D table and the KV storage device, it indicates to the server that the update command processing is complete and that the update command itself has been executed. After the storage device 2 which is not authorized to process the update command completes the update of the K-D table, the storage device indicates to the server that the update process of the K-D table is completed, and the storage device 1 records the association relationship with the keyword of the update command.
FIG. 4 illustrates a flow diagram for processing an update command according to yet another embodiment of the present application.
The distributed storage system includes a server and storage apparatuses 1 and 2 coupled to the server through a network. Each storage device maintains its own K-D table. Alternatively, the server itself maintains a global K-D table.
The processing of the update command includes two phases. In the first phase, the server broadcasts a Key (Key) associated with the update command (referred to as the Key to be updated) to the network.
All storage devices receiving the key to be updated sent by the server give a response to the server, and indicate to the server whether the server has the ability to respond to the update command in the response. The storage device decides what indication to give to the server according to whether the storage device has free storage space, free computing power and/or whether the key to be updated is contained in the K-D table of the storage device. As an example, the K-D table of the storage device 1 contains the key to be updated, but the storage device 1 is currently highly loaded, and the storage device 1 may indicate to the server that it is not capable of responding to the update command.
The server, in response to receiving a response from one, more or all of the storage devices as to whether it has its own capability to process the update command, selects one or more of the storage devices that have the capability to process the update command and enters a second stage of update command processing. In the second phase, the server broadcasts its selected storage device to the network that handles the update command. By way of example, in FIG. 3, the server has selected storage device 1 to process the update command.
In response to receiving a message provided by the server to select the storage device 1 to process the update command, the storage device 1 and the storage device 2 update their own K-D tables, and the key of the storage device 1 and the update command are recorded in association in their own K-D tables. And the storage device 1 with the selected server also responds to the update command as a KV storage device to record the key indicated by the update command and the value corresponding to the key (update KV storage).
After the selected storage device 1 completes the update of the K-D table and the KV storage device, it indicates to the server that the processing of the update command is completed. And the unselected storage equipment indicates the completion of the updating of the self K-D table to the server after the updating of the self K-D table is completed.
Optionally, the server updates its own K-D table in response to receiving the response of each storage device to record that the key of the update command is associated with the storage device 1. Alternatively, the server does not have to wait for responses from all storage devices to update its own K-D table, but rather the server updates its own K-D table based on the collected responses after a specified period of time has elapsed for issuing a message to select a storage device.
FIG. 5 illustrates a flow diagram for processing a query command according to an embodiment of the application.
The distributed storage system includes a server and storage apparatuses 1 and 2 coupled to the server through a network. Each storage device maintains its own K-D table. Alternatively, the server itself maintains a global K-D table.
The processing of the query command includes two phases. In the first phase, the server broadcasts a Key (Key) associated with the query command (referred to as the Key to be queried) to the network.
And each storage device receiving the broadcast query command accesses the K-D table of the storage device by using the keyword of the query command, and acquires the storage device ID corresponding to the keyword from the K-D table so as to identify whether the storage device, serving as the KV storage device, records the keyword Key.
And identifying the storage equipment which is used as the KV storage equipment and records the keywords of the query command, and giving a query command hit message to the server. In the example of fig. 5, the storage device 1 and the storage device 2 find that each records the key of the query command as the KV storage device by querying their own K-D tables. Thus, both the storage apparatus 1 and the storage apparatus 2 give the query command hit message to the server. If the storage device finds that the storage device is not used as a key word for recording the query command of the KV storage device, a message that the query command is not hit is sent to the server, or a response to the query command is not given to the server.
The server initiates a second phase of processing of the query command in dependence upon the response to the query command received from the storage device. In the second phase, the server sends out a query execution message to one, a plurality of or all the storage devices which respond to the query command hit message to indicate that the storage device which receives the query execution message transmits a value (V) corresponding to a Key (Key) of the query command to the server.
In response to receiving the query execution message, the storage device executes the KV query, accessing its own storage medium with the Key (Key) to obtain the value (V) corresponding to the Key (Key). And transmits the value (V) to the server.
The server aggregates the data obtained from one, more or all of the storage devices that transferred the value (V) as a result of the query command. For example, the key of the query command indicates a car, and the storage devices provide a snapshot of one or more pictures/videos of cars or thumbnails/videos of pictures with attributes in a given value (V). The server aggregates all the obtained results into the result of the query command.
Optionally, the server-provided query execution message further indicates the memory address and/or capacity of the received value (V). The value (V) provided by the storage device does not exceed the memory capacity indicated by the query execution message. Or the server refuses to receive a portion of the value (V) that exceeds the memory capacity. Still alternatively, the server instructs the respective storage devices to provide the value (V) by a plurality of transmissions by querying the execution message.
FIG. 6 illustrates a flow diagram for processing a query command according to yet another embodiment of the present application.
The distributed storage system includes a server and storage apparatuses 1 and 2 coupled to the server through a network. Each storage device maintains its own K-D table. Alternatively, the server itself maintains a global K-D table.
The server broadcasts a Key (Key) associated with the query command (referred to as a keyword to be queried) to the network. Optionally, the server also broadcasts along with the Key a memory address for receiving a value corresponding to the Key (Key).
And each storage device receiving the broadcast query command accesses the K-D table of the storage device by using the keyword of the query command, and acquires the storage device ID corresponding to the keyword from the K-D table so as to identify whether the storage device, serving as the KV storage device, records the keyword Key.
And identifying the storage equipment which is used as the KV storage equipment and records the keywords of the query command, and giving a query command hit message to the server. And also transmitting to the server a value corresponding to the Key of the query command.
In the example of fig. 6, the storage device 1 and the storage device 2 find that each records the key of the query command as the KV storage device by querying their own K-D tables. Thus, both the storage apparatus 1 and the storage apparatus 2 give the query command hit message to the server. In addition, both the storage device 1 and the storage device 2 transmit the value (V) obtained by querying their own storage media with the Key to the server.
Optionally, in response to the transmission of the value (V) to the server being complete, the storage device further sends a message to the server that the query command processing is complete.
Still optionally, in response to the value (V) transmitted to the server having been transmitted a specified length (such that the memory of the server receiving the value (V) is filled), the storage device also sends a message to the server indicating that the cache is full. The server releases the cache accordingly and indicates to the storage device that an available cache has occurred. The storage device continues to transmit other portions of the value (V) to the server in response to receiving a message that the cache provided by the server is available.
Alternatively, if a storage device which cannot respond to the query command by itself is known by querying its own K-D table, no response is made to the query command of the server.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application. It will be apparent to those skilled in the art that various changes and modifications may be made in the present application without departing from the spirit and scope of the application. Thus, if such modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include such modifications and variations as well.

Claims (10)

1. A distributed KV storage system is characterized by comprising a server and a plurality of storage devices, wherein the server is coupled with the storage devices through a network; the storage device includes a K-D table for recording one or more keys to which the storage devices of the storage system are capable of responding.
2. The system of claim 1, wherein each row of the K-D table records a storage device ID of each storage device and a corresponding key list, the key list including one or more keys.
3. The system of claim 1 or 2, wherein the server further comprises a storage space accessible by the storage devices: one or more shared memories such that each storage device accesses the shared memory to apply to the server for processing the received command.
4. The system of any one of claims 1 to 3, wherein the storage device receives a keyword broadcast by the network and associated with the update command, and queries its own K-D table using the keyword to be updated.
5. The system of claim 4, wherein the server accesses the first shared memory associated with the update command in response to the first shared memory being updated or after a period of time when the update command is issued to identify the ID of the storage device requesting to process the update command.
6. The system of claim 5, wherein the server obtains the storage device ID of the first storage device that processed the update command from the first shared memory associated with the update command, and writes the obtained storage device ID to the second shared memory to indicate that the update command was processed by the first storage device.
7. A method of processing an update command, comprising:
receiving a keyword which is broadcasted by a network and is associated with an updating command;
indicating to the server that the server is capable of processing an update command corresponding to the keyword to be updated;
and responding to the received updating execution message, and recording the key indicated by the updating command and the value corresponding to the key.
8. The method of claim 7,
and in response to the fact that the keyword to be updated is stored in the server, indicating that the server can process the updating command corresponding to the keyword to be updated.
9. A method of processing an update command, comprising:
receiving a broadcasted keyword associated with the update command;
giving a response to the server and indicating in the response to the server whether itself has the ability to respond to the update command;
receiving a storage device selected by the broadcasted server and used for processing the updating command;
each storage device updates the K-D table of the storage device;
and the storage device selected by the server also records the key indicated by the updating command and the value corresponding to the key.
10. A method of processing a query command, comprising:
receiving broadcasted keywords associated with the query command;
accessing a K-D table of the user by using a keyword of the query command, and acquiring a storage device ID corresponding to the keyword from the K-D table;
responding to the obtained storage equipment ID corresponding to the keyword is the same as the storage equipment ID of the server, and giving a query command hit message to the server;
and responding to the received query execution message, and executing the KV query to obtain a value corresponding to the passing keyword.
CN201910247686.7A 2019-03-28 2019-03-28 Update and query of distributed KV storage system Active CN111581451B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910247686.7A CN111581451B (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system
CN202110795285.2A CN113535851A (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910247686.7A CN111581451B (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110795285.2A Division CN113535851A (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system

Publications (2)

Publication Number Publication Date
CN111581451A true CN111581451A (en) 2020-08-25
CN111581451B CN111581451B (en) 2021-08-06

Family

ID=72124363

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910247686.7A Active CN111581451B (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system
CN202110795285.2A Pending CN113535851A (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110795285.2A Pending CN113535851A (en) 2019-03-28 2019-03-28 Update and query of distributed KV storage system

Country Status (1)

Country Link
CN (2) CN111581451B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050250A (en) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 Distributed key-value query method and query engine system
CN108140009A (en) * 2015-10-13 2018-06-08 微软技术许可有限责任公司 B-tree key assignments manager of the distributed freedom formula based on RDMA
US20180294952A1 (en) * 2017-04-10 2018-10-11 City University Of Hong Kong Method for operating a distributed key-value store
CN109416694A (en) * 2016-07-11 2019-03-01 微软技术许可有限责任公司 The key assignments storage system effectively indexed including resource

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050250A (en) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 Distributed key-value query method and query engine system
CN108140009A (en) * 2015-10-13 2018-06-08 微软技术许可有限责任公司 B-tree key assignments manager of the distributed freedom formula based on RDMA
CN109416694A (en) * 2016-07-11 2019-03-01 微软技术许可有限责任公司 The key assignments storage system effectively indexed including resource
US20180294952A1 (en) * 2017-04-10 2018-10-11 City University Of Hong Kong Method for operating a distributed key-value store

Also Published As

Publication number Publication date
CN113535851A (en) 2021-10-22
CN111581451B (en) 2021-08-06

Similar Documents

Publication Publication Date Title
US11270734B2 (en) Method for accessing shingled magnetic recording SMR disk, and server
US20220327049A1 (en) Method and storage device for parallelly processing the deallocation command
US20200293443A1 (en) Garbage collection - automatic data placement
US20220326872A1 (en) Method for selecting a data block to be collected in gc and storage device thereof
US20160283114A1 (en) Semiconductor memory device
CN108614668B (en) KV model-based data access method and solid-state storage device
CN108628760B (en) Method and device for atomic write command
CN110554833B (en) Parallel processing IO commands in a memory device
CN111581451B (en) Update and query of distributed KV storage system
CN113660336B (en) Cloud computing and fog computing system using KV storage device
CN108614671B (en) Key-data access method based on namespace and solid-state storage device
CN110865945B (en) Extended address space for memory devices
CN111290974A (en) Cache elimination method for storage device and storage device
CN115080457A (en) Controller and operation method thereof
CN110659216A (en) NID allocation method and storage device thereof
CN110324381B (en) KV storage device in cloud computing and fog computing system
CN110377535B (en) Distributed KV storage system
CN113204309A (en) Data storage device and non-volatile memory control method
US9852067B2 (en) Data storage device and operating method thereof
CN111752866A (en) Virtual parity data caching for storage devices
US11663065B2 (en) SCSI command set for error history logging in a memory system and operating method thereof
US11662947B2 (en) Memory system and data processing system performing operation on commands before fetching of commands
CN111258491B (en) Method and apparatus for reducing read command processing delay
CN112995285B (en) Distributed KV storage system based on block technology
CN110096452B (en) Nonvolatile random access memory and method for providing the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant