CN106155586A - A kind of storage method, server and storage control - Google Patents

A kind of storage method, server and storage control Download PDF

Info

Publication number
CN106155586A
CN106155586A CN201610378340.7A CN201610378340A CN106155586A CN 106155586 A CN106155586 A CN 106155586A CN 201610378340 A CN201610378340 A CN 201610378340A CN 106155586 A CN106155586 A CN 106155586A
Authority
CN
China
Prior art keywords
storage
operation requests
described storage
key assignments
sequence
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
CN201610378340.7A
Other languages
Chinese (zh)
Other versions
CN106155586B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610378340.7A priority Critical patent/CN106155586B/en
Publication of CN106155586A publication Critical patent/CN106155586A/en
Application granted granted Critical
Publication of CN106155586B publication Critical patent/CN106155586B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a kind of storage method, server and storage control, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, memory request queue contains the action type of storage operation requests, the memory address of sequence of store instructions, storage class identifies, storage class mark is for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control performs corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and time delay, improve key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control have key assignments storage and the characteristic of block storage simultaneously.

Description

A kind of storage method, server and storage control
Technical field
The present invention relates to electronic technology field, particularly relate to a kind of storage method, server and storage control.
Background technology
The storage of key assignments (Key-Value, be called for short KV) data, its data according to the form of key-value pair carry out organizing, index and Storage.It has semantic simple, the storage feature that set expandability is good, data query speed is fast, memory data output is big of storage.Deposit The storage agreement using in storage system has a lot, with NVMe (Non-Volatile Memory Express, non-volatile memories Device standard) as a example by agreement: use the storage system of NVMe agreement can reduce general purpose I/O (Input/Output, input/output) Scheduling, in SCSI (Small Computer System Interface, small computer system interface) higher level and SCSI Interbed, I/O path is short, time delay is low, concurrent processing ability is strong.Key assignments storage and NVMe agreement combine, and storage system will be made same When possess the advantage of both.The combination of key assignments storage and NVMe agreement is to be carried key assignments storage packet by NVMe agreement It is transmitted.For example, the command sequence of the payload user data of NVMe can be replaced with the command sequence of key assignments data storage bag.
Key assignments storage implementation currently mainly has 2 kinds of methods, and a kind of method is that hardware uses scsi device, and SCSI sets Standby externally provide block device service by SCSI bottom layer driving, SCSI middle level, SCSI upper strata, I O scheduling layer and block device layer.Soft Part sets up middleware on block device layer or file system, and middleware is responsible for completing key assignments operation and block device or file system The conversion of system operation, thus the application to user's space provides the service of key assignments storage.But, said method needs multilayered memory Protocol stack is changed, and I/O path is long, when extend, key assignments storage efficiency is relatively low.
Another kind of method is that hardware uses the equipment supporting key assignments storage, and key assignments storage device drives layer by key assignments storage Communicating with middleware, user's storage is converted to key assignments storage operation by middleware, thus the application to user's space provides Key assignments storage service.But, key assignments storage device cannot support conventional block device service, and range of application has limitation.
Content of the invention
The present invention provides a kind of storage method, server and storage control, can shorten I/O path, reduce time delay, reduce Process in key assignments operation and the conversion of block device or file system operation.
First aspect present invention provides a kind of storage method, utilizes the data segment that agreement is pointed to transmit depositing of key assignments storage Storage request queue, memory request queue contains the storage action type of operation requests, sequence of store instructions memory address, Storage class identifies, and storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, So that storage control performs corresponding storage operation according to memory request queue, reduce turning between multilayered memory protocol stack Change, shorten I/O path and time delay, improve key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or Person's storage control has key assignments storage and the characteristic of block storage simultaneously.
Optionally, when storage class mark is for indicating that the storage class of described storage operation requests is key assignments storage, institute State storage class and be designated prepending non-significant value.
Optionally, described storage class mark is for indicating that the storage class of described storage operation requests is key assignments storage When, described storage class mark needs the position of storage according to the storage data of mark in memory request queue in described storage Determine with the length of the data of described storage and the capacity whether being more than described storage control.For example, the depositing of storage medium When storage total capacity is X, it is Y that the SLBA field in memory request queue fills out logical blocks initial address, and NLB field fills out logical block Quantity is Z, as Y+Z > X when, i.e. represent that Y and Z insert is invalid value, and the data namely operating exceed rear end storage medium It during capacity, is i.e. considered invalid value.
Optionally, the action type storing operation requests is storage data, reads data, deletes data and discarding data In any one.
Optionally, when described storage operation requests is for asking storage operation, the behaviour of described storage operation requests of key assignments When making type for reading data, server obtains key assignments length according to described storage operation requests, raw according to described key assignments length Become sequence of store instructions.
Optionally, when described storage operation requests is for asking the storage of at least two key assignments to operate, then generate deposits Storage command sequence includes the sub-sequence of store instructions of at least two key assignments, then server determines the operation of described storage operation requests Type, storage class mark, the sub-sequence of store instructions for described at least two key assignments determines corresponding memory address, to hold Row polymerization storage operation.
Optionally, after storage control performs corresponding storage operation for sequence of store instructions, return to server Operational status information, to indicate that described storage control performs the state of corresponding storage operation.
Second aspect present invention provides a kind of storage method, and storage control is receiving the storage request that server sends After queue, judge that the storage class of storage operation requests is key assignments storage by the storage class mark that memory request queue carries Or block stores, further according to the memory address of sequence of store instructions, the storage action type of operation requests and storage class mark Know execution corresponding storage operation so that storage control system or storage control have key assignments storage and block storage simultaneously Characteristic.
Optionally, when storage class mark is for indicating that the storage class of described storage operation requests is key assignments storage, institute State storage class and be designated prepending non-significant value.
Optionally, when storage class mark is for indicating that the storage class of described storage operation requests is key assignments storage, institute Stating the storage data according to mark in memory request queue for the storage class mark needs position and the institute of storage in described storage State the length of the data of storage and whether determine more than the capacity of described storage control.For example, the storage of storage medium is total When capacity is X, it is Y that SLBA field in memory request queue fills out logical blocks initial address, and NLB field fills out the quantity of logical block For Z, as Y+Z > X when, i.e. represent that Y and Z insert is invalid value, and the data namely operating exceed the capacity of rear end storage medium When, it is i.e. considered invalid value.
Optionally, the action type storing operation requests is storage data, reads data, deletes data and discarding data In any one.
Optionally, when storage control identifies the storage class of determination described storage operation requests according to described storage class When storing for key assignments, storage control obtains described sequence of store instructions according to the memory address of described sequence of store instructions, then Action type according to described storage operation requests performs the storage operation of corresponding key assignments to described sequence of store instructions.
Optionally, when storage control identifies the storage class of determination described storage operation requests according to described storage class When storing for block, storage control obtains described sequence of store instructions, then root according to the memory address of described sequence of store instructions Perform the storage of corresponding block according to the action type of described storage operation requests to described sequence of store instructions to operate.
Optionally, after storage control performs corresponding storage operation for sequence of store instructions, to server output Operational status information, to indicate that described storage control performs the state of corresponding storage operation.
Third aspect present invention provides a kind of server, and this server is for the relevant parameter according to storage operation requests Generating sequence of store instructions and memory request queue, this server includes at least the one of the storage method that first aspect provides Individual module and unit.
Fourth aspect present invention provides a kind of server, and the structure of this server includes processor, and processor is joined It is set to support that this server performs corresponding function in the storage method that first aspect provides.Processor is for asking according to storage operation The relevant parameter asked generates sequence of store instructions and memory request queue.This server also includes memory, and memory is used for Coupling with processor, it preserves the necessary programmed instruction of this server and data.This server also includes communication bus and leads to Letter interface, communication bus is for realizing the connection communication between memory and processor.Communication interface is used for this server and deposits Storage controller communication.
Fifth aspect present invention provides a kind of storage control, and this storage control is for depositing of sending according to server Storage request queue performs corresponding storage operation.This storage control includes at least the one of the storage method that second aspect provides Individual module and unit.
Sixth aspect present invention provides a kind of storage control, and the structure of this storage control includes command process list Unit, operation processing unit, key assignments storage processing unit and storage control unit, for performing the storage side that second aspect provides Corresponding function in method.
Use the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, storage request Queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, stores class Type mark is for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control is according to depositing Storage request queue performs corresponding storage operation, reduces the conversion between multilayered memory protocol stack, shortens I/O path and time delay, carry High key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control have key simultaneously Value storage and the characteristic of block storage.
Brief description
In order to be illustrated more clearly that the technical scheme of the embodiment of the present invention, required use in embodiment being described below Accompanying drawing be briefly described, it should be apparent that, below describe in accompanying drawing be some embodiments of the present invention, for this area From the point of view of those of ordinary skill, on the premise of not paying creative work, the attached of other can also be obtained according to these accompanying drawings Figure.
Fig. 1 (a) is the structural representation of an embodiment of the server of the embodiment of the present invention and storage control;
Fig. 1 (b) is the structural representation of another embodiment of the server of the embodiment of the present invention and storage control;
Fig. 1 (c-1) is the instruction code definition schematic diagram in the SCSI protocol that the embodiment of the present invention provides to block device operation;
Fig. 1 (c-2) is the instruction code definition schematic diagram in the SCSI protocol that the embodiment of the present invention provides to block device operation;
Fig. 1 (d) is SCSI READ (12) the instruction definition schematic diagram that the embodiment of the present invention provides;
Fig. 2 (a) is the schematic flow sheet of a kind of embodiment storing method of the embodiment of the present invention;
Fig. 2 (b) is a kind of sequence of store instructions form schematic diagram that one embodiment of the invention provides;
Fig. 2 (c) is the instruction code schematic diagram that in the NVMe agreement that one embodiment of the invention provides, I/O operation is related;
Fig. 2 (d) is memory request queue's schematic diagram that one embodiment of the invention provides;
Fig. 3 (a) is the schematic flow sheet of a kind of another embodiment storing method of the embodiment of the present invention;
Fig. 3 (b) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 4 (a) is the schematic flow sheet of a kind of another embodiment storing method of the embodiment of the present invention;
Fig. 4 (b) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 4 (c) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 5 (a) is the schematic flow sheet of a kind of another embodiment storing method of the embodiment of the present invention;
Fig. 5 (b) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 5 (c) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 6 (a) is the schematic flow sheet of a kind of another embodiment storing method of the embodiment of the present invention;
Fig. 6 (b) is the SGL table definition form schematic diagram that another embodiment of the present invention provides;
Fig. 6 (c) is memory request queue's schematic diagram that another embodiment of the present invention provides;
Fig. 7 (a) is the schematic flow sheet of a kind of another embodiment storing method of the embodiment of the present invention;
Fig. 7 (b) is the NVMe sequence of store instructions schematic diagram that another embodiment of the present invention provides;
Fig. 8 is the structural representation of another embodiment of the server of the embodiment of the present invention;
Fig. 9 is the structural representation of another embodiment of the storage control of the embodiment of the present invention.
Detailed description of the invention
Below in conjunction with the accompanying drawing in the embodiment of the present invention, the technical scheme in the embodiment of the present invention is carried out clear, complete Describe, it is clear that described embodiment is a part of embodiment of the present invention, rather than whole embodiments wholely.Based on this Embodiment in bright, the every other enforcement that those of ordinary skill in the art are obtained under the premise of not making creative work Example, broadly falls into the scope of protection of the invention.
Use the present invention, the conversion between multilayered memory protocol stack can be reduced, shorten I/O path and time delay, improve key assignments and deposit Storage efficiency.
Term " first " in description and claims of this specification and above-mentioned accompanying drawing, " second ", " the 3rd " and " Four " it is etc. for distinguishing different object, rather than be used for describing particular order.Additionally, term " includes " and " having " and it Any deformation, it is intended that cover non-exclusive comprising.For example contain process, the method for series of steps or unit, be System, product or equipment are not limited to step or the unit listed, but also include step or the list do not listed alternatively Unit, or also include other steps intrinsic for these processes, method, product or equipment or unit alternatively.
The embodiment of the present invention utilizes PRP in NVMe agreement Submission Queue Entry (submission queue entries) The number that (Physical Region Page, page physical region) or SGL (Scatter Gather List, poly-scattered table) point to According to section transmit key assignments storage packet, this packet contains key assignments storage action type (such as command code), The memory address of sequence of store instructions (memory address of sequence of store instructions include the address as Value or Value deposits, The information such as the address that Key or Key deposits), storage class mark (SLBA in Submission Queue Entry is for example set Field and NLB field are invalid value, represent that the operation defined in current Submission Queue Entry is key assignments storage behaviour Make).When SLBA and the NLB field that storage control analyzes in Submission Queue Entry is invalid value, key value is deposited Storage flow processing.
What deserves to be explained is, key assignments storage can expand in multiple storage agreement, including but not limited to NVMe, SCSI etc. Other store agreement, and the present embodiment is then illustrated with NVMe agreement.
Fig. 1 (a) and Fig. 1 (b) are the structural representations of the server of the embodiment of the present invention and storage control.Server and The connected mode of controller includes but is not limited to PCIe (PCI-Express, up-to-date bus and interface standard), SAS (Statistical Analysis System, statistical analysis software), SATA (Serial Advanced Technology Attachment, Serial Advanced Technology Attachment), other internetwork connection modes such as ether.Instruction and data between main frame and controller Transmission means include but is not limited to DMA (Direct Memory Access, immediate data access), RDMA (Remote Direct Memory Access, remote direct data access) etc. other transmission means.
Server includes base plate, and base plate is provided with the chips such as processor, internal memory, bridge piece, for other expansion equipments It is controlled, it is achieved the function of server.Specifically, server is used for obtaining storage operation requests, according to storage operation requests Generate sequence of store instructions, and determine the action type of storage operation requests, storage class mark and sequence of store instructions Memory address, further according to the memory address of action type, storage class mark and the sequence of store instructions storing operation requests Generate memory request queue, finally by memory request queue to storage control.
As shown in Fig. 1 (a), the connected mode of server and storage control is PCIe, and Fig. 2 of the embodiment of the present invention is to figure 7 implement with reference to the connected mode of the server shown in Fig. 1 (a) and storage control.Server includes memory, process Device, communication bus, bridge piece and communication interface.Memory stores program code, and processor calls the program of storage in memory Code, for performing the storage method shown in Fig. 2 to Fig. 7, communication interface is for realizing between server and storage control Communication, communication bus is for realizing the connection communication between memory and processor.
Processor includes that NVMe drives layer, application module, middleware, tradition application module, file system and block layer.
Application module, is server application or storage client software.
Tradition application module, is the server application of traditional file systems or block device interface.
Middleware, is key assignments Storage Middleware Applying, provides key assignments memory interface to server application, and by storage request transmission Drive layer to NVMe.Middleware by multiple bondings simultaneously can once be delivered to device drive layer by device drives layer interface.
File system, such as EXT3 (Third Extended Filesystem, the third generation extends file system), EXT4 (Fourth Extended Filesystem, forth generation extends file system), FAT32 (Windows system disk zoned format One) etc.;
Block layer: the level of abstraction to block storage device for the operating system, generic-document system is all implemented on this layer;
NVMe drives layer: server OS is carried out data transmission by drive software and NVMe storage device and ordered Alternately.NVMe drives layer to include NVMe command conversion module.
NVMe command conversion module: the memory address depositing the data of key assignments storage is inserted Submission Queue PRP or SGL of Entry, arranges SLBA (Starting LBA, logical blocks initial address) and NLB (Number of Logical Blocks, the quantity of logical block) field is invalid value, and Submission Queue Entry submitted to NVMe Layer is driven to be handed down to storage control.
Storage control (to operations such as the storage device connecting under controller are written and read) is also a chip, such as FPGA (Field-Programmable Gate Array, i.e. field programmable gate array), ASIC (Application Specific Integrated Circuit, integrated circuit) etc., by being programmed to the read-write completing to receive server to this chip Request, and various access and control is carried out to the storage device in connecting under storage control.The storage supporting this mode controls Device or storage system can provide block storage and key assignments to store two ways simultaneously.Storage control is for supporting depositing of NVMe agreement Storage controller, controller is connected with server by PCIe bus.Specifically, storage control is for obtaining what server sent Memory request queue, obtains the memory address of sequence of store instructions, the operation class of storage operation requests according to memory request queue Type and storage class mark, identify storage class mark, and according to the memory address of sequence of store instructions, storage operation requests Action type and storage class mark perform corresponding storage operation.
As shown in Fig. 1 (a), storage control includes NVMe command process unit, key assignments storage processing unit, NVMe operation Processing unit and storage control unit.
NVMe command process unit, for analyzing the storage class mark in the memory request queue that storage control receives Know, it is judged that the validity of SLBA and NLB field, when invalid, memory request queue is distributed to key assignments storage processing unit, effectively When be distributed to NVMe operation processing unit.
Key assignments storage processing unit, processes the storage operation of whole key assignments, and the state after processing submits to storage control Unit processed.
NVMe operates processing unit, processes standard NVMe agreement operation requests, i.e. block storage operation, and the shape after processing State is submitted to store control unit.
Storage control unit, the State Transferring submitting foregoing units to is the operation to back-end storage device, and will operation Result feeds back to foregoing units.
Storage medium include DRAM (Dynamic Random Access Memory, dynamic random access memory), NVRAM (Non-Volatile Random Access Memory, nonvolatile random access memory), nand flash memory or Other memory devices.
Optionally, as shown in Fig. 1 (b), the connected mode of server and storage control can be also SAS, server and depositing Mutual and the respective embodiment of storage controller can refer to the embodiment of the server shown in Fig. 1 (a) and storage control, Then repeat no more in embodiments of the present invention.
The function of the application module of the server shown in Fig. 1 (b), tradition application module, middleware, file system and block layer Identical with the function of the respective modules of server in Fig. 1 (a).In addition, server also includes SCSI upper strata, SCSI middle level.
SCSI layer, processes the software layer of SCSI affairs, including SCSI upper strata, SCSI middle level and SCSI lower floor.
Scsi device drives, and is positioned at SCSI lower floor, is responsible for SCSI request is submitted to storage control, stores after completing Control between controller and data interactive operation.
The command conversion module 10110 of the server shown in Fig. 1 (b) is positioned at scsi device and drives layer, for depositing key assignments Storage request command code expand on SCSI protocol, and be posed to scsi device drive be sent to storage control.
The key assignments storage processing unit of the storage control shown in Fig. 1 (b) and storage control unit store in Fig. 1 (a) The function of controller corresponding unit is identical.
For the command process unit of the storage control shown in Fig. 1 (b), analyze the instruction code in SCSI request, it is judged that It is that instruction is submitted to key assignments processing unit or SCSI processing unit.
The SCSI processing unit of the storage control shown in Fig. 1 (b), processes the other standards in addition to key assignments storage order Scsi command.
Seeing Fig. 1 (c) and Fig. 1 (d), Fig. 1 (c) is in the SCSI protocol that the embodiment of the present invention provides to operate block device Instruction code defines schematic diagram, and Fig. 1 (d) is SCSI READ (12) the instruction definition schematic diagram that the embodiment of the present invention provides.Wherein, Fig. 1 (c) is divided into Fig. 1 (c-1) and Fig. 1 (c-2).
As a example by SCSI READ (12) instruction:
When performing key assignments storage operation by LOCGICAL BLOCK ADDRESS field and TRANSFER LENGTH field Fill out and represent that current operation is not block storage operation for prepending non-significant value (for example, full F of prepending non-significant value), but key assignments storage behaviour Make.Command code and the operating process of key assignments storage can the storage method of detailed in Example Fig. 2 to Fig. 6.
Referring to Fig. 2 (a), Fig. 2 (a) is the flow process signal of a kind of embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 2 (a).
As shown in Fig. 2 (a), a kind of embodiment storing method of the embodiment of the present invention may comprise steps of.
S100, server obtains storage operation requests, generates sequence of store instructions according to described storage operation requests.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.
As a kind of enforceable mode, the form of sequence of store instructions can be shown in Fig. 2 (b), and Fig. 2 (b) is the present invention one A kind of sequence of store instructions form schematic diagram that embodiment provides.
Wherein, each field meaning of sequence of store instructions is as follows:
S101, server determines that the action type of described storage operation requests, storage class mark and described storage refer to Make the memory address of sequence.
In implementing, the action type of storage operation requests be used for indicating storage data, read data, delete data with And any one action type in discarding data, specifically can represent by command code, to represent the action type of storage operation.As Shown in lower:
Command code Instruction description
01h Mono-recordable data: Write
02h Single reads data: Read
03h The length of the corresponding Value of single acquisition Key: Get Length
04h Single deletes data: Delete
05h Single discarding data: TRIM
06h Data are write in polymerization: Write
07h Data: Read is read in polymerization
08h The length of the corresponding Value of polymerization acquisition Key: Get Length
09h Data: Delete is deleted in polymerization
0Ah Polymerization discarding data: TRIM
In implementing, storage class mark for indicate described storage operation requests storage class be key assignments storage or Person's block stores.
In implementing, the memory address of sequence of store instructions is for indicating storage control according to sequence of store instructions Memory address obtains sequence of store instructions, thus obtains the relevant information of packet.
S102, server is according to action type, the described storage class mark of described storage operation requests and described deposits The memory address of storage command sequence generates memory request queue.
In implementing, the action type of storage operation requests can be filled out in the DWORD0 field of memory request queue, depositing SLBA and the NLB field of storage request queue fills out storage class mark, can fill out in the Data Pointer field of memory request queue The address that sequence of store instructions is deposited.Storage class mark is that key assignments is deposited for indicating the storage class of described storage operation requests Chu Shi, the storage class that SLBA and the NLB field in memory request queue is filled out is designated prepending non-significant value.Or, storage class Mark needs the position of storage and the number of described storage according to the storage data of mark in memory request queue in described storage According to length and whether determine that storage class identifies whether as prepending non-significant value more than the capacity of described storage control.Example As, when the storage total capacity of storage medium is X, it is Y that SLBA field in memory request queue fills out logical blocks initial address, The quantity that NLB field fills out logical block is Z, as Y+Z > X when, i.e. represent that Y and Z insert is invalid value, the data namely operating It during beyond the capacity of rear end storage medium, is i.e. considered invalid value.
As a kind of enforceable mode, NVMe agreement Submission Queue Entry takies one section of continuous print 64 word Joint internal memory, the instruction code that in NVMe agreement, I/O operation is related, as shown in Fig. 2 (c), Fig. 2 (c) is that one embodiment of the invention provides The instruction code schematic diagram that in NVMe agreement, I/O operation is related.
In implementing, shown in the memory request queue of generation such as Fig. 2 (d), Fig. 2 (d) is that one embodiment of the invention provides Memory request queue's schematic diagram.
S103, server sends described memory request queue to storage control.
In implementing, server sends memory request queue to storage control, and described memory request queue is used for Indicate that described storage control performs corresponding storage operation according to described memory request queue.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 3 (a), Fig. 3 (a) is the flow process signal of a kind of another embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 3 (a).Fig. 3 (a) embodiment is for storage behaviour The action type making to ask is specifically described for storage data (i.e. write operation).The storage class of storage operation requests is key Value storage.
As it is shown on figure 3, a kind of another embodiment storing method of the embodiment of the present invention may comprise steps of.
S200, server obtains storage operation requests, generates sequence of store instructions according to described storage operation requests.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.Specifically, the application module of application layer calls the interface of writing of middleware: its code is Put (String Key, String Value), by middleware submit to the address that the storage operation requests of write operation, Key and Value data deposit to NVMe drives layer, and NVMe drives layer to generate sequence of store instructions according to the storage operation requests of write operation.
As a kind of enforceable mode, generate the flow process (not shown) of sequence of store instructions particularly as follows:
S2001, NVMe drive layer application 64 byte of memory address to deposit sequence of store instructions;
S2002, KV Command field fills out KV Write Opcode 01h, and this field is for indicating the operation of storage operation requests Type is the action type of storage data;
S2003, Key Pointer field fills out the memory address that Key deposits;
S2004, Key Length field fills out Key data length;
S2005, Key data CRC value field deposits the crc value of key data;
S2006, Value Pointer field fills out the memory address that Value deposits;
S2007, Value Length field fills out Value data length;
S2008, Value data CRC value field deposits the crc value of Value data;
S2009, Command data CRC value field deposits the crc value of 64 byte instruction sequences.
S201, server determines that the action type of described storage operation requests, storage class mark and described storage refer to Make the memory address of sequence.
In implementing, the memory address that NVMe drives layer to deposit sequence of store instructions passes to NVMe order modulus of conversion Block, and determine that the action type of storage operation requests, for storing data (i.e. write operation), determines the storage class of storage operation requests Type is key assignments storage, generates corresponding storage class mark according to the storage class of storage operation requests, is used for indicating this storage Operation requests is the operation requests of key assignments storage.
S202, server is according to action type, the described storage class mark of described storage operation requests and described deposits The memory address of storage command sequence generates memory request queue.
In implementing, server generates memory request queue, by NVMe command conversion module in memory request queue DWORD0 field fills out the action type (i.e. NVMe write order command code 01h) of storage operation requests, in memory request queue SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue Fill out the memory address that sequence of store instructions is deposited.Concrete, the storage being used for asking storage data (i.e. write operation) of generation is asked Asking shown in queue such as Fig. 3 (b), Fig. 3 (b) is memory request queue's schematic diagram that another embodiment of the present invention provides.
As a kind of enforceable mode, storage class identifies the storage data according to mark in memory request queue in institute State the position needing storage in storage and the length of the data of described storage and the capacity whether being more than described storage control Determine that storage class identifies whether as prepending non-significant value.For example, when the storage total capacity of storage medium is X, team is asked in storage To fill out logical blocks initial address be Y to the SLBA field of row, and the quantity that NLB field fills out logical block is Z, as Y+Z > X when, i.e. represent Y Insert with Z is invalid value, when the data namely operating exceed the capacity of rear end storage medium, is i.e. considered invalid value.
S203, the described memory request queue of server transmission is to storage control, and described memory request queue is used for indicating Described storage control performs the storage operation of storage data according to described memory request queue.
In implementing, NVMe drives the described memory request queue of layer transmission to storage control, so that storage control Perform the storage operation of storage data according to the memory request queue receiving.
S204, storage control obtains memory request queue.
S205, described storage control obtains the internal memory ground of described sequence of store instructions according to described memory request queue Location, the action type of storage operation requests and storage class mark.
S206, described storage control identifies the storage class determining described storage operation requests according to described storage class For key assignments storage.
The SLBA field in NVMe command process element analysis memory request queue in implementing, in storage control It is invalid value with NLB field, then be judged to key assignments storage operation.NVMe command process element analysis sends in memory request queue Write command, the address information of Key and Value, submit to write operation storage operation requests to key assignments storage processing unit.
S207, described storage control obtains described storage sequence of instructions according to the memory address of described sequence of store instructions Row.
In implementing, key assignments storage processing unit processes Key and Value information, and the storage operation of transition write operation please Seek the write operation requests for corresponding storage device, and submit to the storage operation requests of write operation to storage control unit.
S208, described storage control according to described storage operation requests action type to described sequence of store instructions Perform the key assignments storage operation of storage data.
In implementing, storage control unit writes data to storage medium (such as back-end storage device).
S209, described storage control output function status information.
In implementing, after storage control writes data to back-end storage device, return operational status information to server, Perform to write the state of the storage operation of data with instruction storage control.Specifically, store control unit to write data to rear end and deposit After storage equipment, return operational status information to key assignments storage processing unit, then sent by key assignments memory cell and foregoing units To server.
S210, server receives the operational status information that described storage control returns, and described operational status information is used for Indicate that described storage control performs the state of the storage operation of described storage data.
In implementing, the NVMe command conversion module transmission operational status information in server is to middleware.Finally, in Between part return operational status information terminate to application layer, process.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 4 (a), Fig. 4 (a) is the flow process signal of a kind of another embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 4 (a).Fig. 4 (a) embodiment is for storage behaviour The action type making to ask is specifically described for reading data (i.e. read operation).The storage class of storage operation requests is key assignments Storage.Reading data can include obtaining the corresponding Value length of Key, or obtaining Value information, the present embodiment is for acquisition Key Corresponding Value length, or obtain Value information and illustrate one by one.
As shown in Fig. 4 (a), a kind of another embodiment storing method of the embodiment of the present invention may comprise steps of.
S300, server obtains storage operation requests, obtains key assignments length according to described storage operation requests, according to described Key assignments length generates sequence of store instructions.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.Specifically, the application module of application layer calls middleware read operation interface: its code is Get (String Key).Wherein, store operation requests and can be the request of the request of the corresponding Value length of acquisition Key or acquisition Value information.
As a kind of enforceable mode, for the request obtaining the corresponding Value length of Key, due to the packet reading Length do not fix, it is therefore desirable to submitted to the request obtaining the corresponding Value length of Key to NVMe driving layer, NVMe by middleware Layer is driven then to generate sequence of store instructions according to the request obtaining the corresponding Value length of Key.Generate and obtain the corresponding Value length of Key Degree sequence of store instructions flow process (not shown) particularly as follows:
S3001, applies for that 64 byte of memorys do sequence of store instructions;
S3002, KV Command field fills out length read command code 03h obtaining the corresponding Value of Key, and this field is used for referring to Show the action type of storage operation requests for obtaining the action type of the length of the corresponding Value of Key;
S3003, Key Pointer field fills out the memory pointer that Key deposits;
S3004, Key Length field fills out the length of Key data;
S3005, Key Data CRC Value field fills out the crc value of Key data;
S3006, Value Pointer field fills out 0, represents no data transmission;
S3007, Value Length field fills out 0, represents no data transmission;
S3008, Value Data CRC Value field fills out 0, represents no data transmission;
S3009, Command Data CRC Value field fills out the crc value of command sequence data.
As a kind of enforceable mode, for the request obtaining Value information, generate the storage obtaining Value information The flow process (not shown) of command sequence particularly as follows:
S30010, applies for that 64 byte of memorys do KV command sequence;
S30011, KV Command field fills out command code 02h obtaining the corresponding Value of Key, and this field is used for indicating storage The action type of operation requests is for obtaining the action type of Value information;
S30012, Key Pointer field fills out the memory pointer that Key deposits;
S30013, Key Length field fills out the length of Key data;
S30014, Key Data CRC Value field fills out the crc value of Key data;
S30015, Value Pointer field fills out the memory address that the Value of reading is stored in main frame by controller;
S30016, Value Length field fills out the length that Value data read by controller;
S30017, Value Data CRC Value field fills out 0;
S30018, Command Data CRC Value field fills out the crc value of command sequence data.
S301, server determines that the action type of described storage operation requests, storage class mark and described storage refer to Make the memory address of sequence.
In implementing, the memory address that NVMe drives layer to deposit sequence of store instructions passes to NVMe order modulus of conversion Block, and determine that the action type of storage operation requests, for reading data (i.e. read operation), determines the storage class of storage operation requests Type is key assignments storage, generates corresponding storage class mark according to the storage class of storage operation requests, is used for indicating this storage Operation requests is the operation requests of key assignments storage.
S302, server is according to action type, the described storage class mark of described storage operation requests and described deposits The memory address of storage command sequence generates memory request queue.
In implementing, server generates memory request queue, by NVMe command conversion module in memory request queue DWORD0 field fills out the action type (i.e. NVMe read command command code 02h) of storage operation requests, in memory request queue SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue Fill out the memory address that sequence of store instructions is deposited.
As a kind of enforceable mode, generation for requests data reading (as obtained the length of the corresponding Value of Key) Memory request queue such as Fig. 4 (b) shown in, Fig. 4 (b) be another embodiment of the present invention provide memory request queue's schematic diagram.
As a kind of enforceable mode, the storage for requests data reading (as obtained Value information) of generation please Asking shown in queue such as Fig. 4 (c), Fig. 4 (c) is memory request queue's schematic diagram that another embodiment of the present invention provides.
As a kind of enforceable mode, storage class identifies the storage data according to mark in memory request queue in institute State the position needing storage in storage and the length of the data of described storage and the capacity whether being more than described storage control Determine that storage class identifies whether as prepending non-significant value.For example, when the storage total capacity of storage medium is X, team is asked in storage To fill out logical blocks initial address be Y to the SLBA field of row, and the quantity that NLB field fills out logical block is Z, as Y+Z > X when, i.e. represent Y Insert with Z is invalid value, when the data namely operating exceed the capacity of rear end storage medium, is i.e. considered invalid value.
S303, the described memory request queue of server transmission is to storage control, and described memory request queue is used for indicating Described storage control performs to read the storage operation of data according to described memory request queue.
In implementing, NVMe drives the described memory request queue of layer transmission to storage control, so that storage control Perform to read the storage operation of data according to the memory request queue receiving.
S304, storage control obtains memory request queue.
S305, described storage control obtains the internal memory ground of described sequence of store instructions according to described memory request queue Location, the action type of storage operation requests and storage class mark.
S306, described storage control identifies the storage class determining described storage operation requests according to described storage class For key assignments storage.
The SLBA field in NVMe command process element analysis memory request queue in implementing, in storage control It is invalid value with NLB field, then be judged to key assignments storage operation.
S307, described storage control obtains described storage sequence of instructions according to the memory address of described sequence of store instructions Row.
S308, described sequence of store instructions is held by described storage control according to the action type of described storage operation requests Row reads the key assignments storage operation of data.
In implementing, for the request obtaining the corresponding Value length of Key, the storage of NVMe command process element analysis please Ask the reading in queue to instruct, Key information, submit to the storage operation requests reading the corresponding Value size operation of Key to key assignments storage Processing unit.Key assignments storage processing unit obtains corresponding Value according to Key information from storage medium (such as back-end storage device) Length, submits to length information to NVMe command process unit.
In implementing, for the request obtaining Value information, in NVMe command process element analysis memory request queue Reading instruction, Value memory address information, submit to read Value information operation storage operation requests to key assignments storage process Unit.Key assignments storage processing unit submits to the storage operation requests reading the operation of Value information to storage control unit, is controlled by storage Unit processed performs data reading operation.Storage control unit reads the internal memory ground that Value information is deposited to Value to server-assignment Location.
S309, described storage control output function status information.
In implementing, after storage control reads data, return operational status information to server, to indicate storage Controller performs to read the state of the storage operation of data.
In implementing, for the request obtaining the corresponding Value length of Key, the NVMe command process list of storage control Unit returns Value length to server.
In implementing, for the request obtaining Value information, after storage control unit reads Value information, submit to The operational status information reading Value information reads Value information to key assignments storage processing unit, the submission of key assignments storage processing unit Operational status information can will read the operational status information of Value information to NVMe command process unit, NVMe command process unit Fill out completing in queue of interacting with server, and queue will be completed send to server.
S310, server receives the operational status information that described storage control returns, and described operational status information is used for Indicate that described storage control performs the state of the storage operation of described reading data.
In implementing, for the request obtaining the corresponding Value length of Key, the NVMe command conversion module in server Transmission carries the operational status information of Value length to middleware.Finally, middleware is according to Value length allocation Value data At the memory headroom that host side is deposited.
In implementing, for the request obtaining Value information, the NVMe of server drives layer to finish receiving queue.? Rear NVMe drives layer to submit to the operational status information reading Value information to middleware.Middleware is by the reading Value information of reception Operational status information is sent to application module.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 5 (a), Fig. 5 (a) is the flow process signal of a kind of another embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 5 (a).Fig. 5 (a) embodiment is for storage behaviour The action type making to ask is specifically described for deleting data or discarding data.The storage class of storage operation requests is key assignments Storage.
As shown in Fig. 5 (a), a kind of another embodiment storing method of the embodiment of the present invention may comprise steps of.
S400, server obtains storage operation requests, generates sequence of store instructions according to described storage operation requests.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.Specifically, the application module of application layer calls the deletion of middleware or discarded interface: its code is Delete (String Key) or TRIM (String Key), to carry out deleting or discarding data operation, is carried by middleware The address letter that the storage operation requests (i.e. the command code of deletion or abandonment operations) of friendship deletion or abandonment operations, Key data are deposited Breath drives layer to NVMe.NVMe drives layer to generate sequence of store instructions according to the storage operation requests of deletion or abandonment operations.
As a kind of enforceable mode, generate the flow process (not shown) of sequence of store instructions particularly as follows:
S4001, NVMe drive layer application 64 byte of memory address to deposit sequence of store instructions;
S4002, KV Command field fills out deletion data operation code 04h or discarding data command code 05h, and this field is used The action type being deletion or discarding data in the action type of instruction storage operation requests;
S4003, Key Pointer field fills out the memory pointer that Key deposits;
S4004, Key Length field fills out the length of Key data;
S4005, Key Data CRC Value field fills out the crc value of Key data;
S4006, Value Pointer field fills out 0, represents no data transmission;
S4007, Value Length field fills out 0, represents no data transmission;
S4008, Value Data CRC Value field fills out 0, represents no data transmission;
S4009, Command Data CRC Value field fills out the crc value of command sequence data.
S401, server determines that the action type of described storage operation requests, storage class mark and described storage refer to Make the memory address of sequence.
In implementing, the memory address that NVMe drives layer to deposit sequence of store instructions passes to NVMe order modulus of conversion Block, and determine that the action type storing operation requests, for deletion or discarding data, determines that the storage class of storage operation requests is Key assignments stores, and generates corresponding storage class mark according to the storage class of storage operation requests, is used for indicating that this storage operates Request is the operation requests of key assignments storage.
S402, server is according to action type, the described storage class mark of described storage operation requests and described deposits The memory address of storage command sequence generates memory request queue.
In implementing, server generates memory request queue, by NVMe command conversion module in memory request queue DWORD0 field fills out the action type (i.e. NVMe write order command code 01h) of storage operation requests, in memory request queue SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue Fill out the memory address that sequence of store instructions is deposited.Concrete, memory request queue such as Fig. 5 for asking deletion data of generation B, shown in (), Fig. 5 (b) is memory request queue's schematic diagram that another embodiment of the present invention provides.
Concrete, generation shown for memory request queue such as Fig. 5 (c) of asking discarding data, Fig. 5 (c) is this Memory request queue's schematic diagram that another embodiment bright provides.
As a kind of enforceable mode, storage class mark exists according to the storage data of mark in memory request queue Described storage needs the position of storage and the length of the data of described storage and the appearance whether being more than described storage control Amount determines that storage class identifies whether as prepending non-significant value.For example, when the storage total capacity of storage medium is X, in storage request It is Y that the SLBA field of queue fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X when, i.e. represent What Y and Z inserted is invalid value, when the data namely operating exceed the capacity of rear end storage medium, is i.e. considered invalid value.
S403, the described memory request queue of server transmission is to storage control, and described memory request queue is used for indicating Described storage control performs to delete the storage operation of data or discarding data according to described memory request queue.
In implementing, NVMe drives the described memory request queue of layer transmission to storage control, so that storage control Perform to delete the storage operation of data or discarding data according to the memory request queue receiving.
S404, storage control obtains memory request queue.
S405, described storage control obtains the internal memory ground of described sequence of store instructions according to described memory request queue Location, the action type of storage operation requests and storage class mark.
S406, described storage control identifies the storage class determining described storage operation requests according to described storage class For key assignments storage.
The SLBA field in NVMe command process element analysis memory request queue in implementing, in storage control It is invalid value with NLB field, then be judged to key assignments storage operation.
S407, described storage control obtains described storage sequence of instructions according to the memory address of described sequence of store instructions Row.
In implementing, NVMe command process element analysis sends deletion or discard instruction, Key in memory request queue Address information, submit to delete or the storage operation requests of abandonment operations to key assignments storage processing unit.
S408, described sequence of store instructions is held by described storage control according to the action type of described storage operation requests Row delete data or discarding data key assignments storage operation.
In implementing, key assignments storage processing unit process Key information, conversion delete or abandonment operations storage operation Deletion that request is corresponding storage device or abandonment operations, and submit to delete or the storage operation requests of abandonment operations to depositing Storage control unit, finally by storage control unit perform storage medium (such as back-end storage device) deletion or abandonment operations.
S409, described storage control output function status information.
In implementing, storage control to storage medium (such as back-end storage device) perform delete or abandonment operations After, return operational status information to server, with indicate storage control perform to delete or the state of discarded storage operation. Specifically, store control unit perform to storage medium to delete or after abandonment operations, return behaviour to key assignments storage processing unit Make status information, then sent to server by key assignments memory cell and foregoing units.
S410, server receives the operational status information that described storage control returns, and described operational status information is used for Indicate that described storage control performs the state storing operation of described deletion data or discarding data.
In implementing, the NVMe command conversion module transmission operational status information in server is to middleware.Finally, in Between part return operational status information terminate to application layer, process.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 6 (a), Fig. 6 (a) is the flow process signal of a kind of another embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 6 (a).The storage operation of at least two key assignments Alternatively referred to as converging operation.So-called converging operation, refers to once to be polymerized the request of storage operation and can complete multiple single simultaneously and deposit The request of storage operation, the flow process of flow process and single request operation is basically identical.Except for the difference that, multiple keys (Key) or value (Value) need to pass to storage control by SGL (poly-scattered table) by NVMe transmit queue.Storage for converging operation The corresponding command code of action type of operation requests can be as follows:
Command code Instruction description
06h Data are write in polymerization: Write
07h Polymerization obtains data: Read
08h Polymerization obtains the length of the corresponding Value of Key: GetLength
09h Data: Delete is deleted in polymerization
0Ah Polymerization discarding data: TRIM
As a example by polymerization removal request, polymerization deletion data command (09h) is used once to delete 4 keys (Key) corresponding Value (Value) data.Fig. 6 (a) embodiment is the deletion at least two key assignments for the action type of storage operation requests Data are specifically described.The storage class of storage operation requests is key assignments storage.
When key assignments is stored as converging operation, use the address information of multiple Key or Value of SGL table record, SGL table It is one section of continuous print memory address;One SGL table can have multiple entry, previous entry after having deposited, and then deposit rear one Individual entry;Each entry represents the address information of Key or Value, and each entry is by SGL Key Pointer, SGL Key length and tri-element compositions of SGL Key data CRC value, SGL table definition form such as Fig. 6 B, shown in (), Fig. 6 (b) is the SGL table definition form schematic diagram that another embodiment of the present invention provides.
Its field definition is as follows:
Generate converging operation sequence of store instructions flow process (not shown) particularly as follows:
S1, the memory headroom that host computer side distribution key assignments sequence of store instructions is deposited.
S2, stores, according to key assignments, the number that operation requests needs Key or Value of operation, calculates entry in SGL Number;Calculate the size of SGL table in the number according to entry;At the memory headroom that host computer side distribution SGL table is deposited.
S3, stores the needs of operation requests according to key assignments, and KV Command field fills out the command code of polymerization instruction.
S4, stores the needs of operation requests according to key assignments, and the SGL table that Key Pointer field fills out the use of Key data is deposited Memory pointer.
S5, stores the needs of operation requests according to key assignments, and Key Length field fills out the length of the SGL table that Key data use Degree.
S6, stores the needs of operation requests according to key assignments, and Key Data CRC Value field fills out what Key data used The crc value of SGL table data.
S7, stores the needs of operation requests according to key assignments, and Value Pointer field fills out the SGL table that Value data use The memory pointer deposited.
S8, stores the needs of operation requests according to key assignments, and Value Length field fills out the SGL table that Value data use Length.
S9, stores the needs of operation requests according to key assignments, and Value Data CRC Value field fills out Value data to be made The crc value of SGL table data.
S10, fills SGL contents in table.
S11, first SGL Pointer fill out the memory pointer that first key or Value deposits.
S12, first SGL Length field fills out the length of first key or Value.
S13, the crc value of first SGL Data first key or Value of CRC Value.
S14, is inserted whole key or Value information in SGL table successively by preceding step.
S15, Command Data CRC Value field fills out the crc value of command sequence data.
As shown in Figure 6, a kind of another embodiment storing method of the embodiment of the present invention may comprise steps of.
S500, server obtains storage operation requests, generates sequence of store instructions according to described storage operation requests, generates Sequence of store instructions include the sub-sequence of store instructions of at least two key assignments.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.Specifically, the application module of application layer calls the deletion interface of middleware: its code is Delete_ Group (String Key group), to carry out deleting the operation of at least two key assignments, is submitted to depositing of deletion action by middleware The address information that storage operation requests (i.e. deleting the command code of at least two key assignments operation), Key data are deposited drives layer to NVMe. NVMe drives layer to generate sequence of store instructions according to the storage operation requests deleting the operation of at least two key assignments.
As a kind of enforceable mode, generate the flow process of the sequence of store instructions deleting the operation of at least two key assignments (not Diagram) particularly as follows:
S5001, applies for that 64 byte of memorys do KV command sequence;
S5002, every key record accounts for 24 bytes at SGL, distributes SGL table internal memory according to Key number;
S5003, KV Command field fills out polymerization deletion action code 09h, and this field is for indicating storage operation requests Action type is for deleting the action type of at least two key assignments;
S5004, Key Pointer field fills out the memory pointer that SGL table is deposited;
S5005, Key Length field fills out the length of SGL table;
S5006, Key Data CRC Value field fills out the crc value of SGL table data;
S5007, first SGL Pointer fill out the memory pointer that first key deposits;
S5008, first SGL Length field fills out the length of first Key;
S5009, the crc value of first SGL Data first Key of CRC Value;
S5010, is inserted whole Key information in SGL table successively by preceding step;
S5011, Value Pointer field fills out 0, represents no data transmission;
S5012, Value Length field fills out 0, represents no data transmission;
S5013, Value Data CRC Value field fills out 0, represents no data transmission;
S5014, Command Data CRC Value field fills out the crc value of command sequence data.
S501, server determines the action type of described storage operation requests, storage class mark, for described at least two The sub-sequence of store instructions of individual key assignments determines corresponding memory address.
In implementing, the memory address that NVMe drives layer to deposit sequence of store instructions passes to NVMe order modulus of conversion Block, and determine that the action type of storage operation requests, for deleting at least two key assignments, determines the storage class of storage operation requests For key assignments storage, generate corresponding storage class mark according to the storage class of storage operation requests, be used for indicating that this storage is grasped Make the operation requests for key assignments storage for the request.
S502, server according to described storage operation requests action type, described storage class mark and described extremely The memory address of the sub-sequence of store instructions of few two key assignments generates memory request queue.
In implementing, server generates memory request queue, by NVMe command conversion module in memory request queue DWORD0 field fills out the action type (i.e. NVMe write order command code 01h) of storage operation requests, in memory request queue SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue Fill out the memory address that sequence of store instructions is deposited.Concrete, the storage request for asking deletion at least two key assignments of generation Shown in queue such as Fig. 6 (c), Fig. 6 (c) is memory request queue's schematic diagram that another embodiment of the present invention provides.
As a kind of enforceable mode, storage class identifies the storage data according to mark in memory request queue in institute State the position needing storage in storage and the length of the data of described storage and the capacity whether being more than described storage control Determine that storage class identifies whether as prepending non-significant value.For example, when the storage total capacity of storage medium is X, team is asked in storage To fill out logical blocks initial address be Y to the SLBA field of row, and the quantity that NLB field fills out logical block is Z, as Y+Z > X when, i.e. represent Y Insert with Z is invalid value, when the data namely operating exceed the capacity of rear end storage medium, is i.e. considered invalid value.
S503, the described memory request queue of server transmission is to storage control, and described memory request queue is used for indicating Described storage control performs to delete the storage operation of described at least two key assignments according to described memory request queue.
In implementing, NVMe drives the described memory request queue of layer transmission to storage control, so that storage control Perform to delete the storage operation of at least two key assignments according to the memory request queue receiving.
S504, storage control obtains memory request queue.
S505, described storage control obtains the internal memory ground of described sequence of store instructions according to described memory request queue Location, the action type of storage operation requests and storage class mark.
S506, described storage control identifies the storage class determining described storage operation requests according to described storage class For key assignments storage.
The SLBA field in NVMe command process element analysis memory request queue in implementing, in storage control It is invalid value with NLB field, then be judged to key assignments storage operation.
S507, described storage control obtains described storage sequence of instructions according to the memory address of described sequence of store instructions Row.
S508, described sequence of store instructions is held by described storage control according to the action type of described storage operation requests Row deletes the key assignments storage operation of described at least two key assignments.
In implementing, NVMe command process element analysis sends the deletion at least two key assignments in memory request queue Instruction, the address information of SGL, submit to the storage operation requests deleting at least two key assignments to key assignments storage processing unit.Key assignments The Key that SGL is heavily deposited by storage processing unit is processed one by one, and conversion converging operation is in the corresponding storage device of each Key The storage operation requests of the deletion at least two key assignments of data, submits to request to storage control unit, finally single by storage control At least two key assignments in storage medium (such as back-end storage device) is deleted by unit.
S509, described storage control output function status information.
In implementing, at least two key assignments in storage medium (such as back-end storage device) is carried out by storage control unit After deletion, return operational status information to server, to indicate that storage control performs to delete the storage behaviour of at least two key assignments The state made.Specifically, after storage medium is performed to delete at least two key assignments by storage control unit, process single to key assignments storage Unit returns operational status information, then is sent to server by key assignments memory cell and foregoing units.
S510, server receives the operational status information that described storage control returns, and described operational status information is used for Indicate that described storage control performs the state of the described storage operation deleting described at least two key assignments.
In implementing, the NVMe command conversion module transmission operational status information in server is to middleware.Finally, in Between part return operational status information terminate to application layer, process.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 7 (a), Fig. 7 (a) is the flow process signal of a kind of another embodiment storing method of the embodiment of the present invention Figure.Server shown in Fig. 1 and storage control perform the storage method shown in Fig. 7 (a).Fig. 7 (a) embodiment is for storage behaviour The action type making to ask is specifically described for storage data (i.e. write operation).The storage class of storage operation requests is that block is deposited Storage.
As shown in Fig. 7 (a), a kind of another embodiment storing method of the embodiment of the present invention may comprise steps of.
S600, server obtains storage operation requests, generates sequence of store instructions according to described storage operation requests.
In implementing, the storage operation requests of server read data packet, the storage operation requests for packet is raw Become sequence of store instructions.Specifically, what traditional application module of application layer called file system writes interface, is submitted to by file system The storage operation requests of write operation drives layer to NVMe, and NVMe drives layer to generate standard according to the storage operation requests of write operation NVMe sequence of store instructions.
As a kind of enforceable mode, generating shown in NVMe sequence of store instructions such as Fig. 7 (b) of standard, Fig. 7 (b) is The NVMe sequence of store instructions schematic diagram that another embodiment of the present invention provides.
S601, server determines that the action type of described storage operation requests, storage class mark and described storage refer to Make the memory address of sequence.
In implementing, server generates the NVMe memory request queue of standard, determines the operation class of storage operation requests Type is write operation, determines storage class mark instruction block storage, and determines the memory address of described sequence of store instructions.
As a kind of enforceable mode, when storage class is designated block storage, storage class is designated and is preset with valid value.
As a kind of enforceable mode, storage class identifies the storage data according to mark in memory request queue in institute State the position needing storage in storage and the length of the data of described storage and the capacity whether being more than described storage control Determine that storage class identifies whether as being preset with valid value.For example, when the storage total capacity of storage medium is X, team is asked in storage It is Y that the SLBA field of row fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, when Y+Z < during X, i.e. represents Y Insert with Z is virtual value, when the data namely operating are less than the capacity of rear end storage medium, is i.e. considered virtual value.
S602, server is according to action type, the described storage class mark of described storage operation requests and described deposits The memory address of storage command sequence generates memory request queue, and the storage class of described storage operation requests is block storage.
In implementing, NVMe drives layer to identify according to action type, the described storage class of described storage operation requests And the memory address of described sequence of store instructions generates memory request queue, wherein, the storage class of storage operation requests is Block stores.
S603, the described memory request queue of server transmission is to storage control, and described memory request queue is used for indicating Described storage control performs the storage operation of storage data according to described memory request queue.
In implementing, NVMe drives the described memory request queue of layer transmission to storage control, so that storage control Perform the storage operation of storage data according to the memory request queue receiving.
S604, storage control obtains memory request queue.
S605, described storage control obtains the internal memory ground of described sequence of store instructions according to described memory request queue Location, the action type of storage operation requests and storage class mark.
S606, described storage control identifies the storage class determining described storage operation requests according to described storage class For block storage.
The SLBA field in NVMe command process element analysis memory request queue in implementing, in storage control It with NLB field for being preset with valid value, then is judged to block storage operation.
S607, described storage control obtains described storage sequence of instructions according to the memory address of described sequence of store instructions Row.
S608, described sequence of store instructions is held by described storage control according to the action type of described storage operation requests The block storage operation of row storage data.
In implementing, NVMe command process element analysis sends the write command in memory request queue, Key and Value Address information, submit to write operation storage operation requests to NVMe operation processing unit.NVMe operates processing unit transition write The storage operation requests of operation is the write operation requests of corresponding storage device, and submits to the storage operation requests of write operation to storage Control unit, is finally carried out block storage by storage control unit to storage medium (such as back-end storage device).
S609, described storage control output function status information.
In implementing, after storage control writes data to back-end storage device, return operational status information to server, Perform to write the state of the storage operation of data with instruction storage control.Specifically, store control unit to carry out storage medium After block storage, return operational status information to NVMe operation processing unit, then NVMe is operated processing unit submission operation shape State information, to NVMe command process unit, is completed queue by NVMe command process unit write operation status information to NVMe.Finally NVMe is completed queue and sends the NVMe command conversion module to server by NVMe command process unit.
S610, server receives the operational status information that described storage control returns, and described operational status information is used for Indicate that described storage control performs the state of the storage operation of described storage data.
In implementing, NVMe command conversion module completes to obtain queue to submit operational status information to from NVMe, will obtain The submission operational status information got sends to block layer.Block layer submits to operational status information to submit to file system, file system Operational status information is to tradition application layer module, and process terminates.
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 8, Fig. 8 is the structural representation of another embodiment of the server of the embodiment of the present invention.Shown in Fig. 8 Server can be realized by Fig. 1 (a) and server shown in Fig. 1 (b), can also by special IC (English: Application-specific integrated circuit, abbreviation: ASIC) realize, or PLD (English: Programmable logic device, abbreviation: PLD) realize.Above-mentioned PLD can be CPLD (English: Complex programmable logic device, abbreviation: CPLD), FPGA, GAL is (English: generic Array logic, abbreviation: GAL) or its any combination.Server is for realizing the storage method shown in Fig. 2 to Fig. 7.By soft When part realizes storage method as shown in Figures 2 to 7, server also can be software module.
Server can include acquisition module the 800th, determining module the 801st, generation module the 802nd, sending module 803 and receive mould Block 804.When acquisition module 800 works, perform step S100 shown in Fig. 2 (a), step S200 shown in Fig. 3 (a), Fig. 4 (a) Step S400 shown in shown step S300, Fig. 5 (a), step S500 shown in Fig. 6 (a) and the step shown in Fig. 7 (a) S600.When determining module 801 works, perform step S101 shown in Fig. 2 (a), step S201 shown in Fig. 3 (a), Fig. 4 (a) Step S401 shown in shown step S301, Fig. 5 (a), step S501 shown in Fig. 6 (a) and the step shown in Fig. 7 (a) S601.When generation module 802 works, perform step S102 shown in Fig. 2 (a), step S202 shown in Fig. 3 (a), Fig. 4 (a) institute Step S402 shown in step S302 shown, Fig. 5 (a), step S502 shown in Fig. 6 (a) and the step shown in Fig. 7 (a) S602.When sending module 803 works, perform step S103 shown in Fig. 2 (a), step S203 shown in Fig. 3 (a), Fig. 4 (a) institute Step S403 shown in step S303 shown, Fig. 5 (a), step S503 shown in Fig. 6 (a) and the step shown in Fig. 7 (a) S603.When receiver module 804 works, perform step S210 shown in Fig. 3 (a), step S310 shown in Fig. 4 (a), Fig. 5 (a) institute Step S510 shown in step S410 shown, Fig. 6 (a) and step S610 shown in Fig. 7 (a).
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Referring to Fig. 9, Fig. 9 is the structural representation of another embodiment of the storage control of the embodiment of the present invention.Fig. 8 institute The storage control showing can also pass through special IC by Fig. 1 (a) and the Implementing Memory Controllers shown in Fig. 1 (b) (English: application-specific integrated circuit, abbreviation: ASIC) realize, or PLD (English: programmable logic device, abbreviation: PLD) realize.Above-mentioned PLD can be CPLD (English: complex programmable logic device, abbreviation: CPLD), FPGA, GAL (English: Generic array logic, abbreviation: GAL) or its any combination.Storage control is for realizing depositing shown in Fig. 2 to Fig. 7 Method for storing.During the storage method realizing as shown in Figures 2 to 7 by software, storage control also can be software module.
Storage control can include that the 900th, acquisition module performs module 901 and output module 902, acquisition module 900 work When making, perform the step shown in step S204-S205 shown in Fig. 3 (a), step S304-S305 shown in Fig. 4 (a), Fig. 5 (a) Step S504-S505 shown in S404-S405, Fig. 6 (a) and step S604-S605 shown in Fig. 7 (a).Perform module 901 During work, perform the step shown in step S206-S208 shown in Fig. 3 (a), step S306-S308 shown in Fig. 4 (a), Fig. 5 (a) Rapid step S506-S508 shown in S406-S408, Fig. 6 (a) and step S606-S608 shown in Fig. 7 (a).Output module During 902 work, step S409 shown in step S209 shown in execution Fig. 3 (a), step S309 shown in Fig. 4 (a), Fig. 5 (a), Step S509 shown in Fig. 6 (a) and step S609 shown in Fig. 7 (a).
Use the embodiment of the present invention, utilize the data segment that agreement is pointed to transmit the memory request queue of key assignments storage, deposit Storage request queue contains the storage action type of operation requests, the memory address of sequence of store instructions, storage class mark, Storage class mark is used for indicating that the storage class of storage operation requests is key assignments storage or block storage, so that storage control Perform corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and Time delay, improves key assignments storage efficiency.Additionally, by standard storage agreement so that storage control system or storage control are same When have key assignments storage and block storage characteristic.
Device embodiment described above is only schematically, and the wherein said unit illustrating as separating component can To be or to may not be physically separate, as the parts that unit shows can be or may not be physics list Unit, i.e. may be located at a place, or also can be distributed on multiple NE.Can be selected it according to the actual needs In some or all of module realize the purpose of the present embodiment scheme.Those of ordinary skill in the art are not paying creativeness Work in the case of, be i.e. appreciated that and implement.
Step in embodiment of the present invention method can carry out order according to actual needs and adjust, merges and delete.
Module in embodiment of the present invention device or unit can merge according to actual needs, divide and delete.
The module of the embodiment of the present invention or module, can be with universal integrated circuit (such as central processor CPU), or with special Integrated circuit (ASIC) realizes.
Through the above description of the embodiments, those skilled in the art it can be understood that to each embodiment can The mode adding required general hardware platform by software realizes, naturally it is also possible to pass through hardware.Based on such understanding, on State the part that prior art contributes by technical scheme substantially in other words to embody with the form of software product, should Computer software product can store in a computer-readable storage medium, such as ROM/RAM, magnetic disc, CD etc., including some fingers Order is with so that a computer equipment (can be personal computer, server, or the network equipment etc.) performs each and implements The method described in some part of example or embodiment.
Embodiments described above, is not intended that the restriction to this technical scheme protection domain.Any in above-mentioned enforcement Modification, equivalent and the improvement etc. made within the spirit of mode and principle, should be included in the protection model of this technical scheme Within enclosing.

