IP Library Granted Patent US 11,061,735
Granted Patent B2
US 11,061,735 · App. 16/238,359 · Granted Jul 13, 2021

System and method for offloading computation to storage nodes in distributed system

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F9/5061G06F16/907H04L67/1095H04L67/1097
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,061,735
App. No.
16/238,359
Granted
Jul 13, 2021
Kind
B2
Abstract

One embodiment described herein provides a distributed computing system. The distributed computing system can include a compute cluster comprising one or more compute nodes and a storage cluster comprising a plurality of storage nodes. A respective compute node can be configured to: receive a request for a computation task; obtain path information associated with data required by the computation task; identify at least one storage node based on the obtained path information; send at least one computation instruction associated with the computation task to the identified storage node; and receive computation results from the identified storage node subsequently to the identified storage node performing the computation task.

Claims (47)

1. A distributed computing system, the system comprising:

a compute cluster comprising one or more compute nodes, wherein a respective compute node comprises a first processor having a first processing speed;

a storage cluster comprising a plurality of storage nodes, wherein a respective storage node comprises a second processor having a second processing speed that is lower than the first processing speed; and

a master node configured to:

send data-placement path information associated with data associated with a computation task to a compute node to allow the compute node to send a computation instruction associated with the computation task to a storage node identified based on the data-placement path information;

receive, from the identified storage node, a data-update notification after the second processor having the second processing speed of the identified storage node performs the computation task and sends a computation result to the compute node; and

perform a lookup for data paths associated with replicas of the data stored on other storage nodes within the storage cluster and send the data paths to the identified storage node, thereby facilitating the identified storage node to synchronize the replicas of the data stored on the other storage nodes.

2. The distributed computing system of claim 1 , wherein the master node is further configured to:

maintain compute context associated with the data; and

generate data-placement paths based on the compute context.

3. The distributed computing system of claim 1 , wherein the compute node is further configured to:

partition the computation task into a number of sub-tasks based on the path information, which indicate locations of the data on the plurality of storage nodes, wherein the computation task is partitioned in such a way that a respective sub-task only requires data stored on a single storage node; and

send the respective sub-task to the corresponding single storage node to allow the single storage node to execute the respective sub-task.

4. The distributed computing system of claim 3 , wherein the compute node is further configured to receive computation results from multiple storage nodes executing the sub-tasks to generate a combined result.

5. The distributed computing system of claim 1 , wherein the compute node is further configured to:

receive data to be written into the storage cluster;

group the to-be-written data into one or more data chunks based on compute context associated with the to-be-written data; and

submit the compute context associated with the to-be-written data to the master node.

6. The distributed computing system of claim 5 , wherein the compute node is further configured to:

receive, from the master node, data-placement paths for the data chunks, wherein a respective data-placement path indicates a storage node for storing a corresponding data chunk; and

write the data chunks into corresponding storage nodes identified by the data-placement paths.

7. The distributed computing system of claim 5 , wherein the master node is configured to store the compute context as part of metadata of the to-be-written data.

8. The distributed computing system of claim 1 , wherein the identified storage node is further configured to:

execute the computing task;

determine whether execution of the computing task updates the data; and

in response to determining that the data is updated, send the data-update notification to the master node.

9. A computer-implemented method for offloading computation tasks from a compute cluster comprising one or more compute nodes to a storage cluster comprising a plurality of storage nodes in a distributed computing system, the method comprising:

sending, by a master node, data-placement path information associated with data associated with a computation task to a compute node to allow the compute node to send a computation instruction associated with the computation task to a storage node identified based on the data-placement path information, wherein the compute node comprises a first processor having a first processing speed, and wherein the storage node comprises a second processor having a second processing speed that is lower than the first processing speed;

receiving from the identified storage node, a data-update notification after the second processor having the second processing speed of the identified storage node performs the computation task and sends a computation result to the compute node; and

performing a lookup for data paths associated with replicas of the data stored on other storage nodes within the storage cluster and send the data paths to the identified storage node, thereby facilitating the identified storage node to synchronize the replicas of the data stored on the other storage nodes.

10. The computer-implemented method of claim 9 , wherein the master node maintains compute context associated with the data, and wherein the data-placement path information comprises data-placement paths generated by the master node based on the compute context.

11. The computer-implemented method of claim 9 , further comprising:

partitioning the computation task into a number of sub-tasks based on the path information, which indicate locations of the data on the plurality of storage nodes, wherein the computation task is partitioned in such a way that a respective sub-task only requires data stored on a single storage node; and

sending the respective sub-task to the corresponding single storage node to allow the single storage node to execute the respective sub-task.

12. The computer-implemented method of claim 11 , further comprising receiving, by the compute node, computation results from multiple storage nodes executing the sub-tasks to generate a combined result.

13. The computer-implemented method of claim 9 , further comprising:

receiving, by the compute node, data to be written into the storage cluster;

grouping the to-be-written data into one or more data chunks based on compute context associated with the to-be-written data; and

submitting the compute context associated with the to-be-written data to the master node.

14. The computer-implemented method of claim 13 , further comprising:

receiving, by the compute node from the master node, data-placement paths for the data chunks, wherein a respective data-placement path indicates a storage node for storing a corresponding data chunk; and

writing the data chunks into corresponding storage nodes identified by the data-placement paths.

15. The computer-implemented method of claim 13 , wherein the master node is configured to store the compute context as part of metadata of the to-be-written data.

16. The computer-implemented method of claim 9 , further comprising:

executing, by the identified storage node, the computing task;

determining whether execution of the computing task updates the data; and

in response to determining that the data is updated, sending the data-update notification to a master node of the distributed computing system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2019
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 047884/0701 →
Continuity (1)
Related Publication 20200210243A1 · Jul 2, 2020
Cited By (2)
US 12,468,480 US 12,563,115