Browse Prior Art Database

A fast mechanism to service waiters for NVS space Disclosure Number: IPCOM000192762D
Original Publication Date: 2010-Feb-01
Included in the Prior Art Database: 2010-Feb-01
Document File: 2 page(s) / 33K

Publishing Venue



Disclosed is an invention that introduces a fast mechanism to search and service waiters for NVS space. A storage controller has limited NVS. When the storage controller is out of NVS space or segments, host writes need to queue for segments. So that a rank or raid array does not consume all the space in NVS, a rank can only take a certain portion of the NVS. Queued host writes for NVS space are processed as NVS space is released. In general, as NVS space is released the waiters are processed in the order they are queued. However, if a rank or its group is at its limit of NVS space then waiters of those ranks get segments only when that rank releases NVS segments. So when a rank releases NVS segments, it needs to find an appropriate waiter in the queue. One known solution is to have one single wait queue for all ranks and scan the queue for the first appropriate waiter. Since the wait queue could be quite large finding an appropriate waiter could take really long in a busy box. This invention overcomes the obstacles of long searches by maintaining multiple wait queues.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 77% of the total text.

Page 1 of 2

A fast mechanism to service waiters for NVS space

Rank/Group/FLC Thresholding

A rank is limited to a certain portion of space in NVS. For example, a rank may take up to 25% of NVS. A rank may belong to several groups. A group is also limited to certain portion of space in NVS. There's also a thresholding in NVS for ranks with Flash Copy Source tracks.

Rank Wait Queues

Each rank has two TCB wait queues (one for FLC Source segments, one for non-FLC Source segments). We need two queues because the rank and group maybe under threshold but the FLC Source threshold may be over threshold. If this is the case, we would want to bypass all the FLC Source waiters for that rank and continue to the non-FLC Source waiters. The first TCB of each list is represented in a node in the sorted list.

Dequeue Service Control Block

The dequeue service control block maintains a sorted list of waiting TCBs ordered by arrival time oldest to newest.

Generation Number

A timestamp can wrap and maintaining a sorted list based on timestamp can be difficult. So a generation number is used which handles the wrapping is used to sort the NVS list.

Rank TCB Wait Queues


Dequeueing algorithm works as follows

Obtain lock for dequeuing


Sorted List


Page 2 of 2


Search the wait queue in order (from oldest to newest). Find the oldest available waiter that can be

dequeued. This will be done by searching the sorted list and quickly checking the thres...