Claims (30)

1. a storage method, it is characterised in that include:
Obtain storage operation requests, generate sequence of store instructions according to described storage operation requests;
Determine the internal memory ground of action type, storage class mark and the described sequence of store instructions of described storage operation requests Location, described storage class mark is for indicating that the storage class of described storage operation requests is key assignments storage or block storage;
The internal memory of the action type according to described storage operation requests, described storage class mark and described sequence of store instructions Address generates memory request queue;
Sending described memory request queue to storage control, described memory request queue is used for indicating described storage control root Perform corresponding storage operation according to described memory request queue.
2. storage method according to claim 1, it is characterised in that described storage class mark is used for indicating described storage When the storage class of operation requests is key assignments storage, described storage class is designated prepending non-significant value.
3. storage method according to claim 1, it is characterised in that described storage class mark is used for indicating described storage When the storage class of operation requests is key assignments storage, described storage class mark is according to the storage number of mark in memory request queue According to the length of the data needing position and the described storage storing in described storage with whether more than described storage control Capacity determine.
4. storage method according to claim 1, it is characterised in that the action type of described storage operation requests is storage Data, any one reading in data, deletion data and discarding data.
5. storage method according to claim 4, it is characterised in that when described storage operation requests is for asking key assignments When storage operates, the action type of described storage operation requests is to read data, described according to described storage operation requests generation Sequence of store instructions, comprising:
Obtain key assignments length according to described storage operation requests, generate sequence of store instructions according to described key assignments length.
6. storage method according to claim 1, it is characterised in that when described storage operation requests is for request at least two When the storage of individual key assignments operates, then the sequence of store instructions generating includes the sub-sequence of store instructions of at least two key assignments;
The internal memory of described action type, storage class mark and the described sequence of store instructions determining described storage operation requests Address, comprising:
Determine action type, the storage class mark of described storage operation requests, for the son storage of described at least two key assignments Command sequence determines corresponding memory address.
7. storage method according to claim 1, it is characterised in that described method also includes:
Receiving the operational status information that described storage control returns, described operational status information is used for indicating described storage control Device performs the state of corresponding storage operation.
8. a storage method, it is characterised in that include:
Storage control obtains memory request queue;
Described storage control obtains the memory address of described sequence of store instructions, storage operation according to described memory request queue The action type of request and storage class mark, described storage class mark is for indicating the storage of described storage operation requests Type is key assignments storage or block storage;
Described storage control according to the memory address of described sequence of store instructions, the action type of described storage operation requests with And described storage class mark performs corresponding storage operation.
9. storage method according to claim 8, it is characterised in that described storage class mark is used for indicating described storage When the storage class of operation requests is key assignments storage, described storage class is designated prepending non-significant value.
10. storage method according to claim 8, it is characterised in that described storage class mark be used for indicating described in deposit When the storage class of storage operation requests is key assignments storage, described storage class mark is according to the storage of mark in memory request queue Data need the length of the data of position and the described storage storing and whether more than described storage control in described storage The capacity of device determines.
11. storage methods according to claim 8, it is characterised in that the action type of described storage operation requests is for depositing Storage data, any one reading in data, deletion data and discarding data.
12. storage methods according to claim 8, it is characterised in that described storage control is according to described storage instruction The memory address of sequence, the action type of described storage operation requests and described storage class mark perform corresponding storage behaviour Make, comprising:
Described storage control identifies according to described storage class and determines that the described storage class storing operation requests is that key assignments is deposited Storage;
Described storage control obtains described sequence of store instructions according to the memory address of described sequence of store instructions;
Described sequence of store instructions is performed corresponding according to the action type of described storage operation requests by described storage control Key assignments storage operation.
13. storage methods according to claim 8, it is characterised in that described storage control is according to described storage instruction The memory address of sequence, the action type of described storage operation requests and described storage class mark perform corresponding storage behaviour Make, comprising:
Described storage control identifies according to described storage class and determines that the described storage class storing operation requests is block storage;
Described storage control obtains described sequence of store instructions according to the memory address of described sequence of store instructions;
Described sequence of store instructions is performed corresponding according to the action type of described storage operation requests by described storage control Block storage operation.
14. storage methods according to claim 8, it is characterised in that described method also includes:
Described storage control output function status information, described operational status information is used for indicating that described storage control performs The state of corresponding storage operation.
15. 1 kinds of servers, it is characterised in that include:
Acquisition module, is used for obtaining storage operation requests, generates sequence of store instructions according to described storage operation requests;
Determining module, for determine the action type of storage operation requests that described acquisition module obtains, storage class identify with And the memory address of described sequence of store instructions, described storage class mark is for indicating the storage class of described storage operation requests Type is key assignments storage or block storage;
Generation module, the action type of the storage operation requests for determining according to described determining module, described storage class mark Know and the memory address of described sequence of store instructions generates memory request queue;
Sending module, for send described generation module generate memory request queue to storage control, described storage ask Queue is used for indicating that described storage control performs corresponding storage operation according to described memory request queue.
16. servers according to claim 15, it is characterised in that described storage class mark is used for indicating described storage When the storage class of operation requests is key assignments storage, described storage class is designated prepending non-significant value.
17. servers according to claim 15, it is characterised in that described storage class mark is used for indicating described storage When the storage class of operation requests is key assignments storage, described storage class mark is according to the storage number of mark in memory request queue According to the length of the data needing position and the described storage storing in described storage with whether more than described storage control Capacity determine.
18. servers according to claim 15, it is characterised in that the action type of described storage operation requests is storage Data, any one reading in data, deletion data and discarding data.
19. servers according to claim 17, it is characterised in that when described storage operation requests is for asking key assignments When storage operation, the action type of described storage operation requests are for reading data, described generation module, specifically for:
Obtain key assignments length according to described storage operation requests, generate sequence of store instructions according to described key assignments length.
20. servers according to claim 15, it is characterised in that when described storage operation requests is for request at least two When the storage of individual key assignments operates, then the sequence of store instructions generating includes the sub-sequence of store instructions of at least two key assignments;
Described determining module, specifically for determining action type, the storage class mark of described storage operation requests, for described The sub-sequence of store instructions of at least two key assignments determines corresponding memory address.
21. servers according to claim 15, it is characterised in that described server also includes:
Receiver module, for receiving the operational status information that described storage control returns, described operational status information is used for referring to Show that described storage control performs the state of corresponding storage operation.
22. 1 kinds of servers, it is characterised in that include memory and processor, wherein:
Described memory stores batch processing code, and described processor calls the program code of storage in described memory, For performing the storage method described in any one of claim 1 to 7.
23. 1 kinds of storage controls, it is characterised in that include:
Acquisition module, is used for obtaining memory request queue;
Described acquisition module, is additionally operable to obtain the memory address of described sequence of store instructions according to described memory request queue, deposit The action type of storage operation requests and storage class mark, described storage class mark is used for indicating described storage operation requests Storage class be key assignments storage or block storage;
Perform module, for according to the memory address of described sequence of store instructions, the action type of described storage operation requests with And described storage class mark performs corresponding storage operation.
24. storage controls according to claim 23, it is characterised in that described storage class mark is used for indicating described When the storage class of storage operation requests is key assignments storage, described storage class is designated prepending non-significant value.
25. storage controls according to claim 23, it is characterised in that described storage class mark is used for indicating described When the storage class of storage operation requests is key assignments storage, described storage class mark is according to depositing of identifying in memory request queue Storage data need the length of the data of position and the described storage storing and whether more than described storage control in described storage The capacity of device processed determines.
26. storage controls according to claim 23, it is characterised in that the action type of described storage operation requests is Storage data, any one reading in data, deletion data and discarding data.
27. storage controls according to claim 23, it is characterised in that described execution module, specifically for:
Identify according to described storage class and determine that the described storage class storing operation requests is key assignments storage;
Memory address according to described sequence of store instructions obtains described sequence of store instructions;
Action type according to described storage operation requests performs the storage operation of corresponding key assignments to described sequence of store instructions.
28. storage controls according to claim 23, it is characterised in that described execution module, specifically for:
Identify according to described storage class and determine that the described storage class storing operation requests is block storage;
Memory address according to described sequence of store instructions obtains described sequence of store instructions;
Action type according to described storage operation requests performs the storage operation of corresponding block to described sequence of store instructions.
29. storage controls according to claim 23, it is characterised in that described storage control also includes:
Output module, is used for output function status information, and described operational status information is used for indicating that described storage control performs The state of corresponding storage operation.
30. 1 kinds of storage controls, it is characterised in that include that command process unit, operation processing unit, key assignments storage process single Unit and storage control unit, for performing the storage method described in any one of claim 8 to 14.
CN201610378340.7A 2016-05-31 2016-05-31 A kind of storage method, server and storage control Active CN106155586B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610378340.7A CN106155586B (en) 2016-05-31 2016-05-31 A kind of storage method, server and storage control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610378340.7A CN106155586B (en) 2016-05-31 2016-05-31 A kind of storage method, server and storage control

