# US 2017/0286309 A1 · Write cache system and method

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

- Number: US 2017/0286309 A1
- Document ID: US20170286309A1
- Status: Published application
- Kind: A1
- Application number: 15/398,979
- Filed: 2017-01-05
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Mikhail Danilov; Andrey Fomin; Alexander Rakulenko; Mikhail Malygin; Chen Wang
- Web page: https://patentgrep.com/patent/US20170286309A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/06: Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 2212/222: Non-volatile memory
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F 2212/7207: management of metadata or control data
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, computer program product, and computer system for receiving, at a first computing device, a first data chunk sent from a second computing device. It may be determined that the first data chunk includes a first type of data. The first data chunk may be stored to a cache operatively coupled to the first computing device based upon, at least in part, determining that the first data chunk includes the first type of data, wherein the cache may include a first storage device type. An acknowledgement of a successful write of the first data chunk to the second computing device may be sent based upon, at least in part, a successful storing of the first data chunk to the cache operatively coupled to the first computing device.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving a first data chunk sent from a second computing device;
determining that the first data chunk includes a first type of data;
storing the first data chunk in a cache based upon, at least in part, determining that the first data chunk includes the first type of data, wherein the cache includes a first storage device type; and
sending an acknowledgement of a successful write of the first data chunk based upon, at least in part, a successful storing of the first data chunk in the cache.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising copying the first data chunk from the cache to a second storage device type.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1 wherein the first type of data includes at least one of user data and a journal entry.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2 further comprising:
receiving a second data chunk;
determining that the second data chunk includes a second type of data;
storing the second data chunk in the second storage device type based upon, at least in part, determining that the second data chunk includes the second type of data, wherein the second data chunk bypasses the cache; and
sending an acknowledgement of a successful write of the second data chunk based upon, at least in part, a complete storing of the second data chunk in the second storage device.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 further comprising determining a capacity used by the cache.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5 further comprising starting a cleaning of the cache based upon, at least in part, determining that the capacity used by the cache is above a first threshold.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6 further comprising halting the cleaning of the cache based upon, at least in part, determining that the capacity used by the cache is below a second threshold.

### Claim 8

A computer program product residing on a computer readable storage medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
receiving, a first data chunk;
determining that the first data chunk includes a first type of data;
storing the first data chunk in a cache based upon, at least in part, determining that the first data chunk includes the first type of data, wherein the cache includes a first storage device type; and
sending an acknowledgement of a successful write of the first data chunk based upon, at least in part, a successful storing of the first data chunk to the cache

### Claim 9 (depends on 8)

The computer program product of claim 8 further comprising copying the first data chunk from the cache to a second storage device.

### Claim 10 (depends on 8)

The computer program product of claim 8 wherein the first type of data includes at least one of user data and a journal entry.

### Claim 11 (depends on 9)

The computer program product of claim 9 further comprising:
receiving a second data chunk;
determining that the second data chunk includes a second type of data;
storing the second data chunk to the second storage based upon, at least in part, determining that the second data chunk includes the second type of data, wherein the second data chunk bypasses the cache; and
sending an acknowledgement of a successful write of the second data based upon, at least in part, a complete storing of the second data chunk to the second storage device type.

### Claim 12 (depends on 8)

The computer program product of claim 8 further comprising determining a capacity used by the cache.

### Claim 13 (depends on 12)

The computer program product of claim 12 further comprising starting a cleaning of the cache based upon, at least in part, determining that the capacity used by the cache is above a first threshold.

### Claim 14 (depends on 13)

The computer program product of claim 13 further comprising halting the cleaning of the cache based upon, at least in part, determining that the capacity used by the cache is below a second threshold.

### Claim 15

A computing system including a processor and a memory configured to perform operations comprising:
receiving, at a first computing device, a first data chunk sent from a second computing device;
determining that the first data chunk includes a first type of data;
storing the first data chunk to a cache operatively coupled to the first computing device based upon, at least in part, determining that the first data chunk includes the first type of data, wherein the cache includes a first storage device type; and
sending an acknowledgement of a successful write of the first data chunk to the second computing device based upon, at least in part, a successful storing of the first data chunk to the cache operatively coupled to the first computing device.

### Claim 16 (depends on 15)

The computing system of claim 15 further comprising copying the first data chunk from the cache to a second storage device type operatively coupled to the first computing device.

### Claim 17 (depends on 15)

The computing system of claim 15 wherein the first type of data includes at least one of user data and a journal entry.

### Claim 18 (depends on 16)

The computing system of claim 16 further comprising:
receiving, at the first computing device, a second data chunk sent from the second computing device;
determining that the second data chunk includes a second type of data;
storing the second data chunk to the second storage device type operatively coupled to the first computing device based upon, at least in part, determining that the second data chunk includes the second type of data, wherein the second data chunk bypasses the cache; and
sending an acknowledgement of a successful write of the second data chunk to the second computing device based upon, at least in part, a complete storing of the second data chunk to the second storage device type operatively coupled to the first computing device.

### Claim 19 (depends on 15)

The computing system of claim 15 further comprising determining a capacity used by the cache.

### Claim 20 (depends on 19)

The computing system of claim 19 further comprising starting a cleaning of the cache based upon, at least in part, determining that the capacity used by the cache is above a first threshold.
