CN106155586A - A kind of storage method, server and storage control - Google Patents
A kind of storage method, server and storage control Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration 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
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.
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)
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)
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 |
-
2016
- 2016-05-31 CN CN201610378340.7A patent/CN106155586B/en active Active
Patent Citations (11)
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)
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 |