# US 8,751,467 B2 · Method and apparatus for quickly accessing backing store metadata

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,467 B2
- Document ID: US8751467B2
- Status: Granted
- Kind: B2
- Application number: 11/624,524
- Filed: 2007-01-18
- Published: 2008-07-24
- Granted: 2014-06-10
- Earliest claimed: 2007-01-18
- Assignees: Dot Hill Systems Corporation
- Applicants: Kent Lee
- Inventors: Kent Lee
- Web page: https://patentgrep.com/patent/US8751467B2

## CPC

- G06F 12/126: with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F 11/1666: {where the redundant component is memory or memory area}
- G06F 11/2056: {by mirroring}
- G06F 11/2089: {Redundant storage control functionality}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 12/0866: for peripheral storage systems, e.g. disk cache
- G06F 2212/466: Metadata, control data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, device, and system are provided for accessing metadata in a data storage system. More specifically, a requesting application requests a cache application to allocate a cache page to retrieve metadata from a storage device. After metadata is written to the cache page, the cache page is locked by the requesting application. The cache page is maintained in a locked state by the requesting application. This allows the data stored within the cache page to be quickly accessed and updated by the requesting application without waiting for the cache page to be written back to the storage device after every update to the cache page occurs.

## Claims

### Claim 1

A computer-implemented method of accessing metadata from a storage device, comprising:
requesting metadata by a first application;
retrieving, by a cache application, the requested metadata from a storage device;
writing the metadata from the storage device to an allocated cache page;
assuming control, by the first application, of the cache page with the metadata written thereon;
locking, by the first application, the cache page, wherein locking comprises restricting the cache application from controlling the cache page and writing contents of the cache page to the storage device while allowing a second application to access metadata on the cache page; and
accessing, by the first application, the metadata from the locked cache page.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
updating, by the first application, the metadata;
writing, by the first application, the updated metadata to the locked cache page; and mirroring the locked cache page with the updated metadata to a remote system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising executing, by the first application, a second command during at least one of the writing and mirroring step, wherein the second command includes accessing the metadata from the locked cache page.

### Claim 4 (depends on 2)

The method of claim 2, wherein the remote system comprises a second controller and wherein the mirroring step comprises copying the updated metadata from a first controller associated with the first application to a portion of memory on the second controller.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
waiting for a shutdown event to occur;
in response to the shutdown event occurring, unlocking, by the first application, the cache page; and
writing, by the cache application, the metadata on the cache page back to the storage device.

### Claim 6 (depends on 5)

The method of claim 5, wherein the cache page is not unlocked and the metadata on the cache page is not written back to the storage device unless the shutdown event occurs.

### Claim 7 (depends on 1)

The method of claim 1, wherein the metadata comprises backing store metadata and wherein the second application is the cache application.

### Claim 8

A device for controlling a storage system, comprising:
memory comprising:
a cache memory comprising a cache page;
a cache application for controlling the cache memory; and
a first application, wherein the first application requests that the cache application allocate the cache page from the cache memory to store metadata, the first application comprising:
a locking function, wherein the locking function locks the cache page after the metadata has been written to the cache page, wherein the cache page is accessible by a second application while the cache page is locked by the locking function and wherein the cache page cannot be written back to a storage device by the cache application while the cache page is locked by the locking function; and
a metadata reader/writer adapted to access the metadata while the cache page is locked by the locking function; and
a processor subsystem, wherein the processor subsystem executes the cache application and first application.

### Claim 9 (depends on 8)

The device of claim 8, wherein the locking function maintains the cache page in a locked state until the occurrence of a shutdown event, wherein the second application is the cache application.

### Claim 10 (depends on 9)

The device of claim 9, wherein the shutdown event comprises an event that causes the power supplied to the cache memory to be interrupted.

### Claim 11 (depends on 9)

The device of claim 9, wherein the locking function unlocks the cache page upon detection of the shutdown event thereby allowing the cache application to write the metadata on the cache page back to the storage device.

### Claim 12 (depends on 8)

The device of claim 8, wherein the metadata reader/writer changes the metadata and commits the changes to the cache page as a part of accessing the metadata.

### Claim 13 (depends on 12)

The device of claim 12, wherein the metadata reader/writer executes a second command requiring access to the metadata while the changes to the cache page are being committed.

### Claim 14 (depends on 12)

The device of claim 12, wherein the metadata reader/writer mirrors the changes to the cache page to a remote system in the course of committing the changes to the cache page.

### Claim 15 (depends on 8)

The device of claim 8, wherein the cache page is maintained in a locked state on at least one of a battery backed volatile memory and capacitor backed volatile memory.

### Claim 16

An electronic data system, comprising:
memory including:
first means for controlling comprising:
means for reading metadata from a storage device, wherein the metadata comprises pointers to snapshot data stored on the storage device;
means for storing the metadata on a cache page;
means for locking the cache page such that the means for storing the metadata on the cache page is restricted from writing contents of the cache page back to the storage device while the cache page is locked but is allowed to access contents of the cache page while the cache page is locked;
means for accessing the locked cache page; and
means for updating the metadata in the locked cache page, wherein the means for accessing commits changes to the locked cache page and mirrors changes to a second controlling means while simultaneously accessing the locked cache page; and
a processor subsystem adapted for executing the contents of the memory.

### Claim 17 (depends on 16)

The system of claim 16, wherein the metadata is read from the storage device in a first state and changed to a second state by the means for updating, wherein the first state and the second state are different.

### Claim 18 (depends on 17)

The system of claim 17, wherein the metadata in the second state is accessed by the means for accessing prior to being written back to the storage device.

### Claim 19 (depends on 17)

The system of claim 17, wherein the metadata is further updated to a third state by the means for updating prior to being written back to the storage device.
