CN107346265A - Realize QoS method and apparatus - Google Patents

Realize QoS method and apparatus Download PDF

Info

Publication number
CN107346265A
CN107346265A CN201610514453.5A CN201610514453A CN107346265A CN 107346265 A CN107346265 A CN 107346265A CN 201610514453 A CN201610514453 A CN 201610514453A CN 107346265 A CN107346265 A CN 107346265A
Authority
CN
China
Prior art keywords
namespace
quota
command
message
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610514453.5A
Other languages
Chinese (zh)
Other versions
CN107346265B (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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology 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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Publication of CN107346265A publication Critical patent/CN107346265A/en
Application granted granted Critical
Publication of CN107346265B publication Critical patent/CN107346265B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The method and apparatus for realizing QoS is provided.QoS is realized in I/O command is handled.The method for handling I/O command, including:In response to the first I/O command is filled into submission queue, the quota for the first NameSpace is reduced, wherein corresponding first NameSpace of first I/O command;In response to from the message that the second I/O command of acquisition instruction is completed in queue is completed, increasing the quota for the second NameSpace, wherein second I/O command corresponds to the second NameSpace, and second I/O command carries the mark of instruction quota.

Description

Realize QoS method and apparatus
Technical field
The present invention relates to the generation and processing for handling NVMe orders, especially, it is related to and is spatially carried in multiple NMVe For service quality (QoS, Quality of Service).
Background technology
By queue exchange command or message it is conventional between equipment.Order sender inserts the command into submission rear of queue Portion, order recipient take out from queue tail and order and handle, result is inserted into and completes queue tail, order sender Command processing result is taken out from queue head is completed.By queue exchange command, can directly be safeguarded with recipient in sender Multiple concurrent orders, and the processing speed between order need not be consistent.NVMe agreements are (referring to " NVM Express Revision 1.2 ", on November 3rd, 2014, its full text is incorporated in this specification by quoting) define main frame (Host) with The order of the swapping data of equipment (Device) and data structure (as shown in Figure 1).Multiple queues, each team are safeguarded in main frame Multiple orders can be filled in row.Main frame exchanges data with equipment based on queue.Main frame will order C to insert submission queue, equipment from Submit and order C is obtained in queue, and handled by order C content, result is inserted and completes queue.Main frame is from completion Queue obtain order C result with know order C processing complete.
According to NVMe agreements, the head of the queue and rear pointer of multiple queues are safeguarded in equipment end.Main frame and equipment can all update Head of the queue and rear pointer.For main frame to during equipment transmission order, main frame inserts the command into the tail of the queue for submitting queue, and updates tail of the queue and refer to Pin.Equipment end compares the front pointer and rear pointer for submitting queue, when the two is different, determines that pending processing is ordered in queue Order.After equipment end takes out order from queue, front pointer is updated.Host side is based on front pointer and rear pointer, it may be determined that Whether space new order is had in queue.
Between component software, between integrated circuit package and between software and hardware also using queue exchange message or Order.
NameSpace (namespace) is also defined in NVMe agreements.Size is that n NameSpace is that have from 0 to n-1 Logical block address logical block set.Being capable of unique mark NameSpace by NameSpace ID (Namespace ID).Life The name space can be shared between main frame/NVMe controllers.Main frame is able to access that different names are empty by single NVMe controllers Between.Different main frames can also pass through multiple NVMe controller access identical NameSpaces.
The content of the invention
Need to provide QoS for NameSpace, then need to provide current limiting mechanism for each NameSpace, and be each life The name space provides waiting list.Have appreciated that competition of the memory source between CPU core will have a strong impact on the performance of main frame, because And tend to implement binding between CPU core and memory source.32 order spaces and the NVMe of 32 host CPU core are being provided In system, it is desirable to provide the individual NVMe of 32*32 (1024) submit queue to meet CPU core binding and provide current limliting for NameSpace Demand.And provide 1024 and submit queue to need to consume substantial amounts of controller resource.
According to the first aspect of the invention, there is provided the method for the first processing I/O command according to a first aspect of the present invention, Including:In response to the first I/O command is filled into submission queue, the quota for the first NameSpace is reduced, wherein described first Corresponding first NameSpace of I/O command;In response to from the message that the second I/O command of acquisition instruction is completed in queue is completed, increase is used In the quota of the second NameSpace, wherein second I/O command corresponds to the second NameSpace, and second I/O command Carry the mark of instruction quota.
The method of the first processing I/O command according to a first aspect of the present invention, there is provided according to a first aspect of the present invention the The method of two processing I/O commands, in addition to:If for the quota deficiency of the first NameSpace, by corresponding to the first NameSpace I/O command inserts the first waiting list, and is not filled to submission queue.
First or the method for second processing I/O command according to a first aspect of the present invention, there is provided according to first party of the present invention The method of the 3rd processing I/O command in face, in addition to:Message in response to obtaining instruction the 3rd I/O command completion from completion queue, The quota for being used in second space keeps constant, wherein the 3rd I/O command corresponds to the second NameSpace, and described the Three I/O commands do not carry the mark of instruction quota or the 3rd I/O command carries the mark that instruction quota is zero.
First according to a first aspect of the present invention to the 3rd processing I/O command one of method, there is provided according to the present invention the The method of the fourth process I/O command of one side, in addition to:In response to from queue acquisition null message is completed, increasing for the second life The quota of the name space, wherein the null message indicates the second NameSpace, and the null message does not indicate any I/O command Complete.
One of method of first to fourth processing I/O command according to a first aspect of the present invention, there is provided according to the present invention the The method of 5th processing I/O command of one side, in addition to:If the quota for first NameSpace is sufficient, from first etc. Treat to take out the 4th I/O command in queue;4th I/O command is filled into submission queue, and reduces matching somebody with somebody for the first NameSpace Volume.
First according to a first aspect of the present invention to the 5th processing I/O command one of method, there is provided according to the present invention the The method of 6th processing I/O command of one side, in addition to:If the first waiting list is sky, taking out IO from I/O request queue please Ask and generate the 5th I/O command;5th I/O command is filled into submission queue, reduces the quota for the first NameSpace.
First according to a first aspect of the present invention to the 6th processing I/O command one of method, there is provided according to the present invention the The method of 7th processing I/O command of one side, wherein first NameSpace shares quota with second NameSpace.
According to the second aspect of the invention, there is provided the method for the first processing I/O command according to a second aspect of the present invention, Including:In response to handling the first I/O request for the first NameSpace, the first quota for the first NameSpace is distributed;Base The first order of first quota is indicated in the generation of the first I/O request, and is filled into submission queue;In response to from complete queue The middle message for obtaining the order of instruction second and completing, discharges the second quota for the second NameSpace, wherein the order of instruction second Corresponding second NameSpace of the message of completion, and the message that the order of instruction second is completed indicate the second quota.
The method of the first processing I/O command according to the second aspect of the invention, there is provided according to a second aspect of the present invention The method of second processing I/O command, wherein the first quota in response to distributing the first NameSpace, is successively decreased with the value of the first quota Quota for first NameSpace;And in response to discharging the second quota for the second NameSpace, match somebody with somebody with second The value of volume is incrementally used for the quota of second NameSpace.
First or the method for second processing I/O command according to the second aspect of the invention, there is provided according to the present invention second The method of 3rd processing I/O command of aspect, if wherein the first quota failure for the first NameSpace is distributed, by described the One I/O request inserts the first waiting list for the first NameSpace.
First according to the second aspect of the invention to the 3rd processing I/O command one of method, there is provided according to the present invention The method of the fourth process I/O command of second aspect, if wherein instruction second order complete message indicate the second quota for sky, Keep constant for the quota of the second NameSpace.
One of method of first to fourth processing I/O command according to the second aspect of the invention, there is provided according to the present invention The method of 5th processing I/O command of second aspect, wherein first order also includes the first mark, first mark is used First quota is carried in indicating that described first orders.
First according to the second aspect of the invention to the 5th processing I/O command one of method, there is provided according to the present invention The method of 6th processing I/O command of second aspect, wherein the message that the order of instruction second is completed also includes the second mark, Described second marks for indicating to carry second quota in the message for indicating the second order and completing.
First according to the second aspect of the invention to the 6th processing I/O command one of method, there is provided according to the present invention The method of 7th processing I/O command of second aspect, if wherein the message that the order of instruction second is completed does not include the second mark Note, keeps constant for the quota of the second NameSpace.
First according to the second aspect of the invention to the 7th processing I/O command one of method, there is provided according to the present invention The method of 8th processing I/O command of second aspect, wherein in response to obtaining null message from completion queue, discharges for second 3rd quota of NameSpace, wherein the null message indicates the second NameSpace and the 3rd quota, and the null message is not Indicate the completion of any order.
First according to the second aspect of the invention to the 8th processing I/O command one of method, there is provided according to the present invention The method of 9th processing I/O command of second aspect, in addition to:In response to handling the second I/O request for the second NameSpace, Distribute the first quota for the second NameSpace;The 3rd order of first quota is indicated based on the generation of the second I/O request, And it is filled into submission queue;In response to from the message that the order of acquisition instruction first is completed in queue is completed, discharging for the first life First quota of the name space.
First according to the second aspect of the invention to the 9th processing I/O command one of method, there is provided according to the present invention The method of tenth processing I/O command of second aspect, matches somebody with somebody wherein first NameSpace is shared with second NameSpace Volume.
According to the third aspect of the invention we, there is provided the method for the first processing I/O command according to a third aspect of the present invention, Including:The first I/O command is obtained from submitting in queue, wherein the first I/O command is used for the first NameSpace;For the first NameSpace The indicated quota of the order of accumulation first;The first message that generation the second I/O command of instruction is completed, sets in first message and refers to Show the mark of the quota for the first NameSpace, be correspondingly reduced to the quota that the first NameSpace is accumulated, second is disappeared Breath, which is filled into, completes queue.
The method of the first processing I/O command according to the third aspect of the invention we, there is provided according to a third aspect of the present invention The method of second processing I/O command, in addition to:Null message is generated, and the mark of instruction quota is set in the null message, will The null message, which is filled into, completes queue, is correspondingly reduced to the quota that the first NameSpace is accumulated;Wherein described null message The completion of any I/O command is not indicated for the first NameSpace, and the null message.
First or the method for second processing I/O command according to the third aspect of the invention we, there is provided according to the present invention the 3rd The method of 3rd processing I/O command of aspect, in addition to:If it is not less than the first threshold corresponding to the QoS level of the first NameSpace Value, generation indicate the second message that the 3rd I/O command is completed, and the mark of instruction quota is set in the second message, and the instruction is matched somebody with somebody The mark instruction quota of volume is zero.
First according to the third aspect of the invention we to the 3rd processing I/O command one of method, there is provided according to the present invention The method of the fourth process I/O command of the third aspect, in addition to:The 3rd message that generation the 4th I/O command of instruction is completed, the 3rd The mark of instruction quota is set in message, and indicated quota is more than the indicated quota of the described first order, and correspondingly subtracts The quota accumulated less by the first NameSpace.
According to the fourth aspect of the invention, there is provided the method for the first processing I/O command according to a fourth aspect of the present invention, Including:The first I/O command is obtained from submitting in queue, wherein the first I/O command is used for the first NameSpace;Handle the first IO lives Order, and generate the first message that the first I/O command of instruction is completed;The mark of instruction quota is set in first message, first is disappeared Breath, which is filled into, completes queue.
The method of the first processing I/O command according to the fourth aspect of the invention, there is provided according to a fourth aspect of the present invention The method of second processing I/O command, in addition to:Null message is generated, and the mark of instruction quota is set in the null message, will The null message, which is filled into, completes queue;Wherein described null message is used for the first NameSpace, and the null message does not indicate The completion of any I/O command.
The method of the first processing I/O command according to the fourth aspect of the invention, there is provided according to a fourth aspect of the present invention The method of 3rd processing I/O command, wherein the mark instruction quota of the instruction quota is zero.
First according to the fourth aspect of the invention to the 3rd processing I/O command one of method, there is provided according to the present invention The method of the fourth process I/O command of fourth aspect, if wherein be less than first threshold corresponding to the QoS level of the first NameSpace, The quota indicated according to the first order sets the mark of instruction quota in first message.
One of method of first to fourth processing I/O command according to the fourth aspect of the invention, there is provided according to the present invention The method of 5th processing I/O command of fourth aspect, if wherein being not less than the first threshold corresponding to the QoS level of the first NameSpace Value, the mark of instruction quota is set in first message, and the mark instruction quota of the instruction quota is zero.
The method of the 5th processing I/O command according to the fourth aspect of the invention, there is provided according to a fourth aspect of the present invention The method of 6th processing I/O command, is also first if wherein be not less than first threshold corresponding to the QoS level of the first NameSpace The indicated quota of the order of NameSpace accumulation first.
The method of the 5th processing I/O command according to the fourth aspect of the invention, there is provided according to a fourth aspect of the present invention The method of 7th processing I/O command, in addition to:Null message is generated, and the mark of instruction quota is set in the null message, will The null message, which is filled into, completes queue, is correspondingly reduced to the quota that the first NameSpace is accumulated;Wherein described null message The completion of any I/O command is not indicated for the first NameSpace, and the null message.
First according to the fourth aspect of the invention to the 7th processing I/O command one of method, there is provided according to the present invention The method of 8th processing I/O command of fourth aspect, in addition to:The mark of instruction quota is set in first message, it is indicated Quota is more than the indicated quota of the described first order, and is correspondingly reduced to the quota that the first NameSpace is accumulated.
First according to the fourth aspect of the invention to the 8th processing I/O command one of method, there is provided according to the present invention The method of 9th processing I/O command of fourth aspect, in addition to:The second I/O command is obtained, wherein the second I/O command is used for the first life The name space;The second I/O command is handled, and generates the second message that the second I/O command of instruction is completed;Judge the clothes in the first order space Business quality scale, the mark of instruction quota is set in the second message, first message is filled into and completes queue.
According to the fifth aspect of the invention, there is provided a kind of device for handling I/O command, including:Quota application module, use In in response to the first I/O command is filled into submission queue, the quota for the first NameSpace is reduced, wherein first IO Corresponding first NameSpace of order;Quota release module, in response to complete from the second I/O command of acquisition instruction in queue is completed Into message, increase the quota for the second NameSpace, wherein second I/O command corresponds to the second NameSpace, and Second I/O command carries the mark of instruction quota.
According to the sixth aspect of the invention, there is provided the device of processing I/O command according to a sixth aspect of the present invention, including: Allocation of quota module, in response to handling the first I/O request for the first NameSpace, distributing for the first NameSpace The first quota;Module is submitted in order, for indicating the first order of first quota based on the generation of the first I/O request, and is filled out It is charged to submission queue;Quota release module, the message completed in response to obtaining the order of instruction second from completion queue, discharges and uses In the second quota of the second NameSpace, wherein the message that the order of instruction second is completed corresponds to the second NameSpace, and instruction The message that second order is completed indicates the second quota.
According to the seventh aspect of the invention, a kind of device for handling I/O command, including:I/O command acquisition module, for obtaining The first I/O command is taken, wherein the first I/O command is used for the first NameSpace;Quota accumulation module, for tiring out for the first NameSpace The indicated quota of the order of product first;Message generating module, the first message completed for generating the second I/O command of instruction, the Mark of the instruction for the quota of the first NameSpace is set in one message, is correspondingly reduced to what the first NameSpace was accumulated Quota, the second message is filled into and completes queue.
According to the eighth aspect of the invention, there is provided the device of processing I/O command according to a eighth aspect of the present invention, including: I/O command acquisition module, for obtaining the first I/O command from submission queue, wherein the first I/O command is used for the first NameSpace; I/O command processing module, for handling the first I/O command, and generate the first message that the first I/O command of instruction is completed;Message is filled Module, for setting the mark of instruction quota in first message, first message is filled into and completes queue.
Brief description of the drawings
When being read together with accompanying drawing, by reference to the detailed description of illustrative embodiment, will be best understood below The present invention and preferable use pattern and its further objects and advantages, wherein accompanying drawing include:
Fig. 1 shows the schematic diagram that main frame passes through queue exchange command with equipment room in the prior art;
Fig. 2 shows the block diagram of NVMe systems according to embodiments of the present invention;
Fig. 3 A are NameSpace current limliting schematic diagrames according to embodiments of the present invention;
Fig. 3 B are NameSpace current limliting schematic diagrames according to another embodiment of the present invention;
Fig. 4 A are the flow charts of processing NVMe orders according to embodiments of the present invention;And
Fig. 4 B are the flow charts of processing instruction NVMe order completion messages according to embodiments of the present invention.
Embodiment
Fig. 2 shows the schematic diagram that main frame passes through queue exchange command with equipment room in the prior art.In the reality according to Fig. 2 Apply in example, main frame passes through queue exchange command with equipment according to NVMe agreements.Include the control for supporting NVMe agreements in a device Device processed.Equipment can be the solid state hard disc for supporting NVMe agreements as an example.
Main frame includes multiple applications (for example, using 1, using 2 with applying 3), passes through the submission team of NVMe protocol definitions Row (SQ) send NVMe agreements to equipment, and the result of NVMe orders is received from completion queue (CQ).Controller carries For multiple NameSpaces.In order to provide QoS (service quality, Quality of Service) to each order space, in basis In embodiments of the invention, NameSpace current limiting mechanism is also provided.NameSpace current limiting mechanism can be implemented as software module or Intermediate layer.In main frame, the quota (202,204,206) that each NameSpace provides is recorded as.As an example, quota is main frame The quantity for the I/O command that can be sent to each NameSpace.Can be that each NameSpace distributes identical in initialization Quota.Or it is each NameSpace allocated quotas according to the different attribute in each order space as another example.
NVMe orders are converted to by NameSpace current limliting module using the I/O request sent.Use is carried in NVMe orders In the quota of the NameSpace accessed.When in main frame exist for NameSpace NS1 remaining quota, NameSpace current limliting mould Block just sends the NVMe orders for accessing NameSpace NS1, and otherwise, NVMe orders are temporarily stored in main frame.
To realize NameSpace current limliting, the I/O request that the current limliting module check application of order space is sent, identification I/O request will The order space of access, and apply for the quota for the NameSpace.For example, application program will access NameSpace NS1, name The surplus value of the quota (202) of NameSpace NS1 recorded in the current limliting module check main frame of space.If NameSpace NS1's The surplus value (202) of quota is more than 0, and cooperation (for example, quota value 1) is set in the NVMe orders of generation, and by generation Submission queue is inserted in NVMe orders, while the quota (202) of the NameSpace NS1 recorded in main frame is successively decreased (for example, subtracting The quota value marked in NVMe orders, for 1).If the surplus value of NameSpace NS1 quota (202) is 0, it indicates name Space NS1 quota has exhausted, and to realize QoS, is not sent to controller (submission queue) temporarily and accesses NameSpace NS1's NVMe orders.Alternatively, queue is also provided in the NameSpace current limliting module in main frame to cache because of current limliting temporarily can not It is filled into the NVMe orders for submitting queue.The queue (non-submission queue) that caching NVMe orders are provided in main frame is beneficial. When the QoS quotas of NameSpace exhaust, controller is likely to be deficient in resources accesses the more of the NameSpace to handle NVMe orders.Submit in queue if these NVMe orders appear in, due to cannot effectively handle, and may cause in controller In congestion, or even influence to submit the processing speed of queue, and then influence the place of the NVMe orders to accessing other names spaces Reason (even if the QoS quotas in other names space are still sufficient).
In an embodiment according to the present invention, current limliting is implemented for each NameSpace.It is used in NameSpace NS1 quota (202) is exhausted, and the quota (204,206) for being used for NameSpace NS2 or NS3 is still present, then application is visited Submission queue can be still received in by asking NameSpace NS2 or NS3 I/O request.
When NVMe command process is completed, the message for indicating the completion of NVMe command process is inserted and completes queue by controller (CQ) given back quota is indicated, and in the message.The NameSpace current limliting module of main frame middle taking-up message from completion queue, The NameSpace (for example, NS1) corresponding to the message is identified, and identifies and quota value whether is carried in message.If taken in message With quota value, more new name space NS1 quota (202) (for example, plus 1).Further, NameSpace NS1 quota is big Can be the NVMe order allocated quotas for NameSpace NS1 cached in main frame, and be filled into and submit queue (SQ) after 0.
In an embodiment according to the present invention, main frame is provided (empty by naming to the QoS of each NameSpace by quota Between current limliting), and controller is participated in NameSpace current limliting.Controller can be checked or measured what is provided for each NameSpace QoS, when needing to limit such as NameSpace NS1 QoS, controller retains the quota for NameSpace NS1.Controller exists It is filled into the message for completing queue (CQ), may be selected to be provided with or without quota.Controller passes through in queue message is completed Quota is not provided, and by the cooperation retention for NameSpace NS1 in the controller.In the case, with to NameSpace NS1 access, the surplus value of NameSpace NS1 quota gradually reduces in main frame, and cannot recover.When in main frame NS1 quotas exhaust, and NameSpace current limliting module does not reprocess the I/O request for NameSpace NS1, empty to name so as to realize Between current limliting.
It is pointed out that in the case where controller does not implement retention, if the processing speed of main frame and controller is not Match somebody with somebody, also due to submitting queue (SQ), completing to have cached too many untreated completion in queue (CQ) and equipment (controller) NVMe orders, and the quota for being used in one or more NameSpaces exhausts.And in the embodiment of the present invention, controller is implemented to cut Stay, accelerate the process that NameSpace quota exhausts.
In an embodiment according to the present invention, controller is filled into the message for completing queue (CQ) including at least three kinds.(1) Quota is carried, and indicates the message that 1 NVMe command process is completed.NameSpace current limliting module is from completion queue (CQ) When obtaining such message, corresponding renewal corresponds to the quota of the NameSpace of the NVMe orders, to complete the return of quota.Can be with Quota entrained by message is indicated by 1 bit, mark or the numerical value in message.In 1 example, by 1 bit or mark institute The quota value of instruction is unit value (such as 1).In another example, the quota value more than 1 can be returned in the message, and by disappearing The quota value that numerical value in breath is returned.(2) quota is not carried (as another message), and indicate 1 NVMe life The message that order processing is completed.By sending such message, controller realizes the retention to the quota of NameSpace.NameSpace limits Flow module is matched somebody with somebody from the NameSpace for when completing to obtain such message in queue (CQ), corresponding to the NVMe orders without updating Volume.It can be that quota mark is not present in message to indicate such message, invalid quota mark either be present or exist Quota indicates, but the quota value indicated is 0.(3) null message (as still another message).Null message do not correspond to it is any Submitted NVMe orders.Null message is actively generated by controller.Quota is carried in null message, further indicates targeted name Space.The quota carried in null message can be flat allocation quota (such as 1) or quota value.In response to from complete queue (CQ) null message is obtained, the renewal of quota value (such as increase) null message indicated by NameSpace current limliting module null message is signified NameSpace quota surplus value of the NameSpace shown in main frame.Other message categories are also feasible, for example, indicating In the message that 1 NVMe command process is completed, pass through extra bit instruction and return NameSpace corresponding to quota.
In the above example, quota is integer value (such as 100), to send 1 NVMe order, required quota value For 1.When NS1 quotas (202) are more than 0, it is meant that NameSpace NS1 quota is sufficient, accesses NameSpace NS1 NVMe lives Order, which is allocated quota value and inserted, submits queue (SQ).If NS1 quotas (202) are not more than 0, it is meant that NameSpace NS1's matches somebody with somebody Volume deficiency, NameSpace NS1 NVMe orders is accessed by temporal cache, to wait quota.As another example, for difference NVMe orders, required quota quantities are different.For example, the NVMe orders for accessing more big data quantity need more to match somebody with somebody Volume.As an example, access 1 NVMe order of 512 byte datas, it is necessary to quota value be 1, and access the 1 of 4K byte datas Bar NVMe orders, it is necessary to quota value be 8.When NS1 quotas are 1, the NVMe orders for accessing 4K byte datas, quota is Deficiency, and it is only capable of sending the NVMe orders of 1 512 byte of access again.Except the data length that NVMe orders are accessed, NVMe lives The type of order also influences the quota needed for it.For example, erasing order, trimming (Trim) order need the longer time than read command Time and/or more resources, it is also more to perform the required quota of these these orders.As another example, main frame can Quota needed for 1 NVMe order is sent with adjustment, and/or adjusts the quota for each NameSpace.
It is understood that the concrete numerical value or the form of expression of quota can be various, and the present invention not limits In this.
Fig. 3 A are NameSpace current limliting schematic diagrames according to embodiments of the present invention.Fig. 3 A illustrate a certain moment, pass through NVMe agreements exchange the implementation status of multiple NVMe orders in the main frame and equipment of data.What main frame included being currently running answers With 1, using 2 with applying 3.Main frame includes the submission queue (SQ) according to NVMe agreements with completing queue (CQ).In main frame also Including NameSpace current limliting module according to embodiments of the present invention.NameSpace current limliting module receives the IO from application program please Ask, and decide whether I/O command being filled into and submit queue (SQ).
Controller in equipment provides 3 NameSpaces (NS1, NS2 and NS3).Each name is also recorded as in main frame The quota (NS1 quotas 302, NS2 quotas 304 and NS3 quotas 306) that space provides.As shown in Figure 3A, current namespace NS1 Quota value be 15, NameSpace NS2 quota value is 20 and NameSpace NS3 quota value is 0.In the example in figure 3, order Name space NS1 and NameSpace NS2 quota are sufficient, and NameSpace NS3 relative to the I/O request to the two spaces Quota be insufficient, currently can not send I/O request to NameSpace NS3.Also IO lives are provided in main frame for each NameSpace Buffering area (NS1 waiting lists 312, NS2 waiting lists 314 and NS3 waiting lists 316) is made, for the quota in NameSpace When insufficient, I/O command of the interim storage for the NameSpace of quota deficiency.
With continued reference to Fig. 3 A, currently include successively being filled into 5 NVMe orders for submitting queue in submission queue (SQ). CMD5-NS1 (1) represents the NVMe orders that accesses NameSpace NS1 of the order ID as CMD5, and the quota value carried is 1; CMD4-NS3 (1) represents the NVMe orders that accesses NameSpace NS3 of the order ID as CMD4, and the quota value carried is 1; CMD3-NS1 (1) represents the NVMe orders that accesses NameSpace NS1 of the order ID as CMD3, and the quota value carried is 1. In Fig. 3 A, it is team's head to submit below queue (SQ), and top is tail of the queue, and NVMe orders are by from tail of the queue insertion queue and from team's head Take out.
The controller of Fig. 3 A equipment is from the team's head taking-up NVMe orders for submitting queue (SQ), at NVMe orders Reason, and will indicate that ordering the message for performing completion to be inserted completes queue (CQ).Controller measures the clothes for each NameSpace Business quality, and to implementing to retain from the quota submitted in the NVMe orders obtained in queue (SQ).In figure 3 a, controller has been The quota that value is 4 has been retained for order space NS1, and has been that NameSpace has retained the quota that value is 18.As an example, controller NVMe orders CMD5-NS1 (1) is taken out from team's head of queue (SQ) is submitted.Controller is judged as the service that NameSpace NS1 is provided Quality beyond desired level, is determined as NameSpace NS1 and implements retention.To implement to retain, controller orders NVMe The quota value entrained by CMD5-NS1 (1) is made to be retained in controller.In controller, it is recorded as each NameSpace and is retained Quota value.As an example, make what is recorded in controller with the quota value " 1 " entrained by NVMe orders CMD5-NS1 (1) Quota value for NameSpace NS1 is incremented by (adding 1).
Further, be implement retention, controller to complete queue (CQ) insert message when, mark the message not carry and match somebody with somebody Volume.As an example, referring to Fig. 3, the processing for the NVMe orders that it is CMD9 that message CMD9-NS1 (0), which is indicated for indicating order ID, is complete Into message, the order space of NVMe command access that order ID is CMD9 is NS1, and " (0) " in the message indicates that this disappears Breath does not carry quota, and (in other words, 0) the quota value of carrying is.That is, for NameSpace NS1 implement retain, controller from cut The quota carried in NVMe orders is stayed, without quota is returned into main frame.So as to matching somebody with somebody for NameSpace NS1 in main frame Volume progressively consumes with the access to NameSpace NS1, cannot but supplement.The matching somebody with somebody for NameSpace NS1 in main frame After volume exhausts, main frame is no longer to the NVMe orders for submitting queue (SQ) to send access NameSpace NS1.It is pointed out that take NVMe orders with quota are with returning the message of quota without corresponding.In the example in figure 3, NVMe orders CMD5-NS1 (1) takes With the quota for being used for NameSpace NS1, and message CMD7-NS1 (1) has returned the quota for NameSpace NS1, message CMD7-NS1 (1) is indicated for the NVMe orders that order ID is CMD7 and performs the message completed, and is not intended to instruction order ID is that CMD5 NVMe orders perform the message completed.
Controller may judge NameSpace NS1 need not be implemented to retain.In the case, controller is for indicating The NVMe orders for accessing NameSpace NS1 are performed in the message completed, and mark the message to carry quota, to indicate quota value Return to main frame.Quota indicates the quantity that controller can be the NVMe orders that each NameSpace is handled simultaneously and (or examined Consider the difference between NVMe orders, quota, which corresponds to while controller provides for each NameSpace, handles NVMe orders Maximum capacity).In one embodiment, controller is being added to the message for NameSpace NS1 of completion queue (CQ) Middle mark quota, and make by the quota value that NameSpace NS1 is recorded to be successively decreased in controller.In other words, controller will not produce Raw quota value, but will be retained from NVMe orders for specifying the quota value in order space to return to main frame.
It is the message indicated by 0- (NS1) (1) in the tail of the queue of completion queue (CQ) with continued reference to Fig. 3 A, its message is not right Should be in any effective NVMe orders, but particular message caused by controller (referred to as " null message ").In null message, instruction NameSpace (NS1) and the quota value (1) returned.By the way that to queue filling null message is completed, controller is actively returned to main frame The quota retained.In Fig. 3 A example, the quota value for submitting the NVMe orders in queue (SQ) to carry is 1, and is completed The quota value carried in message in queue (CQ) is 1 or 0.Because NVMe orders are corresponding with the message that instruction order is completed, , it is necessary to which quota is returned to main frame by extra message after controller implements quota retention.For this purpose, controller generates Null message, and NameSpace and the quota value returned are indicated in null message.In another embodiment, NVMe orders and/ Or the quota carried in message can have different value, so as to which by changing quota value, the quota retained can be returned in the message Main frame is returned, without using null message.
In Fig. 3 A example, main frame provides quota for each NameSpace, and controller is that the retention of each NameSpace is matched somebody with somebody Volume.And another example is used as, controller shares between multiple NameSpaces or " borrow " quota.For example, controller is life Name space NS1 has retained the quota that value is 20, is that NameSpace NS2 has retained the quota that value is 10.Controller can be as needed The quota retained for NameSpace NS2 is returned into NameSpace NS1.Alternatively, controller can generate extra quota value simultaneously " borrow " gives NameSpace (for example, NS1) so that detecting host controller is (interim to NameSpace NS1 service quality rating Ground) lifting.In still another example, multiple NameSpaces share quota.For example, NameSpace NS1 and NameSpace NS2 Shared quota.It is NameSpace NS1 and NameSpace NS2 records one NameSpace quota in main frame.No matter to submission The middle filling of queue (SQ) accesses NameSpace NS1 NVMe orders or accesses NameSpace NS2 NVMe orders, and all using should Single NameSpace quota.And controller could be aware that or be unaware of that NameSpace NS1 and NameSpace NS2 is shared matches somebody with somebody Volume.In the case where controller knows that NameSpace NS1 and NameSpace NS2 shares quota, controller is two NameSpaces The quota cutoff value of record one, and measure the overall service quality rating of two NameSpaces.It is being unaware of ordering in controller In the case that name space NS1 and NameSpace NS2 shares quota, controller is each self-recording quota retention of two NameSpaces Value, and measure two respective service quality ratings of NameSpace.
Controller controls whether to return quota for NameSpace, and returns the mode of quota.In one example, control Device measures the service quality rating or level of each NameSpace.It can use in a period of time and provide service for some NameSpace Amount (processing NVMe orders quantity, or used for NVMe orders resource (for example, memory headroom, the CPU time, data biography Defeated bandwidth, energy etc.)) indicate the service quality rating of the NameSpace.Each NameSpace has service quality threshold value.Control Device processed measures the service quality rating of each NameSpace, and the service quality rating in some order space (for example, NS1) is less than During threshold value, retention is not implemented to NameSpace NS1 quota, the quota carried in the NVMe orders that NameSpace NS1 will be accessed, All by returning to main frame corresponding to NameSpace NS1 message, or in the message for each corresponding to NameSpace NS1 all Carry quota.Service quality rating in some order space (for example, NS1) is higher than or during not less than threshold value, to NameSpace NS1 quota implements retention, and not carrying quota in the message corresponding to NameSpace NS1, (or the quota value carried is 0).Further, when necessary, controller to queue filling null message is completed by returning quota.For example, controller detects Service quality to NameSpace NS1 is less than threshold value for a long time, and NameSpace NS1 retentions are existed in controller Quota value, controller return the quota value for NameSpace NS1 by null message to main frame.In another example, there is provided Less than the Second Threshold of threshold value above, when controller detects NameSpace NS1 service quality already below Second Threshold When, the quota value for NameSpace NS1 is returned to main frame by null message.In still another example, main frame can be adjusted It is used for the threshold value and/or Second Threshold and/or measurement service quality rating of the service quality of each NameSpace in whole controller Strategy.
In Fig. 3 A example, NameSpace NS1 quotas (15) (302) indicate NameSpace NS1 quotas in main frame Surplus value is that the surplus value that 15, NS2 quotas (20) (304) indicate NameSpace NS2 quotas is 20, and NS3 quotas (0) (306) surplus value for indicating NameSpace NS3 quotas is 0, i.e. its quota has exhausted.In the case, if receiving again To NameSpace NS3 access request, NameSpace current limliting module is ordered according to the access request generation NVMe to NameSpace NS3 Order, and NS3 waiting lists (316) are put it into the interim storage NVMe orders.If receive to NameSpace NS1 or NS2 Access request, because NameSpace NS1 and NS2 quota are sufficient, NVMe orders are generated according to access request, in NVMe orders Quota entrained by middle mark, NVMe orders are inserted and submit queue (SQ), make the NameSpace NS1 quotas recorded in main frame (302) it is corresponding to NS2 quotas (304) to successively decrease.
After NameSpace NS3 quota abundance, NameSpace current limliting module is taken out from NS3 waiting lists (316) again The NVMe orders of caching, entrained quota is marked in the NVMe orders, and insert and submit queue (SQ).
Fig. 3 B are NameSpace current limliting schematic diagrames according to another embodiment of the present invention.With the embodiment phase shown in Fig. 3 A Than Fig. 3 embodiment also includes waiting list (322,324 and 326).In the example in figure 3, one is provided for each NameSpace Individual corresponding waiting list.Waiting list 322 is used to store the I/O request to NameSpace NS1, and waiting list 324 is used for The I/O request to NameSpace NS2 is stored, waiting list 326 is used to store the I/O request to NameSpace NS3.Application program pair The access request of NameSpace is received in waiting list.NameSpace current limliting module is taken out I/O request and carried out from waiting list Processing.
NameSpace current limliting module can implement a variety of scheduling strategies according to NameSpace quota.For example, NameSpace current limliting Module implements robin scheduling to each NameSpace.Whether NameSpace current limliting module check NameSpace NS1 quota is sufficient (having the quota value for being used for handling the NVMe orders for accessing the NameSpace), in quota abundance, takes from waiting list 322 Go out I/O request, generate NVMe orders, be filled into and submit queue (SQ), quota is set in NVMe orders, from NS1 quotas (302) In subtract quota value (such as 1) to NVMe orders be set.Next, NameSpace current limliting module is successively to NameSpace NS2 Handled with NS3 I/O request.
In another embodiment in accordance with the invention, there is provided the waiting list of varying number, such as 1 waiting list, its Include accessing the I/O request of each NameSpace.NameSpace current limliting module takes out I/O request from waiting list, identifies it The NameSpace of access, check whether the quota of accessed NameSpace is sufficient.In quota abundance, generated for the I/O request NVMe orders, insert and submit queue (SQ), quota value, and the corresponding NameSpace recorded from main frame are set in NVMe orders Quota value in subtract quota value to NVMe orders be set.In quota value deficiency, NVMe orders are generated for the I/O request, are filled out Enter in waiting list corresponding to same NameSpace.
In still another embodiment according to the present invention, NameSpace current limliting module is in quota value abundance, (with wait Queue 322,324 or 326 is compared) NVMe orders are preferentially obtained from NameSpace waiting list (312,314 or 316) and are inserted Submit queue (SQ).
Further, waiting list (322,324 and 326) is also mutually bound with CPU core.So that for a waiting list, The operation to the waiting list is handled by the particular CPU core bound with it.
Fig. 4 A are the flow charts of processing NVMe orders according to embodiments of the present invention.Main frame is carried by the way that NVMe orders are inserted Queue is handed over to send NVMe orders to equipment.To obtain NVMe orders, in Fig. 3 A example, the NameSpace current limliting mould of main frame Block receives the access request to equipment from application program.In Fig. 3 B example, NameSpace current limliting module from wait team The access request to equipment is obtained in row.As an example, the first NameSpace (for example, NS1) is accessed to the access request of equipment. NVMe orders are generated according to the access request to storage device.In step 410, sky is named in NameSpace current limliting module check first Between quota it is whether sufficient.For example, checking whether the NS1 quotas (referring to Fig. 3 A, NS1 quotas 302) recorded in main frame are more than 0. If the quota deficiency of the first NameSpace (NS1), the wait for the first NameSpace space is inserted by the NVMe orders of generation List (referring to Fig. 3 A or 3B, NS1 waiting list 312) (412)., can be from when detecting NameSpace NS1 quota abundance NVMe orders are taken out in NS1 waiting lists (312), and inserts and submits queue (SQ).In step 410, if the first NameSpace (NS1) quota restructuring, the NVMe orders of generation are inserted and submit queue (SQ) (414).In one example, ordered in the NVMe Mark is set in order, to indicate to carry quota in the NVMe orders.Usually, the default value of the quota carried in NVMe orders For 1.The default value of quota can be other values.The other values of quota can be also carried in NVM command.In another example, Access and specify the NVMe order acquiescences of NameSpace to carry quota, without being indicated by extra mark.In step 416, The NS1 quotas (Fig. 3 A, NS1 quota 302) recorded in renewal main frame.For example, reduce the value of NS1 quotas 302, the amplitude phase of reduction When in the quota value carried in NVMe orders.
Submit queue (SQ), equipment obtains from submission queue in response to NVMe orders being inserted in step 401 main frame NVMe orders (420).Equipment identifies and retained the quota (422) carried in NVMe orders.In one example, in NVMe orders In when providing quota mark, equipment retains the default value of quota from the NVMe orders.In another example, ordered in NVMe The value of quota is provided in order, equipment is trapped in the quota value provided in the NVMe orders from the NVMe orders.It is another still In one example, the NameSpace specified according to NVMe command access, access NameSpace NVMe orders acquiescence and carry quota, The then default value of equipment retention quota.The quota value retained in a device by each NameSpace record.Match somebody with somebody in response to retention Volume value, the quota value retained is increased to the quota value retained recorded in equipment by corresponding NameSpace.In step 424, equipment (controller) is handled NVMe orders.The execution sequence of step 422 and step 424 is not limited, and this two Individual step can parallel be performed or performed with random order.
Fig. 4 B are the flow charts of processing instruction NVMe order completion messages according to embodiments of the present invention.Equipment is directed in step The NVMe orders that processing is completed in rapid 424 (referring to Fig. 4 A) generate message, for NVMe command process corresponding to being indicated to main frame Complete.In one example, equipment processing completes the NVMe orders for accessing the first NameSpace (such as NS1), for this NVMe orders generate message.In step 450, what the controller inspection of equipment recorded in a device is used for the first NameSpace (NS1) whether service quality (QoS) grade is less than threshold value.If the service quality rating for the first NameSpace (NS1) is low In threshold value, controller sets quota in generated message, passes through the message with instruction, is returned to main frame empty for the first name Between (NS1) quota (452).In one example, quota mark is set in the message, to indicate to the first NameSpace (NS1) quota of default value is returned.In another example, Configuration Values are set in the message, to indicate to the first NameSpace (NS1) set quota value is returned.Controller carrys out corresponding reduce in a device as the first life always according to the quota value returned The quota (454) that the name space (NS1) is retained.The execution sequence of step 452 and step 454 is not limited, and the two steps can Performed with parallel execution or with random order.In step 450, if the service quality rating for the first NameSpace (NS1) is not Less than threshold value, the access current limliting for the limitation of instruction main frame to the first NameSpace (NS1), controller is set in the message generated Invalid quota (456) is put, to indicate not return quota to main frame within the message.In one example, nothing is set in the message The quota mark of effect, to indicate not carry quota in the message.In another example, arranges value is 0 quota in the message, To indicate not carry quota in the message.
Main frame obtains message (460) from completion queue.Main frame (for example, NameSpace current limliting module) checks acquired Type of message.If message is the completion message (462) of the corresponding NVMe orders having been filed on, also checks for whether carrying in message and match somebody with somebody Volume (463).If carrying quota in message, the NameSpace corresponding to acquisition message (visited by the NVMe orders corresponding to message The NameSpace asked), and the quota value carried in message is returned into corresponding NameSpace (464).For example, corresponding to message NameSpace is NS3, and the quota value that message carries is 1, then the NS3 quotas that are incrementally recorded in main frame (referring to Fig. 3 B, 306).If Quota or entrained quota value are not carried in step 463 judges message as 0, then without changing matching somebody with somebody for corresponding NameSpace Volume.
If it is null message (message does not correspond to any effective NVMe orders) (462,464) to judge message, obtain empty The quota value entrained by NameSpace and message corresponding to message, and quota value is returned into corresponding NameSpace (466).As an example, field is included in null message, for indicating the NameSpace corresponding to null message.
In response to quota is returned into NameSpace (for example, NS3), the NS3 quotas recorded in main frame (ginseng in step 464 See Fig. 3 B, 306) value goes above 0, and so as to temporarily be cancelled to NameSpace NS3 current limliting, NameSpace current limliting module will The NVMe orders for accessing NameSpace S3 are filled into submission queue (SQ).Referring back to Fig. 4 A, in step 410, check and find the The quota of one NameSpace (for example, NS3) is sufficient, and queue (414) is submitted so as to which NVMe orders be inserted.NVMe orders are used by oneself In NameSpace NS3 waiting lists (Fig. 3 A or 3B NS3 waiting lists 316), or from the application for accessing NameSpace NS3 Program (Fig. 3 A application 1, using 2 or using 3), or (Fig. 3 B waiting list 322, waiting list 324 wait waiting list Treat queue 326).
One of ordinary skill in the art will realize except the information for being applied to exchange data according to NVMe agreements, according to this hair Bright embodiment applies also for other based on the field for submitting queue to have the equipment of multiple NameSpaces with completing queue accesses Close.
The embodiment of the present invention also provides a kind of program for including program code, when being loaded into host CPU and performed in CPU When, described program code makes the method performed by main frame of the CPU execution above.
The embodiment of the present invention also provides a kind of program including program code, when being loaded into storage device and in storage device During upper execution, described program makes one of method performed above the computing device of the storage device by equipment.
It should be understood that the combination of the frame of each frame and block diagram and flow chart of block diagram and flow chart can respectively by including The various devices of computer program instructions are implemented.These computer program instructions can be loaded into all-purpose computer, special meter To produce machine on calculation machine or other programmable data control devices, so as in computer or other programmable data control devices The instruction of upper execution creates the device for realizing the function of being specified in one or more flow chart box.
These computer program instructions, which can also be stored in, can guide computer or other programmable data control devices Computer-readable memory in so as to working in a specific way, so as to using being stored in computer-readable memory Instruction manufacture including the product for realizing the computer-readable instruction of specified function in one or more flow chart box. Computer program instructions can also be loaded on computer or other programmable data control devices with cause computer or its A series of operation operation is performed on his programmable data control device, so as to produce computer implemented process, and then is being counted The instruction performed on calculation machine or other programmable data control devices is provided for realizing institute in one or more flow chart box Specify the operation of function.
Thus, the frame of block diagram and flow chart supports the combination of the device for performing specified function, for performing specified work( The combination of operation and the combination of the program instruction means for performing specified function of energy.It should also be understood that block diagram and flow chart The combination of frame of each frame and block diagram and flow chart can specify function or operation, hardware based special meter by performing Calculation machine system is realized, or is realized by the combination of specialized hardware and computer instruction.
Although the example of present invention reference is described, it is intended merely to the purpose explained rather than the limit to the present invention System, the change to embodiment, increase and/or deletion can be made without departing from the scope of the present invention.
It is involved by these embodiments, from the description above and in the field that benefits of the teaching that is presented in associated accompanying drawing Technical staff will be recognized that many modifications of the invention recorded here and other embodiment.It should therefore be understood that this hair It is bright to be not limited to disclosed embodiment, it is intended to include modification and other embodiment in the scope of the appended claims It is interior.Although employing specific term herein, them are used only on general significance and describing significance and not is The purpose of limitation and use.

Claims (10)

1. a kind of method for handling I/O command, including:
In response to the first I/O command is filled into submission queue, the quota for the first NameSpace is reduced, wherein described first Corresponding first NameSpace of I/O command;
In response to from the message that the second I/O command of acquisition instruction is completed in queue is completed, increasing matching somebody with somebody for the second NameSpace Volume, wherein second I/O command corresponds to the second NameSpace, and second I/O command carries the mark of instruction quota Note.
2. the method according to claim 11, in addition to:
If for the quota deficiency of the first NameSpace, the I/O command insertion first corresponding to the first NameSpace is waited into team Row, and it is not filled to submission queue.
3. according to the method described in one of claim 1-2, in addition to:
In response to from the message for completing queue acquisition instruction the 3rd I/O command completion, the quota for being used in second space is kept not Become, wherein the 3rd I/O command corresponds to the second NameSpace, and the 3rd I/O command does not carry the mark of instruction quota Note or the 3rd I/O command carry the mark that instruction quota is zero.
4. according to the method described in one of claim 1-3, in addition to:
In response to from queue acquisition null message is completed, increasing the quota for the second NameSpace, wherein the null message indicates Second NameSpace, and the null message do not indicate the completion of any I/O command.
5. according to the method described in one of claim 1-4, in addition to:
If the quota for first NameSpace is sufficient, the 4th I/O command is taken out from the first waiting list;
4th I/O command is filled into submission queue, and reduces the quota for the first NameSpace.
6. a kind of method for handling I/O command, including:
The first I/O command is obtained, wherein the first I/O command is used for the first NameSpace;
For the indicated quota of the order of the first NameSpace accumulation first;
The first message that generation the second I/O command of instruction is completed, sets instruction matching somebody with somebody for the first NameSpace in first message The mark of volume, the quota that the first NameSpace is accumulated correspondingly is reduced to, the second message is filled into and completes queue.
7. the method according to claim 11, in addition to:
Null message is generated, and the mark of instruction quota is set in the null message, the null message is filled into and completes queue, Correspondingly it is reduced to the quota that the first NameSpace is accumulated;Wherein described null message is used for the first NameSpace, and described Null message does not indicate the completion of any I/O command.
8. according to the method described in one of claim 5-7, in addition to:
If being not less than first threshold corresponding to the QoS level of the first NameSpace, generation indicates second that the 3rd I/O command is completed Message, the mark of instruction quota is set in the second message, and the mark instruction quota of the instruction quota is zero.
9. according to the method described in one of claim 5-8, in addition to:
The 3rd message that generation the 4th I/O command of instruction is completed, sets the mark of instruction quota in the 3rd message, indicated Quota is more than the indicated quota of the described first order, and is correspondingly reduced to the quota that the first NameSpace is accumulated.
10. a kind of device for handling I/O command, including:
Quota application module, in response to the first I/O command is filled into submission queue, reducing for the first NameSpace Quota, wherein corresponding first NameSpace of first I/O command;
Quota release module, in response to from the message that the second I/O command of acquisition instruction is completed in queue is completed, increasing and being used for The quota of second NameSpace, wherein second I/O command corresponds to the second NameSpace, and second I/O command is taken Mark with instruction quota.
CN201610514453.5A 2016-05-05 2016-06-30 Method and device for realizing QoS Active CN107346265B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2016102928574 2016-05-05
CN201610292857 2016-05-05

Publications (2)

Publication Number Publication Date
CN107346265A true CN107346265A (en) 2017-11-14
CN107346265B CN107346265B (en) 2021-05-18

Family

ID=60253270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610514453.5A Active CN107346265B (en) 2016-05-05 2016-06-30 Method and device for realizing QoS

Country Status (1)

Country Link
CN (1) CN107346265B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108848037A (en) * 2018-05-31 2018-11-20 平安医疗科技有限公司 Service request processing method, device, computer equipment and storage medium
CN109388596A (en) * 2018-09-29 2019-02-26 上海依图网络科技有限公司 A kind of data manipulation method and device
CN111176553A (en) * 2018-11-13 2020-05-19 西部数据技术公司 Bandwidth limiting in solid state drives
CN111381941A (en) * 2018-12-27 2020-07-07 北京忆恒创源科技有限公司 Method and device for providing QoS in concurrent task processing system
US10866740B2 (en) 2018-10-01 2020-12-15 Western Digital Technologies, Inc. System and method for performance-based multiple namespace resource allocation in a memory

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184446A1 (en) * 2001-04-11 2002-12-05 Michael Kagan Queue pair context cache
CN102263701A (en) * 2011-08-19 2011-11-30 中兴通讯股份有限公司 Queue regulation method and device
CN102567089A (en) * 2011-10-25 2012-07-11 曙光信息产业(北京)有限公司 Design method for thread pool of metadata server in distributed file system
US20140331001A1 (en) * 2013-05-02 2014-11-06 Lsi Corporation Command Barrier for a Solid State Drive Controller
CN104246742A (en) * 2012-01-17 2014-12-24 英特尔公司 Techniques for command validation for access to a storage device by a remote client
CN104301430A (en) * 2014-10-29 2015-01-21 北京麓柏科技有限公司 Software definition storage system and method and centralized control equipment of software definition storage system
CN104407820A (en) * 2014-12-12 2015-03-11 华为技术有限公司 Solid state disk storage system based data processing method, device and system
US20150186074A1 (en) * 2013-12-30 2015-07-02 Sandisk Technologies Inc. Storage Module and Method for Configuring Command Attributes
CN105335235A (en) * 2015-11-24 2016-02-17 浪潮电子信息产业股份有限公司 IaaS mode based resource management system and method
CN105556930A (en) * 2013-06-26 2016-05-04 科内克斯实验室公司 NVM EXPRESS controller for remote memory access

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184446A1 (en) * 2001-04-11 2002-12-05 Michael Kagan Queue pair context cache
CN102263701A (en) * 2011-08-19 2011-11-30 中兴通讯股份有限公司 Queue regulation method and device
CN102567089A (en) * 2011-10-25 2012-07-11 曙光信息产业(北京)有限公司 Design method for thread pool of metadata server in distributed file system
CN104246742A (en) * 2012-01-17 2014-12-24 英特尔公司 Techniques for command validation for access to a storage device by a remote client
US20140331001A1 (en) * 2013-05-02 2014-11-06 Lsi Corporation Command Barrier for a Solid State Drive Controller
CN105556930A (en) * 2013-06-26 2016-05-04 科内克斯实验室公司 NVM EXPRESS controller for remote memory access
US20150186074A1 (en) * 2013-12-30 2015-07-02 Sandisk Technologies Inc. Storage Module and Method for Configuring Command Attributes
CN104301430A (en) * 2014-10-29 2015-01-21 北京麓柏科技有限公司 Software definition storage system and method and centralized control equipment of software definition storage system
CN104407820A (en) * 2014-12-12 2015-03-11 华为技术有限公司 Solid state disk storage system based data processing method, device and system
CN105335235A (en) * 2015-11-24 2016-02-17 浪潮电子信息产业股份有限公司 IaaS mode based resource management system and method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108848037A (en) * 2018-05-31 2018-11-20 平安医疗科技有限公司 Service request processing method, device, computer equipment and storage medium
CN109388596A (en) * 2018-09-29 2019-02-26 上海依图网络科技有限公司 A kind of data manipulation method and device
CN109388596B (en) * 2018-09-29 2019-12-31 上海依图网络科技有限公司 Data operation method and device
US10866740B2 (en) 2018-10-01 2020-12-15 Western Digital Technologies, Inc. System and method for performance-based multiple namespace resource allocation in a memory
CN111176553A (en) * 2018-11-13 2020-05-19 西部数据技术公司 Bandwidth limiting in solid state drives
CN111176553B (en) * 2018-11-13 2023-06-27 西部数据技术公司 Bandwidth limitation in solid state drives
CN111381941A (en) * 2018-12-27 2020-07-07 北京忆恒创源科技有限公司 Method and device for providing QoS in concurrent task processing system

Also Published As

Publication number Publication date
CN107346265B (en) 2021-05-18

Similar Documents

Publication Publication Date Title
CN107346265A (en) Realize QoS method and apparatus
CN108153757A (en) A kind of method and apparatus of Hash table management
CN103282889A (en) Endpoint caching for data storage systems
CN105975433B (en) A kind of message processing method and device
CN106325976B (en) A kind of rendering task scheduling processing method and server
CN103562872B (en) The resource allocation of multiple resources of Dual Action system
CN106484311A (en) A kind of data processing method and device
CN109408590B (en) Method, device and equipment for expanding distributed database and storage medium
US8966217B2 (en) Lightweight random memory allocation
CN107451853A (en) Method, apparatus, system and the storage medium that a kind of red packet distributes in real time
DE102019112772A1 (en) TECHNOLOGIES FOR A SERVICE QUALITY-CONSCIOUS END-TO-END I / O PLANNING
CN106981024A (en) A kind of trading limit calculates processing system and its processing method
CN108205469A (en) A kind of resource allocation methods and server based on MapReduce
CN106569874B (en) Store the operating method and physical server of equipment
CN107341081A (en) Test system and method
CN107949837A (en) Register file for I/O data packet compressings
CN109558250A (en) A kind of communication means based on FPGA, equipment, host and isomery acceleration system
DE112017001800T5 (en) TECHNOLOGIES FOR DYNAMIC WORKING QUALITY MANAGEMENT
CN111324615A (en) Data processing method, device, medium and electronic equipment
CN103218322B (en) On-chip system, electronic system and the method for operating it
DE102020130534A1 (en) System, apparatus and method for persistent handling of memory requirements in a system
CN105320676A (en) Customer data query service method and device
CN104571957B (en) A kind of method for reading data and assembling device
CN103294609B (en) Signal conditioning package and storage management method
US10678192B1 (en) Optimization of production systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Patentee after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Patentee before: MEMBLAZE TECHNOLOGY (BEIJING) Co.,Ltd.

CP01 Change in the name or title of a patent holder