IP Library Patent Application 17502166
Patent Application
App. No. 17/502,166

SUPPORTING RANDOM ACCESS UPLOADS TO AN OBJECT STORE

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 None
App. No.
17/502,166
Abstract

An object storage system can receive chunks of an object. Each of the chunks includes data that is a subset of the object. Each subset has an arbitrary amount of data and at least two of the subsets include overlapping data. Each of the chunks is associated with a timestamp. Responsive to a request for the object the object storage system can reconstitute the object by including the subset of data from a most recent of the chunks based on the timestamps and including only nonoverlapping data from subsequent chunks in reverse chronological order based on the timestamps until the object is reconstituted. The object storage system can transmit the reconstituted object.

Claims (55)

1 . A method, comprising:

receiving, at an object storage system, a plurality of chunks of an object, wherein:

each of the plurality of chunks comprises a respective subset of the object, each respective subset comprising an arbitrary amount of data, and at least two of the respective subsets including overlapping data; and

each of the plurality of chunks is associated with a respective timestamp; and

responsive to a request for the object, reconstituting the object at the object storage system by:

including the respective subset of data from a most recent of the plurality of chunks based on the respective timestamps; and

including only nonoverlapping data from subsequent chunks in reverse chronological order based on the respective timestamps until the object is reconstituted; and

transmitting the reconstituted object from the object storage system.

2 . The method of claim 1 , further comprising saving the plurality of chunks in persistent storage without regard to the overlapping data.

3 . The method of claim 2 , wherein each of the plurality of chunks is associated with a respective data range comprising a start offset and an end offset with respect to the object; and

wherein the method further comprises sorting the plurality of chunks in reverse chronological order based on the respective timestamps.

4 . The method of claim 3 , wherein including only nonoverlapping data from subsequent chunks further comprises determining whether to include any of the data from the subsequent chunks based on the respective data range.

5 . The method of claim 3 , further comprising, responsive to a request for a portion of the object having a particular data range, reconstituting the portion of the object; and

transmitting the reconstituted portion of the object.

6 . The method of claim 5 , wherein reconstituting the portion of the object comprises:

including only data that overlaps the particular data range from a most recent of the plurality of chunks based on the respective timestamps and the respective data ranges; and

including only data that overlaps the particular data range, but does not overlap previously included data, from subsequent chunks in reverse chronological order based on the respective timestamps and the respective data ranges until the portion of the object is reconstituted.

7 . The method of claim 1 , wherein receiving the plurality of chunks comprises receiving different chunks from different sources.

8 . A non-transitory machine-readable medium having instructions stored thereon which, when executed by a processor, cause the processor to:

receive, at an object storage system, a plurality of chunks of an object, wherein:

each of the plurality of chunks comprises a respective subset of the object, each respective subset comprising an arbitrary amount of data, and at least two of the respective subsets including overlapping data; and

each of the plurality of chunks is associated with a respective timestamp; and

responsive to a request for the object, reconstitute the object at the object storage system by:

including the respective subset of data from a most recent of the plurality of chunks based on the respective timestamps; and

including only nonoverlapping data from subsequent chunks in reverse chronological order based on the respective timestamps until the object is reconstituted; and

transmit the reconstituted object from the object storage system.

9 . The medium of claim 8 , further comprising instructions to save the plurality of chunks in persistent storage without regard to the overlapping data.

10 . The medium of claim 9 , wherein each of the plurality of chunks is associated with a respective data range comprising a start offset and an end offset with respect to the object; and

further comprising instructions to sort the plurality of chunks in reverse chronological order based on the respective timestamps.

11 . The medium of claim 10 , wherein the instructions to include only nonoverlapping data from subsequent chunks further comprise instructions to determine whether to include any of the data from the subsequent chunks based on the respective data range.

12 . The medium of claim 10 , further comprising instructions to:

reconstitute the portion of the object responsive to a request for a portion of the object having a particular data range; and

transmit the reconstituted portion of the object.

13 . The medium of claim 12 , wherein the instructions to reconstitute the portion of the object comprise instructions to:

include only data that overlaps the particular data range from a most recent of the plurality of chunks based on the respective timestamps and the respective data ranges; and

include only data that overlaps the particular data range, but does not overlap previously included data, from subsequent chunks in reverse chronological order based on the respective timestamps and the respective data ranges until the portion of the object is reconstituted.

14 . The medium of claim 8 , wherein the instructions to receive the plurality of chunks comprise instructions to receive different chunks from different sources.

15 . An object storage system, comprising processing and memory resources configured to:

receive a plurality of chunks of an object, wherein:

each of the plurality of chunks comprises a respective subset of the object, each respective subset comprising an arbitrary amount of data, and at least two of the respective subsets including overlapping data; and

each of the plurality of chunks is associated with a respective timestamp; and

responsive to a request for the object, reconstitute the object by:

including the respective subset of data from a most recent of the plurality of chunks based on the respective timestamps; and

including only nonoverlapping data from subsequent chunks in reverse chronological order based on the respective timestamps until the object is reconstituted; and

transmit the reconstituted object.

16 . The system of claim 15 , further configured to save the plurality of chunks in persistent storage without regard to the overlapping data.

17 . The system of claim 16 , wherein each of the plurality of chunks is associated with a respective data range comprising a start offset and an end offset with respect to the object; and

wherein the system is further configured to sort the plurality of chunks in reverse chronological order based on the respective timestamps.

18 . The system of claim 17 , further configured to determine whether to include any of the data from the subsequent chunks based on the respective data range.

19 . The system of claim 17 , further configured to:

reconstitute the portion of the object responsive to a request for a portion of the object having a particular data range; and

transmit the reconstituted portion of the object.

20 . The system of claim 19 , wherein the system is configured to reconstitute the portion of the object by:

including only data that overlaps the particular data range from a most recent of the plurality of chunks based on the respective timestamps and the respective data ranges; and

including only data that overlaps the particular data range, but does not overlap previously included data, from subsequent chunks in reverse chronological order based on the respective timestamps and the respective data ranges until the portion of the object is reconstituted.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2021
From: BYARD, DAVID MARK WILLIAM; SINGH, MANU PRATAP; SHAH, ANKIT
To: VMWARE, INC.
Reel/Frame 057816/0258 →