CN106155586B - A kind of storage method, server and storage control - Google Patents
A kind of storage method, server and storage control Download PDFInfo
- Publication number
- CN106155586B CN106155586B CN201610378340.7A CN201610378340A CN106155586B CN 106155586 B CN106155586 B CN 106155586B CN 201610378340 A CN201610378340 A CN 201610378340A CN 106155586 B CN106155586 B CN 106155586B
- Authority
- CN
- China
- Prior art keywords
- storage
- operation requests
- sequence
- key assignments
- data
- 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.)
- Active
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 present invention provides a kind of storage methods, server and storage control, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, the action type of storage operation requests is contained in memory request queue, the memory address of sequence of store instructions, storage class mark, the storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control executes 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.In addition, by standard storage agreement, so that storage control system or storage control have the characteristic of key assignments storage and block storage simultaneously.
Description
Technical field
The present invention relates to electronic technology field more particularly to a kind of storage methods, server and storage control.
Background technique
Key assignments (Key-Value, abbreviation KV) data storage, data according to the form of key-value pair carry out tissue, index and
Storage.It has the characteristics that storage is semantic simply, storage system favorable expandability, data query speed is fast, data storage capacity is big.It deposits
Storage agreement used in storage system has very much, with NVMe (Non-Volatile Memory Express, non-volatile memories
Device standard) for agreement: general purpose I/O (Input/Output, input/output) can be reduced using the storage system of NVMe agreement
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, oncurrent processing ability is strong.Key assignments storage and NVMe agreement combine, and storage system will be made same
When the advantage that both has.The combination of key assignments storage and NVMe agreement is to carry key assignments storing data packet by NVMe agreement
It is transmitted.For example, the instruction sequence of the payload user data of NVMe can be replaced with to the instruction sequence of key assignments data storage packet.
Key assignments, which stores main implementation at present, 2 kinds of methods, and a kind of method is hardware using scsi device, and SCSI is set
It is standby externally to provide block device service by SCSI bottom layer driving, the middle layer SCSI, the upper layer SCSI, I O scheduling layer and block device layer.It is soft
Part establishes middleware on block device layer or file system, and middleware is responsible for finish button Value Operations and block device or file system
The conversion of system operation, so that the application to user's space provides the service of key assignments storage.However, the above method needs multilayered memory
Protocol stack is converted, and I/O path is long, Shi Yanchang, and key assignments storage efficiency is lower.
Another method is equipment of the hardware using key assignments storage is supported, key assignments stores equipment and passes through key assignments storage driving layer
It is communicated with middleware, user's storage is converted to key assignments storage operation by middleware, so that the application to user's space provides
Key assignments storage service.However, key assignments storage equipment can not support conventional block device service, application range to have limitation.
Summary 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
In the process of key assignments operation and the conversion of block device or file system operation.
First aspect present invention provides a kind of storage method, and depositing for key assignments storage is transmitted using the data segment that agreement is directed toward
Store up request queue, contain in memory request queue the action type of storage operation requests, the memory address of sequence of store instructions,
Storage class mark, the storage class that storage class mark is used to indicate storage operation requests stores for key assignments or block storage,
So that storage control executes corresponding storage operation according to memory request queue, reduces and turn between multilayered memory protocol stack
It changes, shortens I/O path and time delay, improve key assignments storage efficiency.In addition, by standard storage agreement so that storage control system or
Person's storage control has the characteristic of key assignments storage and block storage simultaneously.
Optionally, when the storage class that storage class mark is used to indicate the storage operation requests stores for key assignments, institute
It states storage class and is identified as prepending non-significant value.
Optionally, the storage class mark is used to indicate the storage class of the storage operation requests as key assignments storage
When, the storage class identifies the position for needing to store in the storage according to the storing data identified in memory request queue
With capacity determination that the is length of the data of the storage and whether being greater than the storage control.For example, storage medium is deposited
When storage total capacity is X, filling out logical blocks initial address in the SLBA field of memory request queue is Y, and NLB field fills out logical block
Quantity is Z, and as Y+Z > X, i.e., expression Y and Z filling is invalid value, that is, the data operated are beyond rear end storage medium
When capacity, that is, it is considered invalid value.
Optionally, the action type for storing operation requests is storing data, reads data, deletes data and discarding data
Any one of.
Optionally, when the storage operation requests are used to request the storage operation of key assignments, the behaviour of the storage operation requests
When making type to read data, server obtains key assignments length according to the storage operation requests, raw according to the key assignments length
At sequence of store instructions.
Optionally, when the storage operation requests are used to request the storage of at least two key assignments to operate, then what is generated deposits
Storage instruction sequence includes the sub- sequence of store instructions of at least two key assignments, then server determines the operation of the storage operation requests
Type, storage class mark, determine corresponding memory address for the sub- sequence of store instructions of at least two key assignments, to hold
Row polymerization storage operation.
Optionally, it after storage control executes corresponding storage operation for sequence of store instructions, is returned to server
Operational status information, to indicate that the storage control executes the state of corresponding storage operation.
Second aspect of the present invention provides a kind of storage method, and storage control is in the storage request for receiving server transmission
After queue, the storage class mark carried by memory request queue judges to store the storage class of operation requests for key assignments storage
Or block storage, further according to sequence of store instructions memory address, store operation requests action type and storage class mark
Know and execute storage operation accordingly, so that storage control system or storage control have key assignments storage and block storage simultaneously
Characteristic.
Optionally, when the storage class that storage class mark is used to indicate the storage operation requests stores for key assignments, institute
It states storage class and is identified as prepending non-significant value.
Optionally, when the storage class that storage class mark is used to indicate the storage operation requests stores for key assignments, institute
It states storage class and identifies the position for needing to store in the storage according to the storing data identified in memory request queue and institute
State capacity determination that the is length of the data of storage and whether being greater than the storage control.For example, the storage of storage medium is total
When capacity is X, filling out logical blocks initial address in the SLBA field of memory request queue is Y, and NLB field fills out the quantity of logical block
For Z, as Y+Z > X, i.e., expression Y and Z filling is invalid value, that is, the data operated exceed the capacity of rear end storage medium
When, that is, it is considered invalid value.
Optionally, the action type for storing operation requests is storing data, reads data, deletes data and discarding data
Any one of.
Optionally, the storage class of the storage operation requests is determined according to storage class mark when storage control
When storing for key assignments, storage control obtains the sequence of store instructions according to the memory address of the sequence of store instructions, then
Corresponding key assignments storage operation is executed to the sequence of store instructions according to the action type of the storage operation requests.
Optionally, the storage class of the storage operation requests is determined according to storage class mark when storage control
When storing for block, storage control obtains the sequence of store instructions, then root according to the memory address of the sequence of store instructions
Corresponding block storage operation is executed to the sequence of store instructions according to the action type of the storage operation requests.
Optionally, it after storage control executes corresponding storage operation for sequence of store instructions, is exported to server
Operational status information, to indicate that the storage control executes the state of corresponding storage operation.
Third aspect present invention provides a kind of server, which is used for the relevant parameter according to storage operation requests
Sequence of store instructions and memory request queue are generated, which includes at least the one of the storage method that first aspect provides
A module and unit.
Fourth aspect present invention provides a kind of server, includes processor in the structure of the server, processor is matched
It is set to and the server is supported to execute corresponding function in the storage method that first aspect provides.Processor is used to be asked according to storage operation
The relevant parameter asked generates sequence of store instructions and memory request queue.The server further includes memory, and memory is used for
It is coupled with processor, saves the necessary program instruction of the server and data.The server further includes communication bus and leads to
Believe interface, communication bus is for realizing the connection communication between memory and processor.Communication interface is used for the server and deposits
Store up controller communication.
Fifth aspect present invention provides a kind of storage control, and the storage control according to what server was sent for depositing
It stores up request queue and executes corresponding storage operation.The storage control includes at least the one of the storage method that second aspect provides
A module and unit.
Sixth aspect present invention provides a kind of storage control, includes command process list in the structure of the storage control
Member, operation processing unit, key assignments storage processing unit and storage control unit, for executing the storage side of second aspect offer
Corresponding function in method.
Using the present invention, the memory request queue of key assignments storage, storage request are transmitted using the data segment that agreement is directed toward
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in queue, store class
The storage class that type mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control is according to depositing
It stores up request queue and executes corresponding storage operation, reduce the conversion between multilayered memory protocol stack, shorten I/O path and time delay, mention
High key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control have key simultaneously
The characteristic of value storage and block storage.
Detailed description of the invention
In order to illustrate the technical solution of the embodiments of the present invention more clearly, required use in being described below to embodiment
Attached drawing be briefly described, it should be apparent that, drawings in the following description are some embodiments of the invention, for this field
For those of ordinary skill, without any creative labor, it can also be obtained according to these attached drawings other attached
Figure.
Fig. 1 (a) is the structural schematic diagram of the server of the embodiment of the present invention and an embodiment of storage control;
Fig. 1 (b) is the structural schematic diagram of the server of the embodiment of the present invention and another embodiment of storage control;
Fig. 1 (c-1) is to define schematic diagram to the instruction code of block device operation in SCSI protocol provided in an embodiment of the present invention;
Fig. 1 (c-2) is to define schematic diagram to the instruction code of block device operation in SCSI protocol provided in an embodiment of the present invention;
Fig. 1 (d) is SCSI READ (12) instruction definition schematic diagram provided in an embodiment of the present invention;
Fig. 2 (a) is a kind of flow diagram of an embodiment of storage 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 relevant instruction code schematic diagram of I/O operation in the NVMe agreement of one embodiment of the invention offer;
Fig. 2 (d) is memory request queue's schematic diagram that one embodiment of the invention provides;
Fig. 3 (a) is a kind of flow diagram of another embodiment of storage method of the embodiment of the present invention;
Fig. 3 (b) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 4 (a) is a kind of flow diagram of another embodiment of storage method of the embodiment of the present invention;
Fig. 4 (b) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 4 (c) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 5 (a) is a kind of flow diagram of another embodiment of storage method of the embodiment of the present invention;
Fig. 5 (b) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 5 (c) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 6 (a) is a kind of flow diagram of another embodiment of storage method of the embodiment of the present invention;
Fig. 6 (b) be another embodiment of the present invention provides SGL table definition format schematic diagram;
Fig. 6 (c) be another embodiment of the present invention provides memory request queue's schematic diagram;
Fig. 7 (a) is a kind of flow diagram of another embodiment of storage method of the embodiment of the present invention;
Fig. 7 (b) be another embodiment of the present invention provides NVMe sequence of store instructions schematic diagram;
Fig. 8 is the structural schematic diagram of another embodiment of the server of the embodiment of the present invention;
Fig. 9 is the structural schematic diagram of another embodiment of the storage control of the embodiment of the present invention.
Specific embodiment
Following will be combined with the drawings in the embodiments of the present invention, and technical solution in the embodiment of the present invention carries out clear, complete
Site preparation description, it is clear that described embodiments are some of the embodiments of the present invention, instead of all the embodiments.Based on this hair
Embodiment in bright, every other implementation obtained by those of ordinary skill in the art without making creative efforts
Example, shall fall within the protection scope of the present invention.
Using the present invention, the conversion between multilayered memory protocol stack can be reduced, shortens I/O path and time delay, key assignments is improved and deposits
Store up efficiency.
Description and claims of this specification and term " first ", " second ", " third " and " in above-mentioned attached drawing
Four " etc. are not use to describe a particular order for distinguishing different objects.In addition, term " includes " and " having " and it
Any deformation, it is intended that cover and non-exclusive include.Such as it contains the process, method of a series of steps or units, be
System, product or equipment are not limited to listed step or unit, but optionally further comprising the step of not listing or list
Member, or optionally further comprising other step or units intrinsic for these process, methods, product or equipment.
The embodiment of the present invention utilizes PRP in NVMe agreement Submission Queue Entry (submitting queue entries)
The number that (Physical Region Page, page physical region) or SGL (Scatter Gather List gathers scattered table) are directed toward
The data packet that key assignments storage is transmitted according to section, contain in this data packet key assignments storage action type (such as operation code),
Sequence of store instructions memory address (memory address of sequence of store instructions include address as Value or Value are stored,
The information such as address of Key or Key storage), storage class mark (such as SLBA in setting Submission Queue Entry
Field and NLB field are invalid value, indicate that operation defined in current Submission Queue Entry is key assignments storage behaviour
Make).When SLBA the and NLB field in storage control analysis Submission Queue Entry is invalid value, key value is deposited
Store up flow processing.
It is worth noting that key assignments storage can extend in a variety of storage agreements, including but not limited to NVMe, SCSI etc.
Other storage agreements, the present embodiment are then illustrated with NVMe agreement.
Fig. 1 (a) and Fig. 1 (b) is the server of the embodiment of the present invention and the structural schematic diagram of storage control.Server and
The connection type of controller includes but is not limited to PCIe (PCI-Express, newest 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 host and controller
Transmission mode 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 modes.
Server includes bottom plate, and the chips such as processor, memory, bridge piece are equipped on bottom plate, for other expansion equipments
It is controlled, realizes the function of server.Specifically, server is for obtaining storage operation requests, according to storage operation requests
Sequence of store instructions is generated, and determines the action type of storage operation requests, storage class mark and sequence of store instructions
Memory address, further according to storage operation requests action type, storage class mark and sequence of store instructions memory address
Memory request queue is generated, finally by memory request queue to storage control.
As shown in Fig. 1 (a), the connection type of server and storage control is PCIe, and Fig. 2 of the embodiment of the present invention extremely schemes
The connection type of 7 servers and storage control shown in (a) referring to Fig.1 is implemented.Server includes memory, processing
Device, communication bus, bridge piece and communication interface.Memory stores program code, and processor calls the program stored in memory
Code, for executing Fig. 2 to storage method shown in 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 NVMe driving layer, application module, middleware, traditional application module, file system and block layer.
Application module either stores client software for server application.
Traditional 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 storage request is transmitted
Layer is driven to NVMe.Middleware can once be transmitted to device drive layer by device drives layer interface by multiple bondings simultaneously.
File system, such as EXT3 (Third Extended Filesystem, the third generation extend file system), EXT4
(Fourth Extended Filesystem, forth generation extend file system), FAT32 (Windows system disk zoned format
One kind) etc.;
Block layer: operating system stores the level of abstraction of equipment to block, and generic-document system is all implemented on this layer;
NVMe drives layer: server operating system is carried out data transmission and is ordered by drive software and NVMe storage equipment
Interaction.It includes NVMe command conversion module that NVMe, which drives layer,.
NVMe command conversion module: the memory address for storing the data of key assignments storage is inserted into Submission Queue
SLBA (Starting LBA, logical blocks initial address) and NLB (Number of is arranged in the PRP or SGL of Entry
Logical Blocks, the quantity of logical block) field is invalid value, and Submission Queue Entry is submitted to NVMe
Driving layer is handed down to storage control.
Storage control (operation such as being written and read to the storage equipment connected under controller) 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., the read-write for completing to receive server by being programmed this chip is asked
It asks, and various access and control is carried out to the storage equipment under storage control in connection.Support the storage control of this mode
Or storage system can provide block storage simultaneously and key assignments stores two ways.Storage control is the storage for supporting NVMe agreement
Controller, controller are connected by PCIe bus with server.Specifically, storage control is used to obtain depositing for server transmission
Request queue is stored up, the memory address of sequence of store instructions is obtained according to memory request queue, stores the action type of operation requests
And storage class mark, identification storage class mark, and according to the memory address of sequence of store instructions, storage operation requests
Action type and storage class mark execute 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, judges the validity of SLBA and NLB field, memory request queue is distributed to key assignments storage processing unit when invalid, effectively
When be distributed to NVMe operation processing unit.
Key assignments storage processing unit handles whole key assignments storage operations, and state submits to storage control by treated
Unit processed.
NVMe operation processing unit handles standard NVMe agreement operation requests, i.e. block storage operation, and will treated shape
State submits to storage control unit.
The state that foregoing units are submitted is converted to the operation to back-end storage device by storage control unit, and will operation
As a result foregoing units are fed back to.
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 connection type of server and storage control can be also SAS, server and deposit
The interaction and respective embodiment of storing up controller can refer to the embodiment of server and storage control shown in Fig. 1 (a),
It then repeats no more in embodiments of the present invention.
The application module of server shown in Fig. 1 (b), traditional application module, middleware, file system and block layer function
It is identical with the function of the respective modules of server in Fig. 1 (a).In addition to this, server further includes the upper layer SCSI, the middle layer SCSI.
SCSI layers, handle the software layer of SCSI affairs, including the upper layer SCSI, the middle layer SCSI and SCSI lower layer.
Scsi device driving, is located at SCSI lower layer, is responsible for SCSI request submitting to storage control, after the completion storage control
Control and data interactive operation between device processed.
The command conversion module 10110 of server shown in Fig. 1 (b) is located at scsi device driving layer, for depositing key assignments
The operation code of storage request expands on SCSI protocol, and is posed to scsi device driving and is sent to storage control.
Storage in the key assignments storage processing unit and storage control unit and Fig. 1 (a) of storage control shown in Fig. 1 (b)
The function of controller corresponding unit is identical.
For the command process unit of storage control shown in Fig. 1 (b), the instruction code in SCSI request, judgement are analyzed
It is that will instruct to submit to key assignments processing unit or SCSI processing unit.
The SCSI processing unit of storage control shown in Fig. 1 (b) handles the other standards in addition to key assignments store command
Scsi command.
It is to be operated in SCSI protocol provided in an embodiment of the present invention to block device referring to Fig. 1 (c) and Fig. 1 (d), Fig. 1 (c)
Instruction code defines schematic diagram, and Fig. 1 (d) is SCSI READ (12) instruction definition schematic diagram provided in an embodiment of the present invention.Wherein,
Fig. 1 (c) is divided into Fig. 1 (c-1) and Fig. 1 (c-2).
By taking SCSI READ (12) instruction as an example:
When executing key assignments storage operation by LOCGICAL BLOCK ADDRESS field and TRANSFER LENGTH field
Filling out indicates current operation not instead of block storage operation, key assignments storage behaviour for prepending non-significant value (prepending non-significant value is, for example, full F)
Make.Key assignments storage operation code and operating process can detailed in Example Fig. 2 to Fig. 6 storage method.
Fig. 2 (a) is please referred to, Fig. 2 (a) is a kind of process signal of an embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 2 (a).
As shown in Fig. 2 (a), an a kind of embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S100, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.
As a kind of enforceable mode, the format 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 determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, storage operation requests action type be used to indicate storing data, read data, delete data with
And any action type in discarding data, it can specifically be indicated with operation code, to indicate the action type of storage operation.Such as
Shown in lower:
Operation code | Instruction description |
01h | Mono-recordable data: Write |
02h | Single reads data: Read |
03h | Single obtains the length that Key corresponds to Value: Get Length |
04h | Single deletes data: Delete |
05h | Single discarding data: TRIM |
06h | Data are write in polymerization: Write |
07h | Data: Read are read in polymerization |
08h | Polymerization obtains the length that Key corresponds to Value: Get Length |
09h | Data: Delete are deleted in polymerization |
0Ah | It polymerize discarding data: TRIM |
In the specific implementation, storage class mark be used to indicate it is described storage operation requests storage class be key assignments storage or
The storage of person's block.
In the specific implementation, the memory address of sequence of store instructions is used to indicate storage control according to sequence of store instructions
Memory address obtains sequence of store instructions, to obtain the relevant information of data packet.
S102, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, can the DWORD0 field of memory request queue fill out storage operation requests action type, depositing
SLBA the and 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 of sequence of store instructions storage.The storage class that storage class mark is used to indicate the storage operation requests is deposited for key assignments
Chu Shi is identified as prepending non-significant value in the storage class that the SLBA and NLB field of memory request queue is filled out.Alternatively, storage class
The number of position and the storage that mark needs to store according to the storing data identified in memory request queue in the storage
According to length and whether be greater than the storage control capacity determine that storage class identifies whether as prepending non-significant value.Example
Such as, when the storage total capacity of storage medium is X, filling out logical blocks initial address in the SLBA field of memory request queue is Y,
The quantity that NLB field fills out logical block is Z, and as Y+Z > X, i.e., expression Y and Z filling is invalid value, that is, the data operated
When capacity beyond rear end storage medium, that is, it is considered invalid value.
As a kind of enforceable mode, NVMe agreement Submission Queue Entry occupies one section of continuous 64 word
Memory is saved, the relevant instruction code of I/O operation in NVMe agreement, as shown in Fig. 2 (c), Fig. 2 (c) is that one embodiment of the invention provides
The relevant instruction code schematic diagram of I/O operation in NVMe agreement.
In the specific implementation, Fig. 2 (d) is that one embodiment of the invention provides shown in the memory request queue such as Fig. 2 (d) generated
Memory request queue's schematic diagram.
S103, server send the memory request queue to storage control.
In the specific implementation, memory request queue is sent to storage control by server, the memory request queue is used for
Indicate that the storage control executes corresponding storage operation according to the memory request queue.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 3 (a) is please referred to, Fig. 3 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 3 (a).Fig. 3 (a) embodiment is for storage behaviour
Making the action type requested is that storing data (i.e. write operation) is specifically described.The storage class for storing operation requests is key assignments
Storage.
As shown in figure 3, a kind of another embodiment of storage method of the embodiment of the present invention may comprise steps of.
S200, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer calls middleware to write interface: its code is Put (String
Key, String Value), the address for submitting the storage operation requests of write operation, Key and Value data to store by middleware 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, the process (not shown) of sequence of store instructions is generated specifically:
S2001, NVMe drive 64 byte of memory address of layer application to store sequence of store instructions;
S2002, KV Command field fill out KV Write Opcode 01h, which is used to indicate the operation of storage operation requests
Type is the action type of storing data;
S2003, Key Pointer field fill out the memory address of Key storage;
S2004, Key Length field fill out Key data length;
The crc value of S2005, Key data CRC value field storage key data;
S2006, Value Pointer field fill out the memory address of Value storage;
S2007, Value Length field fill out Value data length;
The crc value of S2008, Value data CRC value field storage Value data;
S2009, Command data CRC value field store the crc value of 64 byte instruction sequences.
S201, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is storing data (i.e. write operation), determine the storage class of storage operation requests
Type is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storage
Operation requests are the operation requests of key assignments storage.
S202, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, 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 operation 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 of sequence of store instructions storage.Specifically, what is generated is used to that the storage of storing data (i.e. write operation) to be requested to be asked
Ask shown in queue such as Fig. 3 (b), Fig. 3 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S203, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control is operated according to the storage that the memory request queue executes storing data.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation of storing data based on the received.
S204, storage control obtain memory request queue.
S205, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S206, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.The analysis of NVMe command process unit is sent in memory request queue
Write command, Key and Value address information, submit the storage operation requests of write operation to key assignments storage processing unit.
S207, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
In the specific implementation, key assignments storage processing unit handles Key and Value information, the storage operation for converting write operation is asked
It asks to correspond to the write operation requests of storage equipment, and submits the storage operation requests of write operation to storage control unit.
S208, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments of row storage data stores operation.
In the specific implementation, storage control unit writes data to storage medium (such as back-end storage device).
S209, the storage control export operational status information.
In the specific implementation, operational status information is returned to server after storage control writes data to back-end storage device,
To indicate that storage control executes the state writing the storage of data and operating.Specifically, storage control unit writes data to rear end and deposits
After storing up equipment, operational status information is returned to key assignments storage processing unit, then sent by key assignments storage unit and foregoing units
To server.
S210, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the storing data.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 4 (a) is please referred to, Fig. 4 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 4 (a).Fig. 4 (a) embodiment is for storage behaviour
Make the action type requested and is specifically described to read data (i.e. read operation).The storage class for storing operation requests is key assignments
Storage.Reading data may include obtaining Key to correspond to Value length, or obtain Value information, and the present embodiment is for acquisition Key
Corresponding Value length, or obtain Value information and illustrated one by one.
As shown in Fig. 4 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S300, server obtain storage operation requests, key assignments length are obtained according to the storage operation requests, according to described
Key assignments length generates sequence of store instructions.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer calls middleware read operation interface: its code is Get (String
Key).Wherein, storage operation requests can correspond to the request of Value length to obtain Key or obtain the request of Value information.
As a kind of enforceable mode, the request of Value length is corresponded to for obtaining Key, due to the data packet of reading
Length be not fixed, it is therefore desirable to submit obtaining Key and correspond to the request of Value length to NVMe driving layer, NVMe by middleware
Driving layer then generates sequence of store instructions according to the request that acquisition Key corresponds to Value length.It generates acquisition Key and corresponds to Value long
The process (not shown) of the sequence of store instructions of degree specifically:
S3001,64 byte of memory of application do sequence of store instructions;
S3002, KV Command field, which are filled out, obtains the length Read Opcode 03h that Key corresponds to Value, and the field is for referring to
The action type for showing storage operation requests is to obtain the action type for the length that Key corresponds to Value;
S3003, Key Pointer field fill out the memory pointer of Key storage;
S3004, Key Length field fill out the length of Key data;
S3005, Key Data CRC Value field fill out the crc value of Key data;
S3006, Value Pointer field fill out 0, indicate no data transmission;
S3007, Value Length field fill out 0, indicate no data transmission;
S3008, Value Data CRC Value field fill out 0, indicate no data transmission;
S3009, Command Data CRC Value field fill out the crc value of instruction sequence data.
The storage for obtaining Value information is generated for obtaining the request of Value information as a kind of enforceable mode
The process (not shown) of instruction sequence specifically:
S30010,64 byte of memory of application do KV instruction sequence;
S30011, KV Command field, which are filled out, obtains the operation code 02h that Key corresponds to Value, which is used to indicate storage
The action type of operation requests is to obtain the action type of Value information;
S30012, Key Pointer field fill out the memory pointer of Key storage;
S30013, Key Length field fill out the length of Key data;
S30014, Key Data CRC Value field fill out the crc value of Key data;
S30015, Value Pointer field fill out the memory address that the Value of reading is stored in host by controller;
S30016, Value Length field fill out the length that controller reads Value data;
S30017, Value Data CRC Value field fill out 0;
S30018, Command Data CRC Value field fill out the crc value of instruction sequence data.
S301, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is to read data (i.e. read operation), determine the storage class of storage operation requests
Type is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storage
Operation requests are the operation requests of key assignments storage.
S302, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, 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 operation 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 of sequence of store instructions storage.
As a kind of enforceable mode, generation is used for requests data reading (length of Value is corresponded to as obtained Key)
Memory request queue such as Fig. 4 (b) shown in, Fig. 4 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, the storage for requests data reading (as obtained Value information) of generation is asked
Ask shown in queue such as Fig. 4 (c), Fig. 4 (c) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S303, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for reading data according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for reading data based on the received.
S304, storage control obtain memory request queue.
S305, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S306, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S307, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S308, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments that row reads data stores operation.
In the specific implementation, corresponding to the request of Value length for obtaining Key, the analysis storage of NVMe command process unit is asked
The reading in queue is asked to instruct, Key information, the storage operation requests for submitting reading Key to correspond to Value size operation are stored to key assignments
Processing unit.Key assignments storage processing unit obtains corresponding Value from storage medium (such as back-end storage device) according to Key information
Length submits length information to NVMe command process unit.
In the specific implementation, NVMe command process unit is analyzed in memory request queue for the request for obtaining Value information
Reading instruction, Value memory address information, submit read Value information operation storage operation requests to key assignments storage processing
Unit.Key assignments storage processing unit submits the storage operation requests for reading the operation of Value information to storage control unit, is controlled by storage
Unit processed executes data reading operation.Storage control unit reads Value information and distributes to the memory that Value is stored to server
Location.
S309, the storage control export operational status information.
In the specific implementation, operational status information is returned to server, after storage control reads data to indicate to store
Controller executes the state for reading the storage operation of data.
In the specific implementation, corresponding to the request of Value length, the NVMe command process list of storage control for obtaining Key
Member returns to Value length to server.
In the specific implementation, after storage control unit reads Value information, being submitted for the request for obtaining Value information
The operational status information of Value information is read to key assignments storage processing unit, key assignments storage processing unit, which is submitted, reads Value information
For operational status information to NVMe command process unit, NVMe command process unit can will read the operational status information of Value information
It fills out in the completion queue interacted with server, and be sent to server for queue is completed.
S310, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation for reading data.
In the specific implementation, the request of Value length is corresponded to for obtaining Key, the NVMe command conversion module in server
Transmitting carries the operational status information of Value length to middleware.Finally, middleware is according to Value length allocation Value data
In the memory headroom of host side storage.
In the specific implementation, the NVMe driving layer of server finishes receiving queue for the request for obtaining Value information.Most
NVMe drives layer to submit the operational status information of reading Value information to middleware afterwards.Middleware reads Value information for received
Operational status information is sent to application module.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 5 (a) is please referred to, Fig. 5 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 5 (a).Fig. 5 (a) embodiment is for storage behaviour
Make the action type requested and is specifically described to delete data or discarding data.The storage class for storing operation requests is key assignments
Storage.
As shown in Fig. 5 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S400, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer call middleware deletion or discarded interface: its code is
Perhaps TRIM (String Key) is mentioned with carrying out deletion or discarding data operation by middleware Delete (String Key)
Hand over the storage operation requests (i.e. the operation code of deletion or abandonment operations) of deletion or abandonment operations, the address letter of Key data storage
It ceases to NVMe and drives layer.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, the process (not shown) of sequence of store instructions is generated specifically:
S4001, NVMe drive 64 byte of memory address of layer application to store sequence of store instructions;
S4002, KV Command field fill out deletion data operation code 04h or discarding data operation code 05h, which uses
In the action type that the action type of instruction storage operation requests is deletion or discarding data;
S4003, Key Pointer field fill out the memory pointer of Key storage;
S4004, Key Length field fill out the length of Key data;
S4005, Key Data CRC Value field fill out the crc value of Key data;
S4006, Value Pointer field fill out 0, indicate no data transmission;
S4007, Value Length field fill out 0, indicate no data transmission;
S4008, Value Data CRC Value field fill out 0, indicate no data transmission;
S4009, Command Data CRC Value field fill out the crc value of instruction sequence data.
S401, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is deletion or discarding data, determine that the storage class of storage operation requests is
Key assignments storage generates corresponding storage class according to the storage class of storage operation requests and identifies, and is used to indicate storage operation
Request is the operation requests of key assignments storage.
S402, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, 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 operation 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 of sequence of store instructions storage.Specifically, the memory request queue such as Fig. 5 for being used to request to delete data generated
(b) shown in, Fig. 5 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
Specifically, Fig. 5 (c) is this hair shown in the memory request queue such as Fig. 5 (c) for requesting discarding data generated
Memory request queue's schematic diagram that bright another embodiment provides.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S403, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for deleting data or discarding data according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for deleting data or discarding data based on the received.
S404, storage control obtain memory request queue.
S405, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S406, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S407, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
In the specific implementation, the analysis of NVMe command process unit sends deletion or discard instruction, Key in memory request queue
Address information, submit delete or abandonment operations storage operation requests to key assignments storage processing unit.
S408, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
Row delete data or discarding data key assignments store operation.
In the specific implementation, key assignments storage processing unit handle Key information, conversion delete or abandonment operations storage operation
Request for corresponding storage equipment deletion or abandonment operations, and submit delete or abandonment operations storage operation requests to depositing
Store up control unit, finally by storage control unit execute storage medium (such as back-end storage device) deletion or abandonment operations.
S409, the storage control export operational status information.
In the specific implementation, storage control to storage medium (such as back-end storage device) execute delete or abandonment operations
Afterwards, return to operational status information to server, with indicate storage control execute delete or the state of discarded storage operation.
Specifically, storage control unit storage medium is executed delete or after abandonment operations, return and grasp to key assignments storage processing unit
Make status information, then server is sent to by key assignments storage unit and foregoing units.
S410, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the deletion data or discarding data.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 6 (a) is please referred to, Fig. 6 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 6 (a).The storage of at least two key assignments operates
Alternatively referred to as converging operation.So-called converging operation refers to that the request of primary polymerization storage operation can be completed at the same time multiple singles and deposit
The request of operation is stored up, the process that process and single request operate is almost the same.Unlike, multiple keys (Key) or value
(Value) it needs to pass to storage control by NVMe transmit queue by SGL (poly- scattered table).For the storage of converging operation
The corresponding operation code of the action type of operation requests can be as follows:
Operation code | Instruction description |
06h | Data are write in polymerization: Write |
07h | Polymerization obtains data: Read |
08h | Polymerization obtains the length that Key corresponds to Value: GetLength |
09h | Data: Delete are deleted in polymerization |
0Ah | It polymerize discarding data: TRIM |
For polymerizeing removal request, deleting data command (09h) using polymerization, once 4 keys (Key) of deletion are corresponding
It is worth (Value) data.Fig. 6 (a) embodiment is for the deletion that the action type of storage operation requests is at least two key assignments
Data are specifically described.The storage class of operation requests is stored as key assignments storage.
When key assignments is stored as converging operation, the address information of multiple Key or Value, SGL table are recorded using SGL table
It is one section of continuous memory address;It is and then deposited after can thering are multiple entry, previous entry to deposit in one SGL table latter
A entry;Each entry indicates the address information of a Key or Value, each entry is by SGL Key
Tri- Pointer, SGL Key length and SGL Key data CRC value element compositions, SGL table definition format such as Fig. 6
(b) shown in, Fig. 6 (b) be another embodiment of the present invention provides SGL table definition format schematic diagram.
Its field definition is as follows:
Generate the process (not shown) of the sequence of store instructions of converging operation specifically:
S1, host computer side distribute the memory headroom of key assignments sequence of store instructions storage.
S2 stores the number of Key or Value that operation requests need to operate according to key assignments, calculates entry in SGL
Number;In the size for calculating SGL table according to the number of entry;In the memory headroom of host computer side distribution SGL table storage.
S3, the needs of operation requests are stored according to key assignments, and KV Command field fills out the operation code of polymerization instruction.
S4, the needs of operation requests are stored according to key assignments, and Key Pointer field fills out the SGL table storage that Key data use
Memory pointer.
S5, the needs of operation requests are stored according to key assignments, and Key Length field fills out the length for the SGL table that Key data use
Degree.
S6, the needs of operation requests are stored according to key assignments, and Key Data CRC Value field fills out what Key data used
The crc value of SGL table data.
S7, the needs of operation requests are stored according to key assignments, and Value Pointer field fills out the SGL table that Value data use
The memory pointer of storage.
S8, the needs of operation requests are stored according to key assignments, and Value Length field fills out the SGL table that Value data use
Length.
S9, the needs of operation requests are stored according to key assignments, and Value Data CRC Value field fills out the use of Value data
SGL table data crc value.
S10 fills SGL contents in table.
S11, first SGL Pointer fill out the memory pointer of first key or Value storage.
S12, first SGL Length field fill out the length of first key or Value.
The crc value of first key or Value of S13, first SGL Data CRC Value.
S14 is successively inserted whole key Value information in SGL table by preceding step.
S15, Command Data CRC Value field fill out the crc value of instruction sequence data.
As shown in fig. 6, a kind of another embodiment of storage method of the embodiment of the present invention may comprise steps of.
S500, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests, generate
Sequence of store instructions include at least two key assignments sub- sequence of store instructions.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At 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) submits depositing for delete operation by middleware to carry out deleting the operation of at least two key assignments
Storage operation requests (deleting the operation code of at least two key assignments operation), the address information of Key data storage to NVMe drive layer.
NVMe drives layer to generate sequence of store instructions according to the storage operation requests for deleting the operation of at least two key assignments.
As a kind of enforceable mode, the process for the sequence of store instructions for deleting the operation of at least two key assignments is generated (not
Diagram) specifically:
S5001,64 byte of memory of application do KV instruction sequence;
S5002, every key are recorded in SGL and account for 24 bytes, distribute SGL table memory according to Key number;
S5003, KV Command field fill out polymerization delete operation code 09h, which is used to indicate storage operation requests
Action type is to delete the action type of at least two key assignments;
S5004, Key Pointer field fill out the memory pointer of SGL table storage;
S5005, Key Length field fill out the length of SGL table;
S5006, Key Data CRC Value field fill out the crc value of SGL table data;
S5007, first SGL Pointer fill out the memory pointer of first key storage;
S5008, first SGL Length field fill out the length of first Key;
The crc value of first Key of S5009, first SGL Data CRC Value;
S5010 is successively inserted whole Key information in SGL table by preceding step;
S5011, Value Pointer field fill out 0, indicate no data transmission;
S5012, Value Length field fill out 0, indicate no data transmission;
S5013, Value Data CRC Value field fill out 0, indicate no data transmission;
S5014, Command Data CRC Value field fill out the crc value of instruction sequence data.
S501, server determines the action type of the storage operation requests, storage class mark, for described at least two
The sub- sequence of store instructions of a key assignments determines corresponding memory address.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is to delete at least two key assignments, determine the storage class of storage operation requests
For key assignments storage, corresponding storage class is generated according to the storage class of storage operation requests and is identified, is used to indicate storage behaviour
Make the operation requests that request is key assignments storage.
S502, server according to it is described storage operation requests action type, the storage class mark and it is described extremely
The memory address of the sub- sequence of store instructions of few two key assignments generates memory request queue.
In the specific implementation, 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 operation 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 of sequence of store instructions storage.Specifically, the storage request for being used to request to delete at least two key assignments generated
Shown in queue such as Fig. 6 (c), Fig. 6 (c) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S503, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for deleting at least two key assignments according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for deleting at least two key assignments based on the received.
S504, storage control obtain memory request queue.
S505, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S506, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S507, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S508, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments that row deletes at least two key assignments stores operation.
In the specific implementation, the analysis of NVMe command process unit sends at least two key assignments of deletion in memory request queue
It instructs, the address information of SGL, submits the storage operation requests of at least two key assignments of deletion to key assignments storage processing unit.Key assignments
Storage processing unit handles the Key that SGL is stored again one by one, converts converging operation as in the corresponding storage equipment of each Key
The storage operation requests of at least two key assignments of deletion of data submit request to arrive storage control unit, finally single by storage control
Member deletes at least two key assignments in storage medium (such as back-end storage device).
S509, the storage control export operational status information.
In the specific implementation, storage control unit carries out at least two key assignments in storage medium (such as back-end storage device)
After deletion, operational status information is returned to server, to indicate that storage control executes the storage behaviour of at least two key assignments of deletion
The state of work.Specifically, after storage control unit executes at least two key assignments of deletion to storage medium, it is single that processing is stored to key assignments
Member returns to operational status information, then is sent to server by key assignments storage unit and foregoing units.
S510, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation for deleting at least two key assignments.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 7 (a) is please referred to, Fig. 7 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 7 (a).Fig. 7 (a) embodiment is for storage behaviour
Making the action type requested is that storing data (i.e. write operation) is specifically described.The storage class of storage operation requests is deposited for block
Storage.
As shown in Fig. 7 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S600, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the traditional application module of application layer calls file system to write interface, is submitted by file system
The storage operation requests of write operation drive 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, shown in the NVMe sequence of store instructions such as Fig. 7 (b) for generating standard, Fig. 7 (b) is
Another embodiment of the present invention provides NVMe sequence of store instructions schematic diagram.
S601, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, server generates the NVMe memory request queue of standard, the operation class of storage operation requests is determined
Type is write operation, determines storage class mark instruction block storage, and determine the memory address of the sequence of store instructions.
As a kind of enforceable mode, when storage class is identified as block storage, storage class is identified as default virtual value.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether to preset virtual value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z < X, i.e. expression Y
With Z filling be virtual value, that is, the data operated be less than rear end storage medium capacity when, that is, be considered virtual value.
S602, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue, and the storage class of the storage operation requests is block storage.
In the specific implementation, NVMe drives layer to be identified according to action type, the storage class of the storage operation requests
And the memory address of the sequence of store instructions generates memory request queue, wherein the storage class for storing operation requests is
Block storage.
S603, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control is operated according to the storage that the memory request queue executes storing data.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation of storing data based on the received.
S604, storage control obtain memory request queue.
S605, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S606, the storage control determine the storage class of the storage operation requests according to storage class mark
For block storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is default virtual value with NLB field, then is determined as block storage operation.
S607, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S608, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The block of row storage data stores operation.
In the specific implementation, the analysis of NVMe command process unit sends write command, Key and Value in memory request queue
Address information, submit the storage operation requests of write operation to NVMe operation processing unit.NVMe operation processing cell translation is write
The storage operation requests of operation are the write operation requests of corresponding storage equipment, and submit the storage operation requests of write operation to storage
Control unit finally carries out block storage to storage medium (such as back-end storage device) by storage control unit.
S609, the storage control export operational status information.
In the specific implementation, operational status information is returned to server after storage control writes data to back-end storage device,
To indicate that storage control executes the state writing the storage of data and operating.Specifically, storage control unit carries out storage medium
After block storage, operational status information is returned to NVMe operation processing unit, then operation shape is submitted by NVMe operation processing unit
State information completes queue by NVMe command process unit write operation status information to NVMe to NVMe command process unit.Finally
NVMe completion queue is sent to the NVMe command conversion module in server by NVMe command process unit.
S610, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the storing data.
In the specific implementation, NVMe command conversion module is completed to obtain in queue from NVMe submits operational status information, will obtain
The submission operational status information got is sent to block layer.Block layer submits operational status information to file system, file system submission
Operational status information is to traditional application layer module, and processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Referring to Fig. 8, Fig. 8 is the structural schematic diagram of another embodiment of the server of the embodiment of the present invention.It is shown in Fig. 8
Server can be realized by server shown in Fig. 1 (a) and Fig. 1 (b), can also by specific integrated circuit (English:
Application-specific integrated circuit, abbreviation: ASIC) realize or programmable logic device (English:
Programmable logic device, abbreviation: PLD) it realizes.Above-mentioned PLD can be Complex Programmable Logic Devices (English:
Complex programmable logic device, abbreviation: CPLD), FPGA, Universal Array Logic (English: generic
Array logic, abbreviation: GAL) or any combination thereof.Server is for realizing Fig. 2 to storage method shown in Fig. 7.By soft
When part realizes storage method as shown in Figures 2 to 7, server may be software module.
Server may include obtaining module 800, determining module 801, generation module 802, sending module 803 and receiving mould
Block 804.When obtaining the work of module 800, step S200, Fig. 4 (a) shown in step S100, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S500 and Fig. 7 (a) shown in step S400, Fig. 6 (a) shown in shown step S300, Fig. 5 (a)
S600.When determining module 801 works, step S201, Fig. 4 (a) institute shown in step S101, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S501 and Fig. 7 (a) shown in step S401, Fig. 6 (a) shown in step S301, Fig. 5 (a) shown
S601.When generation module 802 works, step S202, Fig. 4 (a) institute shown in step S102, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S502 and Fig. 7 (a) shown in step S402, Fig. 6 (a) shown in step S302, Fig. 5 (a) shown
S602.When sending module 803 works, step S203, Fig. 4 (a) institute shown in step S103, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S503 and Fig. 7 (a) shown in step S403, Fig. 6 (a) shown in step S303, Fig. 5 (a) shown
S603.When receiving module 804 works, step S310, Fig. 5 (a) institute shown in step S210, Fig. 4 (a) shown in Fig. 3 (a) is executed
Step S610 shown in step S510 and Fig. 7 (a) shown in step S410, Fig. 6 (a) shown.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Referring to Fig. 9, Fig. 9 is the structural schematic diagram of another embodiment of the storage control of the embodiment of the present invention.Fig. 8 institute
The storage control shown can also pass through specific integrated circuit by Implementing Memory Controllers shown in Fig. 1 (a) and Fig. 1 (b)
(English: application-specific integrated circuit, abbreviation: ASIC) is realized or programmable logic device
(English: programmable logic device, abbreviation: PLD) is realized.Above-mentioned PLD can be Complex Programmable Logic Devices
(English: complex programmable logic device, abbreviation: CPLD), FPGA, Universal Array Logic (English:
Generic array logic, abbreviation: GAL) or any combination thereof.Storage control is deposited for realizing Fig. 2 to shown in Fig. 7
Method for storing.When by software realization storage method as shown in Figures 2 to 7, storage control may be software module.
Storage control may include obtaining module 900, execution module 901 and output module 902, obtain 900 work of module
When making, step shown in step S304-S305, Fig. 5 (a) shown in step S204-S205, Fig. 4 (a) shown in Fig. 3 (a) is executed
Step S604-S605 shown in step S504-S505 and Fig. 7 (a) shown in S404-S405, Fig. 6 (a).Execution module 901
When work, executes and walked shown in step S306-S308, Fig. 5 (a) shown in step S206-S208, Fig. 4 (a) shown in Fig. 3 (a)
Step S606-S608 shown in step S506-S508 and Fig. 7 (a) shown in rapid S406-S408, Fig. 6 (a).Output module
When 902 work, step S409 shown in step S309, Fig. 5 (a) shown in step S209, Fig. 4 (a) shown in execution Fig. 3 (a),
Step S609 shown in step S509 and Fig. 7 (a) shown in Fig. 6 (a).
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute 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.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
The apparatus embodiments described above are merely exemplary, wherein described, unit can as illustrated by the separation member
It is physically separated with being or may not be, component shown as a unit may or may not be physics list
Member, it can it is in one place, or may be distributed over multiple network units.It can be selected according to the actual needs
In some or all of the modules achieve the purpose of the solution of this embodiment.Those of ordinary skill in the art are not paying creativeness
Labour in the case where, it can understand and implement.
The steps in the embodiment of the present invention can be sequentially adjusted, merged and deleted according to actual needs.
Module or unit in the device of that embodiment of the invention can be combined, divided and deleted according to actual needs.
The module or module of the embodiment of the present invention, can be with universal integrated circuit (such as central processor CPU), or with dedicated
Integrated circuit (ASIC) Lai Shixian.
Through the above description of the embodiments, those skilled in the art can be understood that each embodiment can
It realizes by means of software and necessary general hardware platform, naturally it is also possible to pass through hardware.Based on this understanding, on
Stating technical solution, substantially the part that contributes to existing technology can be embodied in the form of software products in other words, should
Computer software product may be stored in a computer readable storage medium, such as ROM/RAM, magnetic disk, CD, including several fingers
It enables and using so that a computer equipment (can be personal computer, server or the network equipment etc.) executes each implementation
Method described in certain parts of example or embodiment.
Embodiments described above does not constitute the restriction to the technical solution protection scope.It is any in above-mentioned implementation
Made modifications, equivalent substitutions and improvements etc., should be included in the protection model of the technical solution within the spirit and principle of mode
Within enclosing.
Claims (32)
1. a kind of storage method characterized by comprising
Storage operation requests are obtained, generate sequence of store instructions according to the storage operation requests;
With determining the action type of the storage operation requests, the memory of storage class mark and the sequence of store instructions
Location, the storage class that the storage class mark is used to indicate the storage operation requests is key assignments storage or block storage;
According to the memory of the action type of the storage operation requests, storage class mark and the sequence of store instructions
Address generates memory request queue;
The memory request queue is sent to storage control, the memory request queue is used to indicate the storage control root
Corresponding storage operation is executed according to the memory request queue, wherein the memory request queue is the number being directed toward using agreement
It is transmitted according to section.
2. storage method according to claim 1, which is characterized in that the storage class mark is used to indicate the storage
When the storage class of operation requests is that key assignments stores, the storage class is identified as prepending non-significant value.
3. storage method according to claim 1, which is characterized in that the storage class mark is used to indicate the storage
When the storage class of operation requests is that key assignments stores, the storage class mark is according to the storage number identified in memory request queue
According to the length of the position that needs to store in the storage and the data of the storage and whether greater than the storage control
Capacity determine.
4. storage method according to claim 1, which is characterized in that the action type of the storage operation requests is storage
Data read data, delete any one of data and discarding data.
5. storage method according to claim 4, which is characterized in that when the storage operation requests are for requesting key assignments
It is described to be generated according to the storage operation requests when storage operation, the action type for storing operation requests are reading data
Sequence of store instructions, comprising:
Key assignments length is obtained according to the storage operation requests, sequence of store instructions is generated according to the key assignments length.
6. storage method according to claim 1, which is characterized in that when the storage operation requests are for requesting at least two
When the storage operation of a key assignments, then the sequence of store instructions generated includes the sub- sequence of store instructions of at least two key assignments;
Action type, the storage class of the determination storage operation requests identify and the memory of the sequence of store instructions
Address, comprising:
Action type, the storage class mark for determining the storage operation requests, store for the son of at least two key assignments
Instruction sequence determines corresponding memory address.
7. storage method according to claim 1, which is characterized in that the method also includes:
The operational status information that the storage control returns is received, the operational status information is used to indicate the storage control
Device executes the state of corresponding storage operation.
8. a kind of storage method characterized by comprising
Storage control obtain memory request queue, wherein the memory request queue be using agreement direction data segment come
Transmission;
The storage control obtains the memory address of the sequence of store instructions, storage operation according to the memory request queue
The action type and storage class of request identify, and the storage class mark is used to indicate the storage of the storage operation requests
Type is that key assignments stores or block stores;
The storage control according to the action type of the memory address of the sequence of store instructions, the storage operation requests with
And the storage class mark executes corresponding storage operation.
9. storage method according to claim 8, which is characterized in that the storage class mark is used to indicate the storage
When the storage class of operation requests is that key assignments stores, the storage class is identified as prepending non-significant value.
10. storage method according to claim 8, which is characterized in that the storage class mark is used to indicate described deposit
When the storage class for storing up operation requests is that key assignments stores, the storage class mark is according to the storage identified in memory request queue
The length of the data of position that data need to store in the storage and the storage and whether be greater than storage control
The capacity of device determines.
11. storage method according to claim 8, which is characterized in that the action type of the storage operation requests is to deposit
Data are stored up, data is read, deletes any one of data and discarding data.
12. storage method according to claim 8, which is characterized in that the storage control is according to the store instruction
The memory address of sequence, the action type of the storage operation requests and storage class mark execute corresponding storage behaviour
Make, comprising:
The storage control determines that the storage class of the storage operation requests is deposited for key assignments according to storage class mark
Storage;
The storage control obtains the sequence of store instructions according to the memory address of the sequence of store instructions;
The storage control executes the sequence of store instructions according to the action type of the storage operation requests corresponding
Key assignments storage operation.
13. storage method according to claim 8, which is characterized in that the storage control is according to the store instruction
The memory address of sequence, the action type of the storage operation requests and storage class mark execute corresponding storage behaviour
Make, comprising:
The storage control determines the storage class of the storage operation requests for block storage according to storage class mark;
The storage control obtains the sequence of store instructions according to the memory address of the sequence of store instructions;
The storage control executes the sequence of store instructions according to the action type of the storage operation requests corresponding
Block storage operation.
14. storage method according to claim 8, which is characterized in that the method also includes:
The storage control exports operational status information, and the operational status information is used to indicate the storage control and executes
The state of corresponding storage operation.
15. a kind of server characterized by comprising
Module is obtained, for obtaining storage operation requests, generates sequence of store instructions according to the storage operation requests;
Determining module, for determine the action types of storage operation requests, storage class that the acquisition module obtains identify with
And the memory address of the sequence of store instructions, the storage class mark are used to indicate the storage class of the storage operation requests
Type is that key assignments stores or block stores;
Generation module, the action type of the storage operation requests for being determined according to the determining module, the storage class mark
Know and the memory address of the sequence of store instructions generates memory request queue;
Sending module, for sending memory request queue that the generation module generates to storage control, the storage is requested
Queue is used to indicate the storage control and executes corresponding storage operation according to the memory request queue, wherein described to deposit
Storage request queue is transmitted using the data segment of agreement direction.
16. server according to claim 15, which is characterized in that the storage class mark is used to indicate the storage
When the storage class of operation requests is that key assignments stores, the storage class is identified as prepending non-significant value.
17. server according to claim 15, which is characterized in that the storage class mark is used to indicate the storage
When the storage class of operation requests is that key assignments stores, the storage class mark is according to the storage number identified in memory request queue
According to the length of the position that needs to store in the storage and the data of the storage and whether greater than the storage control
Capacity determine.
18. server according to claim 15, which is characterized in that the action type of the storage operation requests is storage
Data read data, delete any one of data and discarding data.
19. server according to claim 17, which is characterized in that when the storage operation requests are for requesting key assignments
Storage operation, the action type for storing operation requests are when reading data, and the generation module is specifically used for:
Key assignments length is obtained according to the storage operation requests, sequence of store instructions is generated according to the key assignments length.
20. server according to claim 15, which is characterized in that when the storage operation requests are for requesting at least two
When the storage operation of a key assignments, then the sequence of store instructions generated includes the sub- sequence of store instructions of at least two key assignments;
The determining module is identified specifically for action type, the storage class of the determination storage operation requests, for described
The sub- sequence of store instructions of at least two key assignments determines corresponding memory address.
21. server according to claim 15, which is characterized in that the server further include:
Receiving module, the operational status information returned for receiving the storage control, the operational status information is for referring to
Show that the storage control executes the state of corresponding storage operation.
22. a kind of server, which is characterized in that including memory and processor, in which:
Batch processing code is stored in the memory, and the processor calls the program code stored in the memory,
1 to 7 described in any item storage methods are required for perform claim.
23. a kind of storage control characterized by comprising
Module is obtained, for obtaining memory request queue, wherein the memory request queue is the data segment being directed toward using agreement
Come what is transmitted;
The acquisition module is also used to obtain the memory address of the sequence of store instructions according to the memory request queue, deposit
The action type and storage class mark of operation requests are stored up, the storage class mark is used to indicate the storage operation requests
Storage class be key assignments store or block storage;
Execution module, for according to the action type of the memory address of the sequence of store instructions, the storage operation requests with
And the storage class mark executes corresponding storage operation.
24. storage control according to claim 23, which is characterized in that the storage class mark is used to indicate described
When the storage class for storing operation requests is that key assignments stores, the storage class is identified as prepending non-significant value.
25. storage control according to claim 23, which is characterized in that the storage class mark is used to indicate described
When the storage class for storing operation requests is that key assignments stores, the storage class mark is deposited according to what is identified in memory request queue
The length of the data of the storage data position that needs to store in the storage and the storage and whether be greater than storage control
The capacity of device processed determines.
26. storage control according to claim 23, which is characterized in that it is described storage operation requests action type be
Storing data reads data, deletes any one of data and discarding data.
27. storage control according to claim 23, which is characterized in that the execution module is specifically used for:
Determine the storage class of the storage operation requests for key assignments storage according to storage class mark;
The sequence of store instructions is obtained according to the memory address of the sequence of store instructions;
Corresponding key assignments storage operation is executed to the sequence of store instructions according to the action type of the storage operation requests.
28. storage control according to claim 23, which is characterized in that the execution module is specifically used for:
Determine the storage class of the storage operation requests for block storage according to storage class mark;
The sequence of store instructions is obtained according to the memory address of the sequence of store instructions;
Corresponding block storage operation is executed to the sequence of store instructions according to the action type of the storage operation requests.
29. storage control according to claim 23, which is characterized in that the storage control further include:
Output module, for exporting operational status information, the operational status information is used to indicate the storage control and executes
The state of corresponding storage operation.
30. a kind of storage control, which is characterized in that single including command process unit, operation processing unit, key assignments storage processing
Member and storage control unit require 8 to 14 described in any item storage methods for perform claim.
31. a kind of computer readable storage medium, which is characterized in that the computer-readable recording medium storage has computer meter
Calculation machine software product, the computer software product include some instructions, with so that a computer equipment perform claim is wanted
Seek method described in 1 to 7 any one.
32. a kind of computer readable storage medium, which is characterized in that the computer-readable recording medium storage has computer meter
Calculation machine software product, the computer software product include some instructions, with so that a computer equipment perform claim is wanted
Seek method described in 8 to 14 any one.
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 CN106155586A (en) | 2016-11-23 |
CN106155586B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402723B (en) * | 2017-07-25 | 2020-05-12 | 北京腾凌科技有限公司 | Method for reading and writing data and storage system |
EP3985949A1 (en) * | 2017-12-26 | 2022-04-20 | Huawei Technologies Co., Ltd. | Method and apparatus for managing storage device in storage system |
CN108549682A (en) * | 2018-03-30 | 2018-09-18 | 宁波诺信睿聚投资有限责任公司 | Management method, device, equipment and the storage medium of data object resource |
CN110083307A (en) * | 2019-03-29 | 2019-08-02 | 华为技术有限公司 | Date storage method, memory and server |
KR20210108466A (en) * | 2019-05-05 | 2021-09-02 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | Memory control system with sequence processing unit |
CN112445412A (en) * | 2019-08-28 | 2021-03-05 | 华为技术有限公司 | Data storage method and device |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | 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 |
CN100493079C (en) * | 2004-01-08 | 2009-05-27 | 华为技术有限公司 | Method for main node supporting different agreement type secondary unit apparatus on secondary node |
US7502374B1 (en) * | 2004-03-30 | 2009-03-10 | Extreme Networks, Inc. | System for deriving hash values for packets in a packet processing system |
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 |
CN102831014B (en) * | 2012-07-30 | 2016-05-25 | 华中科技大学 | A kind of method of utilizing many request queues to promote IO concurrency and reducing little IO delay |
WO2014098839A1 (en) * | 2012-12-19 | 2014-06-26 | Hewlett-Packard Development Company | Nvram path selection |
CN103543960A (en) * | 2013-10-12 | 2014-01-29 | 创新科存储技术有限公司 | Method for storing data |
CN104333614B (en) * | 2014-10-31 | 2018-07-27 | 北京奇安信科技有限公司 | The method, apparatus and system of terminal recognition |
CN104618484A (en) * | 2015-02-05 | 2015-05-13 | 浪潮电子信息产业股份有限公司 | Key value pair based transverse expansion high-performance storing method |
-
2016
- 2016-05-31 CN CN201610378340.7A patent/CN106155586B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN106155586A (en) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155586B (en) | A kind of storage method, server and storage control | |
US10949091B2 (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
US10739995B2 (en) | Method of consolidate data streams for multi-stream enabled SSDs | |
CN108519862A (en) | Storage method, device, system and the storage medium of block catenary system | |
CN102841872B (en) | High-performance path for command process | |
CN102486752B (en) | Data pre-fetching in SAS expander | |
US9846650B2 (en) | Tail response time reduction method for SSD | |
CN103218270B (en) | There is the computer of multiple solid-state disk | |
CN106030498B (en) | Storage device and data processing method and storage system | |
US8996843B2 (en) | Method for distributing random and sequential data in a tiered storage system | |
CN105612490A (en) | Extent hashing technique for distributed storage architecture | |
CN105408875B (en) | Distributed process on memory interface executes and file system | |
US20190243571A1 (en) | Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator | |
KR102538126B1 (en) | Tail latency aware foreground garbage collection algorithm | |
US6311257B1 (en) | Method and system for allocating memory for a command queue | |
JP6397995B2 (en) | Database management system, database server, and database management method | |
CN106610903A (en) | Tiered storage system, storage controller, and method for deduplication and storage tiering | |
CN105892955A (en) | Method and equipment for managing storage system | |
CN105739930B (en) | A kind of storage architecture and its initial method and date storage method and managing device | |
CN111723030A (en) | Memory system and control method of memory system | |
CN106598724A (en) | Computing system memory management method | |
WO2019174206A1 (en) | Data reading method and apparatus of storage device, terminal device, and storage medium | |
US10410270B2 (en) | Granular selection and scheduling of queries | |
JP5999536B2 (en) | Computer and data reading method | |
JP2019191997A (en) | Storage system, method of controlling storage system, and management node |
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 |