Publications (2)

Publication Number Publication Date
CN106155586A true CN106155586A (en) 2016-11-23
CN106155586B CN106155586B (en) 2019-03-08

Family

ID=57353508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610378340.7A Active CN106155586B (en) 2016-05-31 2016-05-31 A kind of storage method, server and storage control

Country Status (1)

Country Link
CN (1) CN106155586B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402723A (en) * 2017-07-25 2017-11-28 北京腾凌科技有限公司 Read and write the method and storage system of data
CN108549682A (en) * 2018-03-30 2018-09-18 宁波诺信睿聚投资有限责任公司 Management method, device, equipment and the storage medium of data object resource
WO2020199760A1 (en) * 2019-03-29 2020-10-08 华为技术有限公司 Data storage method, memory and server
WO2020223849A1 (en) * 2019-05-05 2020-11-12 Yangtze Memory Technologies Co., Ltd. Memory control system with a sequence processing unit
CN112445412A (en) * 2019-08-28 2021-03-05 华为技术有限公司 Data storage method and device
CN112615917A (en) * 2017-12-26 2021-04-06 华为技术有限公司 Management method of storage equipment in storage system and storage system

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1543092A (en) * 2003-11-07 2004-11-03 清华大学 SCSI instruction optimization method based on FC-SAN storage device
CN1642167A (en) * 2004-01-08 2005-07-20 华为技术有限公司 Method for main node supporting different agreement type secondary unit apparatus on secondary node
CN1735869A (en) * 2001-09-27 2006-02-15 英特尔公司 Method and apparatus for memory access scheduling to reduce memory access latency
US7554978B1 (en) * 2004-03-30 2009-06-30 Extreme Networks, Inc. System for accessing content-addressable memory in packet processor
US8001332B2 (en) * 2008-04-30 2011-08-16 Siemens Aktiengesellschaft Adaptive caching for high volume extract transform load process
CN102831014A (en) * 2012-07-30 2012-12-19 华中科技大学 Method for prompting IO (input/output) parallelism and reducing small IO delay by utilizing multiple request queues
CN103543960A (en) * 2013-10-12 2014-01-29 创新科存储技术有限公司 Method for storing data
CN104333614A (en) * 2014-10-31 2015-02-04 北京奇虎科技有限公司 Terminal recognition method, device and system
CN104618484A (en) * 2015-02-05 2015-05-13 浪潮电子信息产业股份有限公司 Key value pair based transverse expansion high-performance storing method
CN104704569A (en) * 2012-12-19 2015-06-10 惠普发展公司,有限责任合伙企业 NVRAM path selection
CN103312624B (en) * 2012-03-09 2016-03-09 腾讯科技(深圳)有限公司 A kind of Message Queuing Services system and method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1735869A (en) * 2001-09-27 2006-02-15 英特尔公司 Method and apparatus for memory access scheduling to reduce memory access latency
CN1543092A (en) * 2003-11-07 2004-11-03 清华大学 SCSI instruction optimization method based on FC-SAN storage device
CN1642167A (en) * 2004-01-08 2005-07-20 华为技术有限公司 Method for main node supporting different agreement type secondary unit apparatus on secondary node
US7554978B1 (en) * 2004-03-30 2009-06-30 Extreme Networks, Inc. System for accessing content-addressable memory in packet processor
US8001332B2 (en) * 2008-04-30 2011-08-16 Siemens Aktiengesellschaft Adaptive caching for high volume extract transform load process
CN103312624B (en) * 2012-03-09 2016-03-09 腾讯科技(深圳)有限公司 A kind of Message Queuing Services system and method
CN102831014A (en) * 2012-07-30 2012-12-19 华中科技大学 Method for prompting IO (input/output) parallelism and reducing small IO delay by utilizing multiple request queues
CN104704569A (en) * 2012-12-19 2015-06-10 惠普发展公司,有限责任合伙企业 NVRAM path selection
CN103543960A (en) * 2013-10-12 2014-01-29 创新科存储技术有限公司 Method for storing data
CN104333614A (en) * 2014-10-31 2015-02-04 北京奇虎科技有限公司 Terminal recognition method, device and system
CN104618484A (en) * 2015-02-05 2015-05-13 浪潮电子信息产业股份有限公司 Key value pair based transverse expansion high-performance storing method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402723A (en) * 2017-07-25 2017-11-28 北京腾凌科技有限公司 Read and write the method and storage system of data
CN107402723B (en) * 2017-07-25 2020-05-12 北京腾凌科技有限公司 Method for reading and writing data and storage system
CN112615917A (en) * 2017-12-26 2021-04-06 华为技术有限公司 Management method of storage equipment in storage system and storage system
CN112615917B (en) * 2017-12-26 2024-04-12 华为技术有限公司 Storage device management method in storage system and storage system
CN108549682A (en) * 2018-03-30 2018-09-18 宁波诺信睿聚投资有限责任公司 Management method, device, equipment and the storage medium of data object resource
WO2020199760A1 (en) * 2019-03-29 2020-10-08 华为技术有限公司 Data storage method, memory and server
WO2020223849A1 (en) * 2019-05-05 2020-11-12 Yangtze Memory Technologies Co., Ltd. Memory control system with a sequence processing unit
CN112925728A (en) * 2019-05-05 2021-06-08 长江存储科技有限责任公司 Memory control system with sequential processing units
CN112445412A (en) * 2019-08-28 2021-03-05 华为技术有限公司 Data storage method and device
CN112445412B (en) * 2019-08-28 2024-06-11 华为技术有限公司 Data storage method and device

