×

Weighted auto-sharding

  • US 10,530,844 B2
  • Filed: 02/09/2017
  • Issued: 01/07/2020
  • Est. Priority Date: 06/03/2016
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • a data processing apparatus that includes one or more processors; and

    a non-transitory computer readable medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and that when executed cause the data processing apparatus to perform operations comprising;

    partitioning a data set for an application job into a plurality of partitions according to values of a key, wherein the key is an atomic unit of work placement;

    assigning, to each worker computer in a set of worker computers, partitions of the data set to the worker computer, wherein each worker computer receives a different set of partitions of the data set;

    iteratively determining workload distribution for the application job across the worker computers and determining whether a load balancing operation is require based on the workload distribution;

    in response to determining a load balancing operation is required;

    selecting a first worker computer having a highest load measure relative to a respective load measure of at least one other worker computer;

    for one or more partitions assigned to the first worker computer, determining one or more move operations for the partition, and, for each move operation, a weight for the move operation; and

    selecting the move operation with a highest weight relative to the weights of each of the other move operations and implementing the selected move operation on the partition for which the move operation with the highest weight was determined;

    wherein the weight for each move is based on a benefit determined for the move and a cost determined for the move.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×