Movatterモバイル変換


[0]ホーム

URL:


CN106155586B - A storage method, server and storage controller - Google Patents

A storage method, server and storage controller
Download PDF

Info

Publication number
CN106155586B
CN106155586BCN201610378340.7ACN201610378340ACN106155586BCN 106155586 BCN106155586 BCN 106155586BCN 201610378340 ACN201610378340 ACN 201610378340ACN 106155586 BCN106155586 BCN 106155586B
Authority
CN
China
Prior art keywords
storage
type
key
request
value
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 LtdfiledCriticalHuawei Technologies Co Ltd
Priority to CN201610378340.7ApriorityCriticalpatent/CN106155586B/en
Publication of CN106155586ApublicationCriticalpatent/CN106155586A/en
Application grantedgrantedCritical
Publication of CN106155586BpublicationCriticalpatent/CN106155586B/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Classifications

Landscapes

Abstract

Translated fromChinese

本发明提供了一种存储方法、服务器及存储控制器,利用协议指向的数据段来传输键值存储的存储请求队列,存储请求队列中包含了存储操作请求的操作类型、存储指令序列的内存地址、存储类型标识,存储类型标识用于指示存储操作请求的存储类型为键值存储或者块存储,以使存储控制器根据存储请求队列执行相应的存储操作,减少多层存储协议栈之间的转换,缩短IO路径和时延,提高键值存储效率。此外,借助标准存储协议,使得存储控制系统或者存储控制器同时具有键值存储和块存储的特性。

