Disk cache management method of disk array device
AssigneeNEC Corporation
InventorAtsushi Kuwata
Life of this patent
Estimating the term…
Abstract
A local memory mounted on a host director is provided with a local cache management region for managing a cache page at a steady open state in a cache management region on a shared memory, so that even after data transfer is completed after the use of a cache page on the shared memory subjected to opening processing is finished, the cache page in question is kept open at the steady open state without closing the cache page in question and when an access to the cache page in question is made from the same host director, processing of opening the cache page in question is omitted to improve response performance.
Claims21
A disk cache management method of a disk array device mounted with a plurality of host directors and a shared memory shared by the host directors and serving as a disk cache, wherein
- each host director is mounted with a local memory, each local memory having a local cache management region for managing a cache page at a steady open state on said shared memory, wherein the method comprises:
- subjecting a cache page on said shared memory to opening processing and finishing using the cache page,
- releasing a state of in-use of the cache page in question only on said local cache management region, and
- on said shared memory, bringing the cache page in question to a steady open state where the cache page remains open without being subjected to closing processing.
A disk cache management method of a disk array device mounted with a plurality of host directors and a shared memory shared by the host directors and having a cache page region and a cache management region, wherein
- each host director is mounted with a local memory, each local memory having a local cache management region for managing a cache page at a steady open state on said shared memory, wherein the method comprises:
- a cache page opening step of, at the reception of a read/write command from a host, when a cache page in question is not in use, setting the cache page in question to be in use in a shared management information entry on said cache management region, as well as assigning a local management information entry on said local cache management region to set the cache page in question to be in use in the local management information entry in question, when the cache page in question is being used by other host director, accumulating its own host director identifier in a queue of the shared management information entry in question and after transmitting a request for closing the cache page in question to other host director, setting the cache page in question to be in use in the shared management information entry in question, as well as assigning the local management information entry in question to set the cache page in question to be in use in the local management information entry in question, and when the cache page in question is being used by its own host director, setting the cache page in question to be in use in the local management information entry in question while omitting the processing of setting the cache page in question to be in use in the shared management information entry in question,
- a cache page closing step of, after finishing using the cache page in question, checking contention for the use of the cache page in question with reference to the queue of the shared management information entry in question, and when there is contention, releasing a state of in-use of the cache page in question in the shared management information entry in question, as well as releasing assignment of the local management information entry in question and when there is no contention, without releasing the in-use state of the cache page in question in the shared management information entry in question, releasing the in-use state of the cache page in question in the local management information entry in question to bring the cache page in question to a steady open state where the cache page in question remains open, and
- a closing request reception step of, at the reception of a request for closing the cache page in question from other host director, when the cache page in question is not in use, releasing the in-use state of the cache page in question in the shared management information entry in question, as well as releasing the assignment of the local management information entry in question.
A disk cache management method of a disk array device comprising a physical disk array, at least one disk director, a plurality of host directors and a shared memory shared by the disk director and the host directors, with a cache management region on said shared memory provided to have a shared management information entry one-to-one-corresponding to a cache page cached in a cache page region on said shared memory, a shared search table for searching all the shared management information entries for a shared management information entry assigned to a cache page by using an address, a shared assignment link MRU pointer and a shared assignment link LRU pointer as start points of a shared assignment link bidirectionally linking a shared management information entry which is assigned to a cache page but not in use among all the shared management information entries, and a shared non-assignment link MRU pointer and a shared non-assignment link LRU pointer as start points of a shared non-assignment link bidirectionally linking a shared management information entry which is yet to be assigned to a cache page among all the shared management information entries, wherein
- each host director is mounted with a local memory, a local cache management region on each local memory comprising:
- a local management information entry one-to-one-corresponding to a cache page cached in the cache page region on said shared memory,
- a local search table for forming a link so as to make a local management information entry assigned to a cache page be searchable by an address among all the local management information entries,
- a local assignment link MRU pointer and a local assignment link LRU pointer as start points for forming a local assignment link bidirectionally linking a local management information entry which is assigned to a cache page but not in use among all the local management information entries, and
- a local non-assignment link MRU pointer and a local non-assignment link LRU pointer as start points for forming a local non-assignment link bidirectionally linking a local management information entry which is yet to be assigned to a cache page among all the local management information entries, and
- cache page opening processing comprises:
- a) when receiving a read/write command from a host, searching the shared search table for a shared management information entry being assigned to a cache page in question corresponding to an address in question,
- b) when no shared management information entry is assigned, assigning a shared management information entry to the cache page in question, setting the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- c) when a shared management information entry is assigned, checking whether the cache page in question is in use in the shared management information entry in question,
- d) when the cache page in question is not in use, setting the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- e) when the cache page in question is being used by other host director, conducting accumulation in a queue of the shared management information entry in question, requesting closing of the cache page in question from other host director, waiting for a state of in-use of the cache page in question to be released in the shared management information entry in question to set the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- f) when the cache page in question is being used by its own host director, checking contention for the use of the cache page in question with reference to the queue of the shared management information entry in question,
- g) when contention for the use of the cache page in question exists in the shared management information entry in question, conducting accumulation in the queue of the shared management information entry in question, waiting for the in-use state of the cache page in question to be released in the shared management information entry in question to set the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- h) when no contention for the use of the cache page in question exists in the shared management information entry in question, searching said local search table for the local management information entry in question and checking contention for the use of cache page in question in the local management information entry in question,
- i) when contention for the use of the cache page in question exists in the local management information entry in question, conducting accumulation in a queue of the local management information entry in question and waiting for the in-use state of the cache page in question to be released in the local management information entry in question to set the cache page in question to be in use in the local management information entry in question, and
- j) when there exists no contention for the use of the cache page in question in the local management information entry in question, setting the cache page in question to be in use in the local management information entry in question without setting the cache page in question to be in use in the shared management information entry in question.
A disk array device comprising:
- a plurality of host directors;
- and
- a shared memory shared by the host directors and serving as a disk cache,
- wherein each host director comprises:
- a port connected to a host,
- a controller connected to said host through the port and to said shared memory through a bus, and
- a local memory connected to the controller and provided with a local cache management region for managing a cache page at a steady open state on said shared memory where the cache page remains open without being subjected to closing processing.
A disk array device comprising a physical disk array, at least one disk director, a plurality of host directors and a shared memory shared by the disk director and the host directors, with a cache management region on said shared memory provided to have a shared management information entry one-to-one-corresponding to a cache page cached in a cache page region on said shared memory, a shared search table for forming a link so as to make a shared management information entry assigned to a cache page be searchable by an address among all the shared management information entries, a shared assignment link MRU pointer and a shared assignment link LRU pointer as start points for forming a shared assignment link bidirectionally linking a shared management information entry which is assigned to a cache page but not in use among all the shared management information entries, and a shared non-assignment link MRU pointer and a shared non-assignment link LRU pointer as start points for forming a shared non-assignment link bidirectionally linking a shared management information entry which is yet to be assigned to a cache page among all the shared management information entries, wherein
- each host director is mounted with a local memory, a local cache management region on said local memory having:
- a local management information entry one-to-one-corresponding to a cache page cached in the cache page region on said shared memory,
- a local search table for forming a link so as to make a local management information entry assigned to a cache page be searchable by an address among all the local management information entries,
- a local assignment link MRU pointer and a local assignment link LRU pointer as start points for forming a local assignment link bidirectionally linking a local management information entry which is assigned to a cache page but not in use among all the local management information entries, and
- a local non-assignment link MRU pointer and a local non-assignment link LRU pointer as start points for forming a local non-assignment link bidirectionally linking a local management information entry which is yet to be assigned to a cache page among all the local management information entries.
A program for conducting disk cache management of a disk array device mounted with a plurality of host directors and a shared memory shared by the host directors and serving as a disk cache, which executes:
- a cache page opening function of:
- when receiving a read/write command from a host, when a cache page in question is not in use, setting the cache page in question to be in use in a shared management information entry on said cache management region, as well as assigning a local management information entry on said local cache management region to set the cache page in question to be in use in the local management information entry in question,
- when the cache page in question is being used by other host director, accumulating its own host director identifier in a queue of the shared management information entry in question and after transmitting a request for closing the cache page in question to other host director, setting the cache page in question to be in use in the shared management information entry in question, as well as assigning the local management information entry in question to set the cache page in question to be in use in the local management information entry in question, and
- when the cache page in question is being used by its own host director, setting the cache page in question to be in use in the local management information entry in question while omitting processing of setting the cache page in question in use in the shared management information entry in question,
- a cache page closing function of:
- after completing the use of the cache page in question, referring to the queue of the shared management information entry in question to check contention for the use of the cache page in question,
- when contention exits, releasing the in-use state of the cache page in question in the shared management information entry in question, as well as releasing the assignment of the local management information entry in question, and
- when no contention exists, without releasing the in-use state of the cache page in question in the shared management information entry in question, releasing the in-use state of the cache page in question in the local management information entry in question to bring the cache page in question to a steady open state where the cache page remains open, and
- a closing request reception function of, at the reception of a request for closing the cache page in question from other host director, when the cache page in question is not in use, releasing the in-use state of the cache page in question in the shared management information entry in question, as well as releasing the assignment of the local management information entry in question.
A program for conducting disk cache management of a disk array device mounted with a plurality of host directors and a shared memory shared by the host directors and serving as a disk cache, which executes:
- a cache page opening function including the steps of:
- when receiving a read/write command from a host, searching a shared search table for a shared management information entry being assigned to a cache page in question corresponding to an address in question,
- when no shared management information entry is assigned, assigning a shared management information entry to the cache page in question, setting the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- when a shared management information entry is assigned, checking whether the cache page in question is in use in the shared management information entry in question,
- when the cache page in question is not in use, setting the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question, and setting the cache page in question to be in use in the local management information entry in question,
- when the cache page in question is being used by other host director, conducting accumulation in a queue of the shared management information entry in question, requesting closing of the cache page in question from other host director, waiting for the in-use state of the cache page in question to be released in the shared management information entry in question to set the cache page in question to be in use in the shared management information entry in question, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- when the cache page in question is being used by its own host director, checking contention for use of the cache page in question with reference to the queue of the shared management information entry in question,
- when contention for use of the cache page in question exists in the shared management information entry in question, conducting accumulation in the queue of the shared management information entry in question, waiting for the in-use state of the cache page in question to be released in the shared management information entry to set the cache page in question to be in use in the shared management information entry, assigning a local management information entry to the cache page in question and setting the cache page in question to be in use in the local management information entry in question,
- when no contention for use of the cache page in question exists in the shared management information entry in question, searching said local search table for the local management information entry in question and checking contention for use of the cache page in question in the local management information entry in question,
- when contention for use of the cache page in question exists in the local management information entry in question, conducting accumulation in a queue of the local management information entry in question and waiting for the in-use state of the cache page in question to be released in the local management information entry in question to set the cache page in question to be in use in the local management information entry in question, and
- when no contention for use of the cache page in question exists in the local management information entry in question, setting the cache page in question to be in use in the local management information entry in question without setting the cache page in question to be in use in the shared management information entry in question,
- a cache page closing function including the steps of:
- when completing data transfer between a host and a cache page region in the processing of a read/write command from the host, checking contention for use of a cache page in question with reference to the queue of the shared management information entry in question,
- when contention exits, releasing the in-use state of the cache page in question in the shared management information entry in question and releasing the assignment of the local management information entry in question, and
- when no contention exists, searching said local search table for the local management information entry in question to release the in-use state of the cache page in question in the local management information entry in question, and
- a closing request reception function including the steps of:
- when receiving a request for closing a cache page from other host director, searching said local search table for a local management information entry in question,
- when the local management information entry in question is searched, checking the state of use of the cache page in question in the local management information entry in question, and
- when the cache page in question is not in use, releasing the in-use state of the cache page in question in the shared management information entry in question and releasing the assignment of the local management information entry in question.
Dependencies are inferred from the claim text.