×

Multi-lock caches

  • US 9,229,869 B1
  • Filed: 12/19/2012
  • Issued: 01/05/2016
  • Est. Priority Date: 12/19/2012
  • Status: Active Grant
First Claim
Patent Images

1. A system for updating cached data, the system comprising:

  • computer memory for storing a caching structure, the caching structure including multiple locks and a plurality of entries, each entry stored in one or more storage blocks;

    a first processor configured to;

    obtain a first group lock and a first entry lock, the first group lock controlling access to at least a first entry and a second entry, the first entry lock controlling access to the first entry, wherein the first group lock and the first entry lock are obtained as shared locks;

    identify first storage nodes associated with the first entry using first associative array value that associates the first storage nodes with the first entry;

    subsequent to identifying the first storage nodes, release the first group lock while retaining the first entry lock for the first entry;

    convert the first entry lock into an exclusive lock;

    disassociate the first storage nodes from the first entry by deleting the first associative array value;

    update the first storage nodes; and

    subsequent to updating the first storage nodes, release the first entry lock; and

    a second processor configured to;

    obtain the first group lock and a second entry lock, the first group lock controlling access to at least the first entry and the second entry after the first processor obtains the first group lock and prior to the first processor releasing the first group lock, the second entry lock controlling access to the second entry, wherein the first group lock and the second entry lock are obtained as shared locks;

    identify second storage nodes associated with the second entry using a second associative array value that associates the second storage nodes with the second entry;

    subsequent to identifying the second storage nodes, release the first group lock while retaining the second entry lock for the second entry;

    convert the second entry lock into an exclusive lock;

    disassociate the second storage nodes from the second entry by deleting the second associative array value;

    update the second storage nodes; and

    subsequent to updating the second storage nodes, release the second entry lock;

    wherein the first processor updates the first storage nodes at least partially concurrently with the second processor updating the second storage nodes.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×