IP Library Granted Patent US 11,733,871
Granted Patent B2
US 11,733,871 · App. 16/662,899 · Granted Aug 22, 2023

Tier-optimized write scheme

Inventors: Mohit Aron (Saratoga, CA); Ganesha Shanmuganathan (San Jose, CA)
Assignee: Cohesity, Inc.
G06F3/0611G06F3/0643G06F3/0656G06F3/0685G06F12/0238G06F3/0673G06F12/08G06F2212/1016G06F2212/217
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,733,871
App. No.
16/662,899
Granted
Aug 22, 2023
Kind
B2
Abstract

A request to write data corresponding to at least a first portion of a file is received. It is determined whether to perform the request either as an in-place write or as an out-of-place write. Performing the in-place write comprises performing a write to a low latency storage device, and performing the out-of-place write comprises performing a write to a higher latency storage device. The request is performed as either the in-place write or the out-of-place write based on the determination. Performing the request as the in-place write includes writing the data to a first location on a storage tier storing the first portion of the file, and performing the request as the out-of-place write includes writing the data to a second location on one of a plurality of storage tiers of a computing node, other than the first location.

Claims (50)

1. A method, comprising:

receiving a first request to write first data to a first portion of a file;

determining whether the first portion of the file is associated with existing data chunks;

in response to determining that the first portion of the file is not associated with the existing data chunks:

creating a first set of one or more data chunks based on an incoming access pattern; and

writing the first set of one or more data chunks to the first portion of the file;

receiving a second request to write second data to a second portion of the file;

determining whether the second portion of the file is associated with the existing data chunks; and

in response to determining that the second portion of the file is associated with the existing data chunks:

determining that the existing data chunks are stored in an upper tier of storage; and

in response to determining that the existing data chunks are stored in the upper tier of storage, writing the second data to the upper tier of storage or a lower tier of storage based in part on the incoming access pattern.

2. The method of claim 1 , wherein the incoming access pattern is random.

3. The method of claim 2 , wherein the first set of the one or more data chunks are created on the lower tier of storage.

4. The method of claim 1 , wherein the incoming access pattern is sequential.

5. The method of claim 4 , wherein the first set of the one or more data chunks are created on the upper tier of storage.

6. The method of claim 1 , wherein the second data is written to the upper tier of storage or to the lower tier of storage based in part on whether one or more overriding conditions exist.

7. The method of claim 6 , wherein the one or more overriding conditions include whether the existing data chunks correspond to a compressed group of data chunks.

8. The method of claim 6 , wherein in the event the existing data chunks correspond to a compressed group of data chunks, the second data is written to the upper tier of storage.

9. The method of claim 6 , wherein the one or more overriding conditions include whether the existing data chunks are deduplicated.

10. The method of claim 6 , wherein in the event the existing data chunks are deduplicated, the second data is written to the lower tier of storage.

11. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a first request to write first data to a first portion of a file;

determining whether the first portion of the file is associated with existing data chunks;

in response to determining that the first portion of the file is not associated with the existing data chunks:

creating a first set of one or more data chunks based on an incoming access pattern; and

writing the first set of one or more data chunks to the first portion of the file;

receiving a second request to write second data to a second portion of the file;

determining whether the second portion of the file is associated with the existing data chunks; and

in response to determining that the second portion of the file is associated with the existing data chunks:

determining that the existing data chunks are stored in an upper tier of storage; and

in response to determining that the existing data chunks are stored in the upper tier of storage, writing the second data to the upper tier of storage or a lower tier of storage based in part on the incoming access pattern.

12. The computer program product of claim 11 , wherein the incoming access pattern is random, and wherein the first set of the one or more data chunks are created on the lower tier of storage.

13. The computer program product of claim 11 , wherein the incoming access pattern is sequential, and wherein the first set of the one or more data chunks are created on the upper tier of storage.

14. The computer program product of claim 11 , wherein the second data is written to the upper tier of storage or to the lower tier of storage based in part on whether one or more overriding conditions exist.

15. The computer program product of claim 14 , wherein the one or more overriding conditions include whether the existing data chunks correspond to a compressed group of data chunks.

16. The computer program product of claim 14 , wherein in the event the existing data chunks correspond to a compressed group of data chunks, the second data is written to the upper tier of storage.

17. The computer program product of claim 14 , wherein the one or more overriding conditions include whether the existing data chunks are deduplicated.

18. The computer program product of claim 14 , wherein in the event the existing data chunks are deduplicated, the second data is written to the lower tier of storage.

19. A system, comprising:

a processor configured to:

receive a request to write data to a portion of a file;

determine whether the portion of the file is associated with existing data chunks;

in response to a determination that the portion of the file is not associated with the existing data chunks:

create a first set of one or more data chunks based on an incoming access pattern; and

write the first set of one or more data chunks to the portion of the file; and

in response to a determination that the portion of the file is associated with the existing data chunks:

determine that the existing data chunks are stored in an upper tier of storage; and

in response to the determination that the existing data chunks are stored in the upper tier of storage, write the data to the upper tier of storage or a lower tier of storage based in part on the incoming access pattern; and

a memory coupled to the processor and configured to provide the processor with instructions.

20. The system of claim 19 , wherein the data is written to the upper tier of storage or to the lower tier of storage based in part on whether one or more overriding conditions exist.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: ARON, MOHIT; SHANMUGANATHAN, GANESHA
To: COHESITY, INC.
Reel/Frame 051500/0845 →
Continuity (4)
Continuation 16154556 · Oct 8, 2018
Continuation 15628445 · Jun 20, 2017
Continuation 14684536 · Apr 13, 2015
Related Publication 20200125273A1 · Apr 23, 2020