The invention provides a storage method, a server and a storage controller. The data segment pointed to by the protocol is used to transmit the storage request queue of key-value storage. The storage request queue includes the operation type of the storage operation request and the memory address of the storage instruction sequence. , Storage type identifier, the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage or block storage, so that the storage controller performs the corresponding storage operation according to the storage request queue, reducing the conversion between multi-layer storage protocol stacks , shorten the IO path and delay, and improve the efficiency of key-value storage. In addition, with the help of standard storage protocols, the storage control system or storage controller has the characteristics of key-value storage and block storage at the same time.

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 andStorage.It has the characteristics that storage is semantic simply, storage system favorable expandability, data query speed is fast, data storage capacity is big.It depositsStorage agreement used in storage system has very much, with NVMe (Non-Volatile Memory Express, non-volatile memoriesDevice standard) for agreement: general purpose I/O (Input/Output, input/output) can be reduced using the storage system of NVMe agreementScheduling, in SCSI (Small Computer System Interface, small computer system interface) higher level and SCSIInterbed, 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 sameWhen the advantage that both has.The combination of key assignments storage and NVMe agreement is to carry key assignments storing data packet by NVMe agreementIt 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 setIt 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 softPart establishes middleware on block device layer or file system, and middleware is responsible for finish button Value Operations and block device or file systemThe 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 memoryProtocol 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 layerIt is communicated with middleware, user's storage is converted to key assignments storage operation by middleware, so that the application to user's space providesKey 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, reduceIn 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 towardStore 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 stackIt changes, shortens I/O path and time delay, improve key assignments storage efficiency.In addition, by standard storage agreement so that storage control system orPerson'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, instituteIt 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 storageWhen, the storage class identifies the position for needing to store in the storage according to the storing data identified in memory request queueWith 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 depositedWhen 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 blockQuantity 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 mediumWhen 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 dataAny one of.
Optionally, when the storage operation requests are used to request the storage operation of key assignments, the behaviour of the storage operation requestsWhen making type to read data, server obtains key assignments length according to the storage operation requests, raw according to the key assignments lengthAt 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 depositsStorage instruction sequence includes the sub- sequence of store instructions of at least two key assignments, then server determines the operation of the storage operation requestsType, storage class mark, determine corresponding memory address for the sub- sequence of store instructions of at least two key assignments, to holdRow polymerization storage operation.
Optionally, it after storage control executes corresponding storage operation for sequence of store instructions, is returned to serverOperational 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 transmissionAfter queue, the storage class mark carried by memory request queue judges to store the storage class of operation requests for key assignments storageOr block storage, further according to sequence of store instructions memory address, store operation requests action type and storage class markKnow and execute storage operation accordingly, so that storage control system or storage control have key assignments storage and block storage simultaneouslyCharacteristic.
Optionally, when the storage class that storage class mark is used to indicate the storage operation requests stores for key assignments, instituteIt 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, instituteIt 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 instituteState 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 totalWhen 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 blockFor 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 mediumWhen, that is, it is considered invalid value.
Optionally, the action type for storing operation requests is storing data, reads data, deletes data and discarding dataAny one of.
Optionally, the storage class of the storage operation requests is determined according to storage class mark when storage controlWhen storing for key assignments, storage control obtains the sequence of store instructions according to the memory address of the sequence of store instructions, thenCorresponding 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 controlWhen storing for block, storage control obtains the sequence of store instructions, then root according to the memory address of the sequence of store instructionsCorresponding 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 serverOperational 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 requestsSequence of store instructions and memory request queue are generated, which includes at least the one of the storage method that first aspect providesA module and unit.
Fourth aspect present invention provides a kind of server, includes processor in the structure of the server, processor is matchedIt 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 operationThe relevant parameter asked generates sequence of store instructions and memory request queue.The server further includes memory, and memory is used forIt is coupled with processor, saves the necessary program instruction of the server and data.The server further includes communication bus and leads toBelieve interface, communication bus is for realizing the connection communication between memory and processor.Communication interface is used for the server and depositsStore up controller communication.
Fifth aspect present invention provides a kind of storage control, and the storage control according to what server was sent for depositingIt stores up request queue and executes corresponding storage operation.The storage control includes at least the one of the storage method that second aspect providesA module and unit.
Sixth aspect present invention provides a kind of storage control, includes command process list in the structure of the storage controlMember, operation processing unit, key assignments storage processing unit and storage control unit, for executing the storage side of second aspect offerCorresponding 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 towardThe storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in queue, store classThe 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 depositingIt stores up request queue and executes corresponding storage operation, reduce the conversion between multilayered memory protocol stack, shorten I/O path and time delay, mentionHigh key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control have key simultaneouslyThe 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 embodimentAttached drawing be briefly described, it should be apparent that, drawings in the following description are some embodiments of the invention, for this fieldFor those of ordinary skill, without any creative labor, it can also be obtained according to these attached drawings other attachedFigure.
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, completeSite 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 hairEmbodiment in bright, every other implementation obtained by those of ordinary skill in the art without making creative effortsExample, 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 depositsStore up efficiency.
Description and claims of this specification and term " first ", " second ", " third " and " in above-mentioned attached drawingFour " etc. are not use to describe a particular order for distinguishing different objects.In addition, term " includes " and " having " and itAny deformation, it is intended that cover and non-exclusive include.Such as it contains the process, method of a series of steps or units, beSystem, product or equipment are not limited to listed step or unit, but optionally further comprising the step of not listing or listMember, 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 towardThe 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 EntryField and NLB field are invalid value, indicate that operation defined in current Submission Queue Entry is key assignments storage behaviourMake).When SLBA the and NLB field in storage control analysis Submission Queue Entry is invalid value, key value is depositedStore 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 andThe 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 TechnologyAttachment, Serial Advanced Technology Attachment), other internetwork connection modes such as ether.Instruction and data between host and controllerTransmission mode include but is not limited to DMA (Direct Memory Access, immediate data access), RDMA (RemoteDirect 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 equipmentsIt is controlled, realizes the function of server.Specifically, server is for obtaining storage operation requests, according to storage operation requestsSequence of store instructions is generated, and determines the action type of storage operation requests, storage class mark and sequence of store instructionsMemory address, further according to storage operation requests action type, storage class mark and sequence of store instructions memory addressMemory 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 schemesThe connection type of 7 servers and storage control shown in (a) referring to Fig.1 is implemented.Server includes memory, processingDevice, communication bus, bridge piece and communication interface.Memory stores program code, and processor calls the program stored in memoryCode, for executing Fig. 2 to storage method shown in Fig. 7, communication interface is for realizing between server and storage controlCommunication, 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 transmittedLayer 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 formatOne 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 equipmentInteraction.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 QueueSLBA (Starting LBA, logical blocks initial address) and NLB (Number of is arranged in the PRP or SGL of EntryLogical Blocks, the quantity of logical block) field is invalid value, and Submission Queue Entry is submitted to NVMeDriving 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 SpecificIntegrated Circuit, integrated circuit) etc., the read-write for completing to receive server by being programmed this chip is askedIt asks, and various access and control is carried out to the storage equipment under storage control in connection.Support the storage control of this modeOr storage system can provide block storage simultaneously and key assignments stores two ways.Storage control is the storage for supporting NVMe agreementController, controller are connected by PCIe bus with server.Specifically, storage control is used to obtain depositing for server transmissionRequest 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 requestsAnd storage class mark, identification storage class mark, and according to the memory address of sequence of store instructions, storage operation requestsAction 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 operationProcessing unit and storage control unit.
NVMe command process unit, for analyzing the storage class mark in the memory request queue that storage control receivesKnow, judges the validity of SLBA and NLB field, memory request queue is distributed to key assignments storage processing unit when invalid, effectivelyWhen 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 treatedUnit processed.
NVMe operation processing unit handles standard NVMe agreement operation requests, i.e. block storage operation, and will treated shapeState 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 operationAs 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 orOther memory devices.
Optionally, as shown in Fig. 1 (b), the connection type of server and storage control can be also SAS, server and depositThe 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 functionIt 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 controlControl 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 assignmentsThe 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 analyzedIt 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 commandScsi 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 fieldFilling 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 inventionFigure.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 packetAt 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 oneA 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 toEnable the memory address of sequence.
In the specific implementation, storage operation requests action type be used to indicate storing data, read data, delete data withAnd any action type in discarding data, it can specifically be indicated with operation code, to indicate the action type of storage operation.Such asShown in lower:
Operation codeInstruction description
01hMono-recordable data: Write
02hSingle reads data: Read
03hSingle obtains the length that Key corresponds to Value: Get Length
04hSingle deletes data: Delete
05hSingle discarding data: TRIM
06hData are write in polymerization: Write
07hData: Read are read in polymerization
08hPolymerization obtains the length that Key corresponds to Value: Get Length
09hData: Delete are deleted in polymerization
0AhIt 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 orThe 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 instructionsMemory 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 depositsThe 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, depositingSLBA the and NLB field of storage request queue fills out storage class mark, can fill out in the Data Pointer field of memory request queueThe 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 assignmentsChu 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 classThe number of position and the storage that mark needs to store according to the storing data identified in memory request queue in the storageAccording to length and whether be greater than the storage control capacity determine that storage class identifies whether as prepending non-significant value.ExampleSuch 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 operatedWhen 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 wordMemory 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 providesThe 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) generatedMemory 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 3 (a).Fig. 3 (a) embodiment is for storage behaviourMaking the action type requested is that storing data (i.e. write operation) is specifically described.The storage class for storing operation requests is key assignmentsStorage.
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 packetAt sequence of store instructions.Specifically, the application module of application layer calls middleware to write interface: its code is Put (StringKey, String Value), the address for submitting the storage operation requests of write operation, Key and Value data to store by middleware toNVMe 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 requestsType 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 toEnable 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 conversionBlock, and determine that the action type of storage operation requests is storing data (i.e. write operation), determine the storage class of storage operation requestsType is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storageOperation 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 askedAsk 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 queueWrite 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 instructionsColumn.
In the specific implementation, key assignments storage processing unit handles Key and Value information, the storage operation for converting write operation is askedIt 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 requestsThe 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 depositsAfter storing up equipment, operational status information is returned to key assignments storage processing unit, then sent by key assignments storage unit and foregoing unitsTo server.
S210, server receive the operational status information that the storage control returns, and the operational status information is used forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 4 (a).Fig. 4 (a) embodiment is for storage behaviourMake the action type requested and is specifically described to read data (i.e. read operation).The storage class for storing operation requests is key assignmentsStorage.Reading data may include obtaining Key to correspond to Value length, or obtain Value information, and the present embodiment is for acquisition KeyCorresponding 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 describedKey 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 packetAt sequence of store instructions.Specifically, the application module of application layer calls middleware read operation interface: its code is Get (StringKey).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 readingLength 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 middlewareDriving 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 longThe 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 toThe 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 modeThe 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 storageThe 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 toEnable 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 conversionBlock, 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 requestsType is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storageOperation 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe read command operation code 02h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 askedAsk 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S308, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 askedThe 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 assignmentsProcessing unit.Key assignments storage processing unit obtains corresponding Value from storage medium (such as back-end storage device) according to Key informationLength 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 informationReading instruction, Value memory address information, submit read Value information operation storage operation requests to key assignments storage processingUnit.Key assignments storage processing unit submits the storage operation requests for reading the operation of Value information to storage control unit, is controlled by storageUnit processed executes data reading operation.Storage control unit reads Value information and distributes to the memory that Value is stored to serverLocation.
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 storeController 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 KeyMember 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 informationThe operational status information of Value information is read to key assignments storage processing unit, key assignments storage processing unit, which is submitted, reads Value informationFor operational status information to NVMe command process unit, NVMe command process unit can will read the operational status information of Value informationIt 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 forIndicate 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 serverTransmitting carries the operational status information of Value length to middleware.Finally, middleware is according to Value length allocation Value dataIn 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.MostNVMe drives layer to submit the operational status information of reading Value information to middleware afterwards.Middleware reads Value information for receivedOperational 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 5 (a).Fig. 5 (a) embodiment is for storage behaviourMake the action type requested and is specifically described to delete data or discarding data.The storage class for storing operation requests is key assignmentsStorage.
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 packetAt sequence of store instructions.Specifically, the application module of application layer call middleware deletion or discarded interface: its code isPerhaps 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 storageIt 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 usesIn 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 toEnable 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 conversionBlock, and determine that the action type of storage operation requests is deletion or discarding data, determine that the storage class of storage operation requests isKey assignments storage generates corresponding storage class according to the storage class of storage operation requests and identifies, and is used to indicate storage operationRequest 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 generatedMemory 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
In the specific implementation, the analysis of NVMe command process unit sends deletion or discard instruction, Key in memory request queueAddress 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 requestsRow 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 operationRequest for corresponding storage equipment deletion or abandonment operations, and submit delete or abandonment operations storage operation requests to depositingStore 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 operationsAfterwards, 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 unitMake 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 6 (a).The storage of at least two key assignments operatesAlternatively 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 depositThe 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 operationThe corresponding operation code of the action type of operation requests can be as follows:
Operation codeInstruction description
06hData are write in polymerization: Write
07hPolymerization obtains data: Read
08hPolymerization obtains the length that Key corresponds to Value: GetLength
09hData: Delete are deleted in polymerization
0AhIt polymerize discarding data: TRIM
For polymerizeing removal request, deleting data command (09h) using polymerization, once 4 keys (Key) of deletion are correspondingIt 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 assignmentsData 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 tableIt 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 latterA entry;Each entry indicates the address information of a Key or Value, each entry is by SGL KeyTri- 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 SGLNumber;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 useMemory 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 useDegree.
S6, the needs of operation requests are stored according to key assignments, and Key Data CRC Value field fills out what Key data usedThe 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 useThe 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 useLength.
S9, the needs of operation requests are stored according to key assignments, and Value Data CRC Value field fills out the use of Value dataSGL 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, generateSequence 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 packetAt 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 assignmentsStorage 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 (notDiagram) 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 requestsAction 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 twoThe 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 conversionBlock, 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 requestsFor 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 behaviourMake 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 extremelyThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 generatedShown 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S508, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 queueIt 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 assignmentsStorage processing unit handles the Key that SGL is stored again one by one, converts converging operation as in the corresponding storage equipment of each KeyThe storage operation requests of at least two key assignments of deletion of data submit request to arrive storage control unit, finally single by storage controlMember 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 deletionThe 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 assignmentsMember 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 7 (a).Fig. 7 (a) embodiment is for storage behaviourMaking 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 blockStorage.
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 packetAt sequence of store instructions.Specifically, the traditional application module of application layer calls file system to write interface, is submitted by file systemThe 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 operationNVMe 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) isAnother 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 toEnable 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 determinedType 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine that storage class identifies whether to preset virtual value.For example, requesting team in storage when the storage total capacity of storage medium is XIt 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 YWith 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 depositsThe 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 requestsAnd the memory address of the sequence of store instructions generates memory request queue, wherein the storage class for storing operation requests isBlock storage.
S603, server send the memory request queue to storage control, and the memory request queue is used to indicateThe 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 controlMemory 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 queueLocation, 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 markFor block storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S608, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 queueAddress information, submit the storage operation requests of write operation to NVMe operation processing unit.NVMe operation processing cell translation is writeThe storage operation requests of operation are the write operation requests of corresponding storage equipment, and submit the storage operation requests of write operation to storageControl 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 mediumAfter block storage, operational status information is returned to NVMe operation processing unit, then operation shape is submitted by NVMe operation processing unitState information completes queue by NVMe command process unit write operation status information to NVMe to NVMe command process unit.FinallyNVMe 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 forIndicate 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 obtainThe submission operational status information got is sent to block layer.Block layer submits operational status information to file system, file system submissionOperational 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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. 8Server 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: genericArray logic, abbreviation: GAL) or any combination thereof.Server is for realizing Fig. 2 to storage method shown in Fig. 7.By softWhen 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 mouldBlock 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 executedStep 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 executedStep shown in step S501 and Fig. 7 (a) shown in step S401, Fig. 6 (a) shown in step S301, Fig. 5 (a) shownS601.When generation module 802 works, step S202, Fig. 4 (a) institute shown in step S102, Fig. 3 (a) shown in Fig. 2 (a) is executedStep shown in step S502 and Fig. 7 (a) shown in step S402, Fig. 6 (a) shown in step S302, Fig. 5 (a) shownS602.When sending module 803 works, step S203, Fig. 4 (a) institute shown in step S103, Fig. 3 (a) shown in Fig. 2 (a) is executedStep shown in step S503 and Fig. 7 (a) shown in step S403, Fig. 6 (a) shown in step S303, Fig. 5 (a) shownS603.When receiving module 804 works, step S310, Fig. 5 (a) institute shown in step S210, Fig. 4 (a) shown in Fig. 3 (a) is executedStep 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 instituteThe 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. 7Method 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 moduleWhen making, step shown in step S304-S305, Fig. 5 (a) shown in step S204-S205, Fig. 4 (a) shown in Fig. 3 (a) is executedStep S604-S605 shown in step S504-S505 and Fig. 7 (a) shown in S404-S405, Fig. 6 (a).Execution module 901When 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 moduleWhen 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 memberIt is physically separated with being or may not be, component shown as a unit may or may not be physics listMember, it can it is in one place, or may be distributed over multiple network units.It can be selected according to the actual needsIn 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 creativenessLabour 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 dedicatedIntegrated circuit (ASIC) Lai Shixian.
Through the above description of the embodiments, those skilled in the art can be understood that each embodiment canIt realizes by means of software and necessary general hardware platform, naturally it is also possible to pass through hardware.Based on this understanding, onStating technical solution, substantially the part that contributes to existing technology can be embodied in the form of software products in other words, shouldComputer software product may be stored in a computer readable storage medium, such as ROM/RAM, magnetic disk, CD, including several fingersIt enables and using so that a computer equipment (can be personal computer, server or the network equipment etc.) executes each implementationMethod 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 implementationMade modifications, equivalent substitutions and improvements etc., should be included in the protection model of the technical solution within the spirit and principle of modeWithin enclosing.

