IP Library › Granted Patent US 12,613,780
Granted Patent B1
US 12,613,780 · App. 18/759,493 · Granted Apr 28, 2026

Data equivalency system using co-pair manifests for identifying duplicates in generations of resources

Inventors: Edwin Ma (Seattle, WA); Sandeep Kumar (Sammamish, WA)
Assignee: Amazon Technologies, Inc.
G06F11/1453G06F11/1451G06F16/215G06F21/602G06F2201/80
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 12,613,780
App. No.
18/759,493
Granted
Apr 28, 2026
Kind
B1
Abstract

Systems and methods are provided for generating a listing of equivalent snapshot objects referenced by a set of object-based snapshots representing data of a corresponding block-storage volume at a point-in-time. Generating the listing comprises: retrieving a set of main manifests corresponding to the set of object-based snapshots, retrieving a set of co-pair manifests corresponding to the set of object-based snapshots, each co-pair manifest corresponding to an object-based snapshot and including a listing of encrypted snapshot objects with equivalencies to unencrypted snapshot objects, identifying data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests, and removing identified data duplication in the set of main manifests.

Claims (40)

1 . A system for identifying data duplication in object-based snapshots of block-storage volumes, each object-based snapshot representing data of a corresponding block-storage volume at a point-in-time, the system comprising:

a metadata store storing metadata identifying individual object-based snapshots as encrypted or unencrypted, wherein an encrypted object-based snapshot corresponds to an encrypted block-storage volume, and wherein an unencrypted object-based snapshot corresponds to an unencrypted block-storage volume;

an object data store including:

snapshot objects, each snapshot object representing one or more blocks of data;

main manifests, each main manifest corresponding to an object-based snapshot and including a full listing of snapshot objects within the object data store that collectively represent data of the corresponding block-storage volume at the point-in-time of the object-based snapshot; and

one or more co-pair manifests, each co-pair manifest corresponding to an object-based snapshot, and including a listing of encrypted snapshot objects with equivalencies to unencrypted snapshot objects, wherein the encrypted snapshot objects are distinct from the unencrypted snapshot objects and wherein an equivalency indicates that an encrypted snapshot object represents duplicate storage, in encrypted form, as block-storage volume source data stored in unencrypted form as an unencrypted snapshot object; and

one or more processors configured to:

generate a deduplicated listing of snapshot objects within the object data store by:

identifying a set of object-based snapshots for deduplication;

retrieving from the object data store a set of main manifests and a set of co-pair manifests corresponding to the set of object-based snapshots;

identifying data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests; and

removing identified data duplication in the set of main manifests.

2 . The system of claim 1 , wherein the deduplicated listing of snapshot objects provides accurate snapshot usage data for a usage metering service.

3 . The system of claim 1 , wherein a block-storage volume represents a virtual storage disk drive hosted by a block storage system distinct from the object data store.

4 . The system of claim 1 , wherein the one or more processors represent a distributed computing system collectively configured to generate the deduplicated listing of snapshot objects.

5 . A computer-implemented method comprising:

generating a listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots, each object-based snapshot representing data of a corresponding block-storage volume at a point-in-time as a collection of snapshot objects that provide a copy of data of the block-storage volume at the point-in-time, wherein generating the listing comprises:

retrieving from an object data store a set of main manifests corresponding to the set of object-based snapshots, each main manifest including a full listing of snapshot objects within the object data store that collectively represent data of the corresponding block-storage volume at the point-in-time of the object-based snapshot;

retrieving from the object data store a set of co-pair manifests corresponding to the set of object-based snapshots, each co-pair manifest corresponding to an object-based snapshot, and including a listing of encrypted snapshot objects with equivalencies to unencrypted snapshot objects, wherein the encrypted snapshot objects are distinct from the unencrypted snapshot objects, and wherein an equivalency indicates that an encrypted snapshot object represents duplicate storage, in encrypted form, as block-storage volume source data stored in an unencrypted form as an unencrypted snapshot object;

identifying data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests; and

removing identified data duplication in the set of main manifests.

6 . The computer-implemented method of claim 5 , wherein identifying data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests comprises implementing a MapReduce operation on a distributed computing system, the MapReduce operation including a reshuffling of information between devices of the distributed computing system during generation of the listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots.

7 . The computer-implemented method of claim 5 , further comprising identifying individual object-based snapshots as incremental or non-incremental, wherein an incremental object-based snapshot is associated with a parent object-based snapshot that represents an earlier state of the block-storage volume corresponding to the incremental object-based snapshot, and wherein a non-incremental object-based snapshot is not associated with a parent object-based snapshot.

