IP Library Granted Patent US 12,210,906
Granted Patent B2
US 12,210,906 · App. 18/437,065 · Granted Jan 28, 2025

Techniques for distributed computing and storage

Inventors: Erich Pletsch (San Jose, CA); Matt Morris (Lehi, UT)
Assignee: ASEARIS DATA SYSTEMS, INC.
G06F9/5027G06F9/505G06F9/5072G06F21/64G06F2209/506
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,210,906
App. No.
18/437,065
Granted
Jan 28, 2025
Kind
B2
Abstract

Apparatuses, systems, methods, and program products are disclosed for techniques for distributed computing and storage. An apparatus includes a processor and a memory that includes code that is executable to receive a request to perform a storage task, transmit at least a portion of the storage task to a plurality of user node devices, receive results of the at least a portion of the storage task from at least one of the plurality of user node devices, and transmit the received results.

Claims (77)

1. An apparatus, comprising:

a processor; and

a memory that stores code executable by the processor to:

receive a request to perform a storage task, the storage task comprising a data storage task for data, the data being distributed among at least a subset of the plurality of user node devices;

in response to the request to perform the storage task:

create a checksum for the data;

divide the data into a plurality of data chunks;

create a checksum for each of the plurality of data chunks;

transmit each of the plurality of data chunks to at least one of the plurality of user node devices for storage; and

create a map of each of the plurality of data chunks to its corresponding checksum and the user node device where the data chunk is stored;

receive results of the at least a portion of the storage task from at least one of the plurality of user node devices; and

transmit the received results.

2. The apparatus of claim 1 , wherein the code is executable by the processor to:

determine resources needed to perform the storage task; and

select the plurality of user node devices to perform the storage task in response to determining that the plurality of user node devices comprise the resources for performing the storage task.

3. The apparatus of claim 1 , wherein the code is executable by the processor to store each of the plurality of data chunks on at least three different user node devices.

4. The apparatus of claim 3 , wherein a first user node device of the at least three different user node devices is geographically closer to the apparatus than a second user node device and a third user node device, the second and third user node devices located on different network segments from one another and the first user node device.

5. The apparatus of claim 1 , wherein the code is executable by the processor to:

check the map for each of the plurality data chunks to locate the user node device where the data chunk is stored;

retrieve a copy of each of the plurality of data chunks from its user node device;

verify the checksum of the copy of each of the plurality of data chunks;

reassemble each of the plurality of data chunks to create a data segment;

verify the checksum of the data segment; and

transmit the data segment.

6. The apparatus of claim 5 , wherein the code is executable by the processor to cache a copy of the data segment for a period of time according to an access priority of the data segment.

7. The apparatus of claim 6 , wherein the code is executable by the processor to determine the predefined period of time using a machine learning model that learns over time to optimize an amount of time that the data segment is stored in the cache based on a data access patterns of data in the cache.

8. The apparatus of claim 1 , wherein, in response to a user node device being unavailable, the code is executable by the processor to flag the data chunk stored on the user node device for grooming.

9. The apparatus of claim 8 , wherein the code is executable by the processor to create a copy of the flagged data chunk for storage on a different user node device.

10. The apparatus of claim 8 , wherein, in response to the user node device becoming available, the code is executable by the processor to verify the validity of the data chunk stored on the user node device and updates the map with the valid data chunk.

11. The apparatus of claim 1 , wherein the code is executable by the processor to employ additional or fewer user node devices as part of a distributed system based on a number of storage task requests.

12. The apparatus of claim 11 , wherein a minimum number of user node devices needed to perform the storage task is three.

13. The apparatus of claim 1 , wherein the code is executable by the processor to set limits on an amount of resources of a user node device that can be used to perform the at least a portion of the storage task.

14. The apparatus of claim 13 , wherein the limits on the amount of resources of the user node device that can be used to perform the at least a portion of the storage task are set by the user of the user node device.

15. A system, comprising:

a plurality of user node devices and

an interconnect node communicatively coupled to the plurality of user node devices, comprising:

a processor; and

a memory that stores code executable by the processor to:

receive a request to perform a storage task, the storage task comprising a data storage task for data, the data being distributed among at least a subset of the plurality of user node devices;

in response to the request to perform the storage task:

create a checksum for the data;

divide the data into a plurality of data chunks;

create a checksum for each of the plurality of data chunks;

transmit each of the plurality of data chunks to at least one of the plurality of user node devices for storage; and

create a map of each of the plurality of data chunks to its corresponding checksum and the user node device where the data chunk is stored;

receive results of the at least a portion of the storage task from at least one of the plurality of user node devices; and

transmit the received results.

16. The system of claim 15 , wherein the plurality of user node devices comprise end user mobile devices.

17. The system of claim 15 , wherein the request to perform the storage task is received from a user client device.

18. The system of claim 17 , wherein the user client device is communicatively coupled to the interconnect node, the interconnect node comprising one of a plurality of interconnect nodes that is optimal for the user client device.

19. The system of claim 15 , further comprising at least two input/output (I/O) network channels connected the interconnect node to each of the plurality of user node devices, a first I/O network channel used for sending and receiving data and a second I/O network channel used for command and control of the I/O network channels.

20. The system of claim 15 , wherein the code is executable by the processor to cause the interconnect node to store each of the plurality of data chunks on at least three different user node devices.

21. The system of claim 20 , wherein a first user node device of the at least three different user node devices is geographically closer to the interconnect node than a second user node device and a third user node device, the second and third user node devices located on different network segments from one another and the first user node device.

22. The system of claim 15 , wherein the code is executable by the processor to cause the interconnect node to:

check the map for each of the plurality data chunks to locate the user node device where the data chunk is stored;

retrieve a copy of each of the plurality of data chunks from its user node device;

verify the checksum of the copy of each of the plurality of data chunks;

reassemble each of the plurality of data chunks to create a data segment;

verify the checksum of the data segment; and

transmit the data segment.

23. A method, comprising:

receiving a request to perform a storage task, the storage task comprising a data storage task for data, the data being distributed among at least a subset of the plurality of user node devices;

in response to the request to perform the storage task:

creating a checksum for the data;

dividing the data into a plurality of data chunks;

creating a checksum for each of the plurality of data chunks;

transmitting each of the plurality of data chunks to at least one of the plurality of user node devices for storage; and

creating a map of each of the plurality of data chunks to its corresponding checksum and the user node device where the data chunk is stored;

receiving results of the at least a portion of the storage task from at least one of the plurality of user node devices; and

transmitting the received results.

24. The method of claim 23 , further comprising:

checking the map for each of the plurality data chunks to locate the user node device where the data chunk is stored;

retrieving a copy of each of the plurality of data chunks from its user node device;

verifying the checksum of the copy of each of the plurality of data chunks;

reassembling each of the plurality of data chunks to create a data segment;

verifying the checksum of the data segment; and

transmitting the data segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: PLETSCH, ERICH; MORRIS, MATT
To: ASEARIS DATA SYSTEMS, INC.
Reel/Frame 068876/0125 →
Continuity (2)
Provisional Application 63502847 · May 17, 2023
Related Publication 20240385891A1 · Nov 21, 2024
References Cited (11)
US 10824474B1 · Kamboj · 2020 [cited by examiner]
US 11650846B2 · Wu · 2023 [cited by examiner]
US 20150317189A1 · Georgescu · 2015 [cited by examiner]
US 20170031937A1 · Bowman · 2017 [cited by examiner]
US 20210067423A1 · Newman · 2021 [cited by examiner]
US 20210081256A1 · Sathyanaraya · 2021 [cited by examiner]
US 20220164240A1 · Kim · 2022 [cited by examiner]
US 20230281046A1 · Golub · 2023 [cited by applicant]
US 20230367640A1 · ChoFleming · 2023 [cited by applicant]
Yasar, Definition Checksum, Dec. 2022, 5 pages. (Year: 2022). [cited by examiner]
U.S. Appl. No. 18/437,039 Office Action mailed Apr. 4, 2024. [cited by applicant]