Claims (32)

Translated fromChinese
1.一种存储方法,其特征在于,包括:1. a storage method, is characterized in that, comprises:获取存储操作请求,根据所述存储操作请求生成存储指令序列;Obtain a storage operation request, and generate a storage instruction sequence according to the storage operation request;确定所述存储操作请求的操作类型、存储类型标识以及所述存储指令序列的内存地址,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储或者块存储;Determine the operation type of the storage operation request, the storage type identifier and the memory address of the storage instruction sequence, and the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage or block storage;根据所述存储操作请求的操作类型、所述存储类型标识以及所述存储指令序列的内存地址生成存储请求队列;Generate a storage request queue according to the operation type of the storage operation request, the storage type identifier and the memory address of the storage instruction sequence;发送所述存储请求队列至存储控制器,所述存储请求队列用于指示所述存储控制器根据所述存储请求队列执行相应的存储操作,其中,所述存储请求队列是利用协议指向的数据段来传输的。Sending the storage request queue to a storage controller, where the storage request queue is used to instruct the storage controller to perform a corresponding storage operation according to the storage request queue, where the storage request queue is a data segment pointed to by a protocol to transmit.2.根据权利要求1所述的存储方法,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识为预设无效值。2 . The storage method according to claim 1 , wherein when the storage type identifier is used to indicate that the storage type requested by the storage operation is key-value storage, the storage type identifier is a preset invalid value. 3 .3.根据权利要求1所述的存储方法,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识根据存储请求队列中标识的存储数据在所述存储中需要存储的位置与所述存储的数据的长度的和是否大于所述存储控制器的容量确定。3. storage method according to claim 1, is characterized in that, when described storage type identification is used to indicate that the storage type of described storage operation request is key-value storage, described storage type identification is according to the storage request queue identified in the time. It is determined whether the sum of the location where the stored data needs to be stored in the storage and the length of the stored data is greater than the capacity of the storage controller.4.根据权利要求1所述的存储方法,其特征在于,所述存储操作请求的操作类型为存储数据、读取数据、删除数据以及废弃数据中的任一种。4 . The storage method according to claim 1 , wherein the operation type of the storage operation request is any one of storing data, reading data, deleting data and discarding data. 5 .5.根据权利要求4所述的存储方法,其特征在于,当所述存储操作请求用于请求键值的存储操作、所述存储操作请求的操作类型为读取数据时,所述根据所述存储操作请求生成存储指令序列,包括:5. The storage method according to claim 4, wherein when the storage operation request is used to request a storage operation of a key value, and the operation type of the storage operation request is read data, the storage operation request is based on the storage operation. A store operation request generates a sequence of store instructions, including:根据所述存储操作请求获取键值长度,根据所述键值长度生成存储指令序列。The key value length is obtained according to the storage operation request, and a storage instruction sequence is generated according to the key value length.6.根据权利要求1所述的存储方法,其特征在于,当所述存储操作请求用于请求至少两个键值的存储操作时,则生成的存储指令序列包括至少两个键值的子存储指令序列;6. The storage method according to claim 1, wherein when the storage operation request is used to request a storage operation of at least two key values, the generated storage instruction sequence comprises sub-storage of at least two key values sequence of instructions;所述确定所述存储操作请求的操作类型、存储类型标识以及所述存储指令序列的内存地址,包括:The determining of the operation type of the storage operation request, the storage type identifier and the memory address of the storage instruction sequence includes:确定所述存储操作请求的操作类型、存储类型标识,针对所述至少两个键值的子存储指令序列确定对应的内存地址。Determine the operation type and storage type identifier of the storage operation request, and determine the corresponding memory address for the sub-storage instruction sequence of the at least two key values.7.根据权利要求1所述的存储方法,其特征在于,所述方法还包括:7. The storage method according to claim 1, wherein the method further comprises:接收所述存储控制器返回的操作状态信息,所述操作状态信息用于指示所述存储控制器执行所述相应的存储操作的状态。The operation status information returned by the storage controller is received, where the operation status information is used to indicate the status of the storage controller performing the corresponding storage operation.8.一种存储方法,其特征在于,包括:8. A storage method, characterized in that, comprising:存储控制器获取存储请求队列,其中,所述存储请求队列是利用协议指向的数据段来传输的;The storage controller obtains the storage request queue, wherein the storage request queue is transmitted by using the data segment pointed to by the protocol;所述存储控制器根据所述存储请求队列获取所述存储指令序列的内存地址、存储操作请求的操作类型以及存储类型标识,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储或者块存储;The storage controller obtains, according to the storage request queue, the memory address of the storage instruction sequence, the operation type of the storage operation request, and the storage type identifier, where the storage type identifier is used to indicate that the storage type of the storage operation request is a key Value storage or block storage;所述存储控制器根据所述存储指令序列的内存地址、所述存储操作请求的操作类型以及所述存储类型标识执行相应的存储操作。The storage controller executes the corresponding storage operation according to the memory address of the storage instruction sequence, the operation type of the storage operation request, and the storage type identifier.9.根据权利要求8所述的存储方法,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识为预设无效值。9 . The storage method according to claim 8 , wherein when the storage type identifier is used to indicate that the storage type requested by the storage operation is key-value storage, the storage type identifier is a preset invalid value. 10 .10.根据权利要求8所述的存储方法,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识根据存储请求队列中标识的存储数据在所述存储中需要存储的位置与所述存储的数据的长度的和是否大于所述存储控制器的容量确定。10. The storage method according to claim 8, wherein when the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage, the storage type identifier is based on the storage request queue. It is determined whether the sum of the location where the stored data needs to be stored in the storage and the length of the stored data is greater than the capacity of the storage controller.11.根据权利要求8所述的存储方法,其特征在于,所述存储操作请求的操作类型为存储数据、读取数据、删除数据以及废弃数据中的任一种。11 . The storage method according to claim 8 , wherein the operation type of the storage operation request is any one of storing data, reading data, deleting data and discarding data. 12 .12.根据权利要求8所述的存储方法,其特征在于,所述存储控制器根据所述存储指令序列的内存地址、所述存储操作请求的操作类型以及所述存储类型标识执行相应的存储操作,包括:12. The storage method according to claim 8, wherein the storage controller executes the corresponding storage operation according to the memory address of the storage instruction sequence, the operation type of the storage operation request and the storage type identifier ,include:所述存储控制器根据所述存储类型标识确定所述存储操作请求的存储类型为键值存储;The storage controller determines, according to the storage type identifier, that the storage type of the storage operation request is key-value storage;所述存储控制器根据所述存储指令序列的内存地址获取所述存储指令序列;The storage controller acquires the storage instruction sequence according to the memory address of the storage instruction sequence;所述存储控制器根据所述存储操作请求的操作类型对所述存储指令序列执行相应的键值存储操作。The storage controller performs a corresponding key-value storage operation on the storage instruction sequence according to the operation type requested by the storage operation.13.根据权利要求8所述的存储方法,其特征在于,所述存储控制器根据所述存储指令序列的内存地址、所述存储操作请求的操作类型以及所述存储类型标识执行相应的存储操作,包括:13. The storage method according to claim 8, wherein the storage controller executes the corresponding storage operation according to the memory address of the storage instruction sequence, the operation type of the storage operation request and the storage type identifier ,include:所述存储控制器根据所述存储类型标识确定所述存储操作请求的存储类型为块存储;The storage controller determines, according to the storage type identifier, that the storage type requested by the storage operation is block storage;所述存储控制器根据所述存储指令序列的内存地址获取所述存储指令序列;The storage controller acquires the storage instruction sequence according to the memory address of the storage instruction sequence;所述存储控制器根据所述存储操作请求的操作类型对所述存储指令序列执行相应的块存储操作。The storage controller performs a corresponding block storage operation on the storage instruction sequence according to the operation type of the storage operation request.14.根据权利要求8所述的存储方法,其特征在于,所述方法还包括:14. The storage method according to claim 8, wherein the method further comprises:所述存储控制器输出操作状态信息,所述操作状态信息用于指示所述存储控制器执行所述相应的存储操作的状态。The storage controller outputs operation status information, the operation status information being used to indicate the status of the storage controller performing the corresponding storage operation.15.一种服务器,其特征在于,包括:15. A server, comprising:获取模块,用于获取存储操作请求,根据所述存储操作请求生成存储指令序列;an acquisition module, configured to acquire a storage operation request, and generate a storage instruction sequence according to the storage operation request;确定模块,用于确定所述获取模块获取的存储操作请求的操作类型、存储类型标识以及所述存储指令序列的内存地址,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储或者块存储;A determination module, configured to determine the operation type of the storage operation request acquired by the acquisition module, the storage type identifier and the memory address of the storage instruction sequence, where the storage type identifier is used to indicate that the storage type of the storage operation request is a key Value storage or block storage;生成模块,用于根据所述确定模块确定的存储操作请求的操作类型、所述存储类型标识以及所述存储指令序列的内存地址生成存储请求队列;a generating module, configured to generate a storage request queue according to the operation type of the storage operation request determined by the determining module, the storage type identifier and the memory address of the storage instruction sequence;发送模块,用于发送所述生成模块生成的存储请求队列至存储控制器,所述存储请求队列用于指示所述存储控制器根据所述存储请求队列执行相应的存储操作,其中,所述存储请求队列是利用协议指向的数据段来传输的。a sending module, configured to send the storage request queue generated by the generating module to a storage controller, where the storage request queue is used to instruct the storage controller to perform a corresponding storage operation according to the storage request queue, wherein the storage The request queue is transmitted using the data segment pointed to by the protocol.16.根据权利要求15所述的服务器,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识为预设无效值。The server according to claim 15, wherein when the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage, the storage type identifier is a preset invalid value.17.根据权利要求15所述的服务器,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识根据存储请求队列中标识的存储数据在所述存储中需要存储的位置与所述存储的数据的长度的和是否大于所述存储控制器的容量确定。17. The server according to claim 15, wherein when the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage, the storage type identifier is based on the storage type identified in the storage request queue. It is determined whether the sum of the position where the data needs to be stored in the storage and the length of the stored data is greater than the capacity of the storage controller.18.根据权利要求15所述的服务器,其特征在于,所述存储操作请求的操作类型为存储数据、读取数据、删除数据以及废弃数据中的任一种。18. The server according to claim 15, wherein the operation type of the storage operation request is any one of storing data, reading data, deleting data and discarding data.19.根据权利要求17所述的服务器,其特征在于,当所述存储操作请求用于请求键值的存储操作、所述存储操作请求的操作类型为读取数据时,所述生成模块,具体用于:19. The server according to claim 17, wherein, when the storage operation request is used to request a storage operation of a key value, and the operation type of the storage operation request is read data, the generating module, specifically Used for:根据所述存储操作请求获取键值长度,根据所述键值长度生成存储指令序列。The key value length is obtained according to the storage operation request, and a storage instruction sequence is generated according to the key value length.20.根据权利要求15所述的服务器,其特征在于,当所述存储操作请求用于请求至少两个键值的存储操作时,则生成的存储指令序列包括至少两个键值的子存储指令序列;20 . The server according to claim 15 , wherein when the storage operation request is used to request a storage operation of at least two key values, the generated storage instruction sequence includes sub-storage instructions of at least two key values. 21 . sequence;所述确定模块,具体用于确定所述存储操作请求的操作类型、存储类型标识,针对所述至少两个键值的子存储指令序列确定对应的内存地址。The determining module is specifically configured to determine the operation type and storage type identifier of the storage operation request, and determine the corresponding memory address for the sub-storage instruction sequence of the at least two key values.21.根据权利要求15所述的服务器,其特征在于,所述服务器还包括:21. The server of claim 15, wherein the server further comprises:接收模块,用于接收所述存储控制器返回的操作状态信息,所述操作状态信息用于指示所述存储控制器执行所述相应的存储操作的状态。A receiving module, configured to receive operation status information returned by the storage controller, where the operation status information is used to indicate the status of the storage controller performing the corresponding storage operation.22.一种服务器,其特征在于,包括存储器以及处理器,其中:22. A server, comprising a memory and a processor, wherein:所述存储器中存储一组程序代码,且所述处理器调用所述存储器中存储的程序代码,用于执行权利要求1至7任一项所述的存储方法。A set of program codes are stored in the memory, and the processor calls the program codes stored in the memory for executing the storage method according to any one of claims 1 to 7.23.一种存储控制器,其特征在于,包括:23. A storage controller, comprising:获取模块,用于获取存储请求队列,其中,所述存储请求队列是利用协议指向的数据段来传输的;an acquisition module, configured to acquire a storage request queue, wherein the storage request queue is transmitted by using the data segment pointed to by the protocol;所述获取模块,还用于根据所述存储请求队列获取所述存储指令序列的内存地址、存储操作请求的操作类型以及存储类型标识,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储或者块存储;The obtaining module is further configured to obtain, according to the storage request queue, the memory address of the storage instruction sequence, the operation type of the storage operation request, and the storage type identifier, where the storage type identifier is used to indicate the storage operation request of the storage operation. The type is key-value storage or block storage;执行模块,用于根据所述存储指令序列的内存地址、所述存储操作请求的操作类型以及所述存储类型标识执行相应的存储操作。An execution module, configured to execute a corresponding storage operation according to the memory address of the storage instruction sequence, the operation type of the storage operation request, and the storage type identifier.24.根据权利要求23所述的存储控制器,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识为预设无效值。24. The storage controller according to claim 23, wherein when the storage type identifier is used to indicate that the storage type requested by the storage operation is key-value storage, the storage type identifier is a preset invalid value.25.根据权利要求23所述的存储控制器,其特征在于,所述存储类型标识用于指示所述存储操作请求的存储类型为键值存储时,所述存储类型标识根据存储请求队列中标识的存储数据在所述存储中需要存储的位置与所述存储的数据的长度的和是否大于所述存储控制器的容量确定。25. The storage controller according to claim 23, wherein when the storage type identifier is used to indicate that the storage type of the storage operation request is key-value storage, the storage type identifier is based on the identifier in the storage request queue. It is determined whether the sum of the location where the stored data needs to be stored in the storage and the length of the stored data is greater than the capacity of the storage controller.26.根据权利要求23所述的存储控制器,其特征在于,所述存储操作请求的操作类型为存储数据、读取数据、删除数据以及废弃数据中的任一种。26. The storage controller according to claim 23, wherein the operation type of the storage operation request is any one of storing data, reading data, deleting data and discarding data.27.根据权利要求23所述的存储控制器,其特征在于,所述执行模块,具体用于:27. The storage controller according to claim 23, wherein the execution module is specifically configured to:根据所述存储类型标识确定所述存储操作请求的存储类型为键值存储;Determine according to the storage type identifier that the storage type of the storage operation request is key-value storage;根据所述存储指令序列的内存地址获取所述存储指令序列;Obtain the storage instruction sequence according to the memory address of the storage instruction sequence;根据所述存储操作请求的操作类型对所述存储指令序列执行相应的键值存储操作。A corresponding key-value storage operation is performed on the storage instruction sequence according to the operation type of the storage operation request.28.根据权利要求23所述的存储控制器,其特征在于,所述执行模块,具体用于:28. The storage controller according to claim 23, wherein the execution module is specifically configured to:根据所述存储类型标识确定所述存储操作请求的存储类型为块存储;Determine according to the storage type identifier that the storage type of the storage operation request is block storage;根据所述存储指令序列的内存地址获取所述存储指令序列;Obtain the storage instruction sequence according to the memory address of the storage instruction sequence;根据所述存储操作请求的操作类型对所述存储指令序列执行相应的块存储操作。A corresponding block storage operation is performed on the storage instruction sequence according to the operation type of the storage operation request.29.根据权利要求23所述的存储控制器,其特征在于,所述存储控制器还包括:29. The storage controller of claim 23, wherein the storage controller further comprises:输出模块,用于输出操作状态信息,所述操作状态信息用于指示所述存储控制器执行所述相应的存储操作的状态。An output module, configured to output operation state information, where the operation state information is used to indicate the state of the storage controller performing the corresponding storage operation.30.一种存储控制器,其特征在于,包括命令处理单元、操作处理单元、键值存储处理单元以及存储控制单元,用于执行权利要求8至14任一项所述的存储方法。30. A storage controller, comprising a command processing unit, an operation processing unit, a key-value storage processing unit, and a storage control unit, configured to execute the storage method according to any one of claims 8 to 14.31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机计算机软件产品,所述计算机软件产品包括若干指令,用以使得一台计算机设备执行权利要求1至7任意一项所述的方法。31. A computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer computer software product, the computer software product comprising several instructions for causing a computer device to execute claims 1 to 7 any of the methods described.32.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机计算机软件产品,所述计算机软件产品包括若干指令,用以使得一台计算机设备执行权利要求8至14任意一项所述的方法。32. A computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer computer software product, the computer software product comprising several instructions for causing a computer device to execute claims 8 to 14 any of the methods described.
CN201610378340.7A2016-05-312016-05-31 A storage method, server and storage controllerActiveCN106155586B (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN201610378340.7ACN106155586B (en)2016-05-312016-05-31 A storage method, server and storage controller

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN201610378340.7ACN106155586B (en)2016-05-312016-05-31 A storage method, server and storage controller

Publications (2)

Publication NumberPublication Date
CN106155586A CN106155586A (en)2016-11-23
CN106155586Btrue CN106155586B (en)2019-03-08

Family

ID=57353508

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN201610378340.7AActiveCN106155586B (en)2016-05-312016-05-31 A storage method, server and storage controller

Country Status (1)

CountryLink
CN (1)CN106155586B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN107402723B (en)*2017-07-252020-05-12北京腾凌科技有限公司 Method and storage system for reading and writing data
EP3985949B1 (en)*2017-12-262024-07-31Huawei Technologies Co., Ltd.Method and apparatus for managing storage device in storage system
CN108549682A (en)*2018-03-302018-09-18宁波诺信睿聚投资有限责任公司Management method, device, equipment and the storage medium of data object resource
CN110083307A (en)*2019-03-292019-08-02华为技术有限公司Date storage method, memory and server
KR102747429B1 (en)*2019-05-052024-12-26양쯔 메모리 테크놀로지스 씨오., 엘티디. Memory control system with sequence processing unit
CN112445412B (en)*2019-08-282024-06-11华为技术有限公司 Data storage method and device
AU2020356799B2 (en)*2020-06-182022-09-08Citrix Systems, Inc.Autonomous learning of entity values in artificial intelligence conversational systems
CN113821507A (en)*2021-07-282021-12-21腾讯科技(深圳)有限公司Data processing method and device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6785793B2 (en)*2001-09-272004-08-31Intel CorporationMethod and apparatus for memory access scheduling to reduce memory access latency
CN1543092A (en)*2003-11-072004-11-03清华大学 SCSI command optimization method based on FC-SAN storage device
CN100493079C (en)*2004-01-082009-05-27华为技术有限公司 The master node supports the method of slave unit devices of different protocol types on the slave node
US7936687B1 (en)*2004-03-302011-05-03Extreme Networks, Inc.Systems for statistics gathering and sampling in a packet processing system
US8001332B2 (en)*2008-04-302011-08-16Siemens AktiengesellschaftAdaptive caching for high volume extract transform load process
CN103312624B (en)*2012-03-092016-03-09腾讯科技(深圳)有限公司A kind of Message Queuing Services system and method
CN102831014B (en)*2012-07-302016-05-25华中科技大学A kind of method of utilizing many request queues to promote IO concurrency and reducing little IO delay
US10514855B2 (en)*2012-12-192019-12-24Hewlett Packard Enterprise Development LpNVRAM path selection
CN103543960A (en)*2013-10-122014-01-29创新科存储技术有限公司Method for storing data
CN104333614B (en)*2014-10-312018-07-27北京奇安信科技有限公司The method, apparatus and system of terminal recognition
CN104618484A (en)*2015-02-052015-05-13浪潮电子信息产业股份有限公司Key value pair based transverse expansion high-performance storing method

Also Published As

Publication numberPublication date
CN106155586A (en)2016-11-23

Similar Documents

PublicationPublication DateTitle
CN106155586B (en) A storage method, server and storage controller
US10949091B2 (en)Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US11604594B2 (en)Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
US10739995B2 (en)Method of consolidate data streams for multi-stream enabled SSDs
EP1833221B1 (en)Storage system having a channel control function using a plurality of processors
CN102486752B (en)Data pre-fetching in SAS expander
US8904058B2 (en)Selecting direct memory access engines in an adaptor input/output (I/O) requests received at the adaptor
US9846650B2 (en)Tail response time reduction method for SSD
CN108519862A (en)Storage method, device, system and the storage medium of block catenary system
JP6397995B2 (en) Database management system, database server, and database management method
CN114461133B (en)Host interface layer in storage device and method for processing request
CN101615106A (en)The method and system that is used for virtualizing SAS storage adapter
KR20220063755A (en)System architecture providing end-to-end performance isolation for multi-tenant system
CN104243736B (en)Information processing equipment and information processing method
WO2019174206A1 (en)Data reading method and apparatus of storage device, terminal device, and storage medium
JP5999536B2 (en) Computer and data reading method
CN110896408B (en) A data processing method and server cluster
Gaffney et al.Building wrangler: A transformational data intensive resource for the open science community
US10410270B2 (en)Granular selection and scheduling of queries
JP2019191997A (en)Storage system, method of controlling storage system, and management node
CN103970671B (en)Allocating Additional Requested Storage Space For A Data Set In A First Managed Space In A Second Managed Space
EP4134830A1 (en)Multi-function flexible computational storage device
CN105867848A (en)Information processing method and hard disk module
US20230051553A1 (en)Multi-function flexible computational storage device
US11372767B2 (en)Selectively processing storage commands at different granularities based on command types

Legal Events

DateCodeTitleDescription
C06Publication
PB01Publication
C10Entry into substantive examination
SE01Entry into force of request for substantive examination
GR01Patent grant
GR01Patent grant

[8]ページ先頭

©2009-2025 Movatter.jp