Deferred re-MRU operations to reduce lock contention

US9733991B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9733991-B2
Application numberUS-201213616980-A
CountryUS
Kind codeB2
Filing dateSep 14, 2012
Priority dateSep 14, 2012
Publication dateAug 15, 2017
Grant dateAug 15, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Data operations, requiring a lock, are batched into a set of operations to be performed on a per-core basis. A global lock for the set of operations is periodically acquired, the set of operations is performed, and the global lock is freed so as to avoid excessive duty cycling of lock and unlock operations in the computing storage environment.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for data management in a multi-core computing storage environment by a processor device, comprising: batching data operations, requiring a lock, into a set of operations to be performed on a per-core basis; establishing a Least Recently Used (LRU) data list; batching identification information of a portion of LRU data pursuant to a data hit, to be placed at a Most Recently Used (MRU) end of the LRU data list, as to determine whether data associated with the LRU data list should be demoted within the storage environment; performing a demotion scan using a demote-ready list, the demote-ready list indicating data to be demoted within the storage environment due to no active data users; periodically acquiring a global lock for the set of operations, performing the set of operations, and freeing the global lock so as to avoid excessive duty cycling of lock and unlock operations in the computing storage environment; pursuant to batching the data operations, configuring at least one per-core array with each of a predetermined number of control blocks, and a flag associated with each of the predetermined number of control blocks; and pursuant to batching the data operations, determining, in a first foreground process, if a batched array of the at least one per-core array is full, wherein: if the batched array is full, an active list lock is acquired and the predetermined number of control blocks on the batched array are arranged on an MRU basis, and if the batched array is not full, another one of the predetermined number of control blocks is added to the batched array, and a flag corresponding to the another one of the predetermined number of control blocks is set to indicate the another one of the predetermined number of control blocks is on the batched array; and in a background process, flushing the at least one per-core array, including the batched array; wherein the background process increments a 2 bit counter of the at least one per-core array once every predetermined time interval while a second foreground process zeros the 2 bit counter each time the at least one per-core array, including the batched array, is flushed. 2. The method of claim 1 , further including performing the acquiring the global lock for the set of batched data operations based on a predetermined criteria. 3. The method of claim 1 , further including, if another flag corresponding to yet another one of the predetermined number of control blocks is set, scanning the at least one per-core array and removing the another one of the predetermined number of control blocks from the at least one per-core array, including at least the batched array. 4. A system for data management in a multi-core computing storage environment, comprising: a processor device, operable in the multi-core computing storage environment, wherein the processor device: batches data operations, requiring a lock, into a set of operations to be performed on a per-core basis; establishes a Least Recently Used (LRU) data list; batches identification information of a portion of LRU data pursuant to a data hit, to be placed at a Most Recently Used (MRU) end of the LRU data list, as to determine whether data associated with the LRU data list should be demoted within the storage environment; performs a demotion scan using a demote-ready list, the demote-ready list indicating data to be demoted within the storage environment due to no active data users; periodically acquires a global lock for the set of operations, performs performing the set of operations, and freeing the global lock so as to avoid excessive duty cycling of lock and unlock operations in the computing storage environment; pursuant to batching the data operations, configures at least one per-core array with each of a predetermined number of control blocks, and a flag associated with each of the predetermined number of control blocks; and pursuant to batching the data operations, determines, in a first foreground process, if a batched array of the at least one per-core array is full, wherein: if the batched array is full, an active list lock is acquired and the predetermined number of control blocks on the batched array are arranged on an MRU basis, and if the batched array is not full, another one of the predetermined number of control blocks is added to the batched array, and a flag corresponding to the another one of the predetermined number of control blocks is set to indicate the another one of the predetermined number of control blocks is on the batched array; and in a background process, flushing the at least one per-core array, including the batched array; wherein the background process increments a 2 bit counter of the at least one per-core array once every predetermined time interval while a second foreground process zeros the 2 bit counter each time the at least one per-core array, including the batched array, is flushed. 5. The system of claim 4 , wherein the processor device performs the acquiring the global lock for the set of batched data operations based on a predetermined criteria. 6. The system of claim 4 , wherein the processor device, if another flag corresponding to yet another one of the predetermined number of control blocks is set, scans the at least one per-core array and removes the another one of the predetermined number of control blocks from the at least one per-core array, including at least the batched array. 7. The system of claim 4 , wherein the control blocks include Cache Directory Control Blocks (CDCBs). 8. The system of claim 4 , wherein the data operations to be batched include read hit workload in a cache of the computing storage environment. 9. A computer program product for data management in a multi-core computing storage environment, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising: a first executable portion that batches data operations, requiring a lock, into a set of operations to be performed on a per-core basis; establishes a Least Recently Used (LRU) data list; batches identification information of a portion of LRU data pursuant to a data hit, to be placed at a Most Recently Used (MRU) end of the LRU data list, as to determine whether data associated with the LRU data list should be demoted within the storage environment; performs a demotion scan using a demote-ready list, the demote-ready list indicating data to be demoted within the storage environment due to no active data users; a second executable portion that periodically acquires a global lock for the set of operations, performs the set of operations, and frees the global lock so as to avoid excessive duty cycling of lock and unlock operations in the computing storage environment; a third executable portion that configures, pursuant to batching the data operations, at least one per-core array with each of a predetermined number of control blocks, and a flag associated with each of the predetermined number of control blocks; and a fourth executable portion that, pursuant to batching the data operations, determines, in a first foreground process, if a batched array of the at least one per-core array is full, wherein: if the batched array is full, an active list lock is acquired and the predetermined number of control blocks on the batched array are arranged on an MRU basis, and if the batched array is not full, another one of the predetermined number of control blocks is added to the batched array, and a flag corresponding to the another one of the predetermined number of control blocks is set to indicate the another one

Assignees

Inventors

Classifications

  • with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F9/526Primary

    Mutual exclusion algorithms · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9733991B2 cover?
Data operations, requiring a lock, are batched into a set of operations to be performed on a per-core basis. A global lock for the set of operations is periodically acquired, the set of operations is performed, and the global lock is freed so as to avoid excessive duty cycling of lock and unlock operations in the computing storage environment.
Who is the assignee on this patent?
Ash Kevin John, Benhase Michael Thomas, Gupta Lokesh Mohan, and 3 more
What technology area does this patent fall under?
Primary CPC classification G06F9/526. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 15 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).