Also Published As

Publication number Publication date
CN106155586B (en) 2019-03-08

Similar Documents

Publication Publication Date Title
CN106155586A (en) A kind of storage method, server and storage control
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US10331351B2 (en) Memory controllers, memory systems, solid state drives and methods for processing a number of commands
CN108519862A (en) Storage method, device, system and the storage medium of block catenary system
CN108885584A (en) It is transmitted using the unordered reading of host memory buffers
US8874822B2 (en) Scheduling access requests for a multi-bank low-latency random read memory device
US10248623B1 (en) Data deduplication techniques
CN102725753B (en) Method and apparatus for optimizing data access, method and apparatus for optimizing data storage
US9846650B2 (en) Tail response time reduction method for SSD
CN102486752B (en) Data pre-fetching in SAS expander
CN109840215A (en) The processing of unjustified write-in
CN105830022B (en) The method and apparatus for accessing file
CN103218270B (en) There is the computer of multiple solid-state disk
CN110447009A (en) The system and method for obtaining polymerization for adaptive command
KR102603070B1 (en) Memory system, a method of writing data to the memory system, and a method of reading data from the memory system
CN106708751A (en) Storage device including multi-partitions for multimode operations, and operation method thereof
CN107273042A (en) Deduplication DRAM system algorithm framework
US6311257B1 (en) Method and system for allocating memory for a command queue
CN105892955A (en) Method and equipment for managing storage system
CN104750432B (en) A kind of date storage method and device
CN102945275B (en) File defragmentation method, device and equipment
CN107533440A (en) Identify disc driver and processing data access request
CN106598724A (en) Computing system memory management method
CN103078845A (en) Method for calibrating access control list (ACL), and shared storage system
WO2019174206A1 (en) Data reading method and apparatus of storage device, terminal device, and storage medium

Legal Events

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