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

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

Info

Publication number
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
Application number
CN201610378340.7A
Other languages
Chinese (zh)
Other versions
CN106155586A (en
Inventor
高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610378340.7A priority Critical patent/CN106155586B/en
Publication of CN106155586A publication Critical patent/CN106155586A/en
Application granted granted Critical
Publication of CN106155586B publication Critical patent/CN106155586B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

Landscapes

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

Abstract

The 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

A kind of storage method, server and storage control
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.
CN201610378340.7A 2016-05-31 2016-05-31 A kind of storage method, server and storage control Active CN106155586B (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN106155586A 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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