8 . The computer-implemented method of claim 7 , wherein individual object-based snapshots can be inactive or active, and wherein identifying an individual object-based snapshot as incremental comprises identifying that the individual object-based snapshot is associated with an active parent object-based snapshot at a given point-in-time.

9 . The computer-implemented method of claim 8 , wherein identifying an individual object-based snapshot as non-incremental comprises inspecting metadata of the individual object-based snapshot, the metadata identifying a state of a parent of individual object-based snapshot as null.

10 . The computer-implemented method of claim 9 , wherein the metadata identifies an object-based snapshot as incremental or non-incremental by identifying whether the object-based snapshot depends on a prior object-based snapshot and identifying an active time period of the prior object-based snapshot.

11 . The computer-implemented method of claim 9 , wherein the metadata identifies each of the object-based snapshots as encrypted or unencrypted.

12 . The computer-implemented method of claim 5 , wherein the listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots is provided as input to a resource usage metering service.

13 . The computer-implemented method of claim 5 , wherein the set of main manifests and the set of co-pair manifests is stored on a network data store, and wherein retrieving the set of main manifests and the set of co-pair manifests comprises transferring the set of main manifests and the set of co-pair manifests over a network.

14 . One or more non-transitory computer-readable media comprising instructions executable by one or more processors to generate a listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots, each object-based snapshot representing data of a corresponding block-storage volume at a point-in-time as a collection of snapshot objects that provide a copy of data of the block-storage volume at the point-in-time, wherein the instructions, when executed, cause the one or more processors to:

retrieve from an object data store a set of main manifests corresponding to the set of object-based snapshots, each main manifest including a full listing of snapshot objects within the object data store that collectively represent data of the corresponding block-storage volume at the point-in-time of the object-based snapshot;

retrieve from the object data store a set of co-pair manifests corresponding to the set of object-based snapshots, each co-pair manifest corresponding to an object-based snapshot, and including a listing of encrypted snapshot objects with equivalencies to unencrypted snapshot objects, wherein the encrypted snapshot objects are distinct from the unencrypted snapshot objects and wherein an equivalency indicates that an encrypted snapshot object represents duplicate storage, in encrypted form, as block-storage volume source data stored in unencrypted form as an unencrypted snapshot object;

identify data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests; and

remove identified data duplication in the set of main manifests.

15 . The one or more non-transitory computer-readable media of claim 14 , wherein identifying data duplication in the set of main manifests based on listings of encrypted snapshot objects with equivalencies to unencrypted snapshot objects found in the set of co-pair manifests comprises implementing a MapReduce operation on a distributed computing system, the MapReduce operation including a reshuffling of information between devices of the distributed computing system during generation of the listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots.

16 . The one or more non-transitory computer-readable media of claim 14 , wherein the instructions, when executed, further cause the one or more processors to identify individual object-based snapshots as incremental or non-incremental, wherein an incremental object-based snapshot is associated with a parent object-based snapshot that represents an earlier state of the block-storage volume corresponding to the incremental object-based snapshot, and wherein a non-incremental object-based snapshot is not associated with a parent object-based snapshot.

17 . The one or more non-transitory computer-readable media of claim 16 , wherein individual object-based snapshots can be inactive or active, and wherein identifying an individual object-based snapshot as incremental comprises identifying that the individual object-based snapshot is associated with an active parent object-based snapshot at a given point-in-time.

18 . The one or more non-transitory computer-readable media of claim 17 , wherein identifying an individual object-based snapshot as non-incremental comprises inspecting metadata of the individual object-based snapshot, the metadata identifying a state of a parent of individual object-based snapshot as null.

19 . The one or more non-transitory computer-readable media of claim 14 , wherein the listing of equivalent snapshot objects that are referenced by one or more of a set of object-based snapshots is provided as input to a resource usage metering service.

20 . The one or more non-transitory computer-readable media of claim 14 , wherein the set of main manifests and the set of co-pair manifests is stored on a network data store, and wherein retrieving the set of main manifests and the set of co-pair manifests comprises transferring the set of main manifests and the set of co-pair manifests over a network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2024
From: MA, EDWIN; KUMAR, SANDEEP
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 068652/0763 →
References Cited (4)
US 11016671B2 · Kumar · 2021 [cited by examiner]
US 11556659B1 · Kumar · 2023 [cited by examiner]
US 11940881B1 · Srivastava · 2024 [cited by examiner]
US 20200322138A1 · Kumar · 2020 [cited by examiner]