Decoupling partitioning for scalability
AssigneeMicrosoft Technology Licensing, LLC
InventorsArild E. Skjolsvold, Bradley Gene Calder, Ju Wang
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Technology Licensing, LLC
InventorsArild E. Skjolsvold, Bradley Gene Calder, Ju Wang
Estimating the term…
Systems and methods are provided that enable a general framework for partitioning application-defined computations (e.g., jobs) in a scalable environment. The general framework decouples partitioning of a computation from the other aspects of the computation. As a result, the effort required to define an application-defined job is reduced or minimized, as the user is not required to provide a partitioning algorithm. A user can optionally take advantage of a partitioning framework by providing application-defined interfaces to perform the desired job. Optionally, a user can provide additional information to allow for modification of how partitions are assigned.
A method for performing partitioning on a client defined namespace in a distributed computing environment, comprising:
One or more removable or non-removable computer-storage media devices storing computer-useable instructions that, when executed, perform a method for performing partitioning on a client defined namespace in a distributed computing environment, comprising:
A method for performing load balancing in a distributed computing environment, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Partitioning or combining of resources: logical partitioning of resources; Management or configuration of virtualized resources
Organizing or formatting or addressing of data: management of space entities, e.g. partitions, extents, pools
Hypervisors; Virtual machine monitors: hypervisor-specific management and integration aspects
Allocation of resources, e.g. of the central processing unit [CPU]: techniques for rebalancing the load in a distributed system
About 5 years 11 months of term left · ends 3 Oct 2032 (estimated)
This application is related in subject matter to the following concurrently filed U.S. patent applications: U.S. patent application Ser. No. 13/366,039, entitled “MANAGING PARTITIONS IN A SCALABLE ENVIRONMENT,” filed Feb. 3, 2012, and U.S. patent application Ser. No. 13/366,052, entitled “DYNAMIC LOAD BALANCING IN A SCALABLE ENVIRONMENT,” filed Feb. 3, 2012, the entireties of the aforementioned applications are incorporated by reference herein.
Cloud computing environments provide a potential platform for allowing users to have access to large amounts of computing resources without having to invest in corresponding infrastructure. Instead, the computing environment can be provided as a service by a cloud computing provider. This can allow a user to tune the requested computing resources to match the size and importance of a computing job. However, taking full advantage of the additional computing resources available as a service may require dividing computing tasks into smaller portions, so that multiple physical or virtual processors can be used to perform a task.
In various embodiments, systems and methods are provided that enable a general framework for partitioning application-defined computations (e.g. jobs) in a scalable environment. The general framework decouples partitioning of a computation from the other aspects of the computation. As a result, the effort required to define an application-defined job is reduced or minimized, as the user is not required to provide a partitioning algorithm. Instead, a user may take advantage of the partitioning framework by providing application-defined interfaces to supplement the features to perform the desired job. Optionally, a user can provide additional information to allow for modification of how partitions are assigned.
The invention is described in detail below with reference to the attached drawing figures, wherein:
FIGS. 1 to 3 schematically show various aspects of an example of a distributed computing environment, in accordance with aspects of the present invention;
FIG. 4 schematically shows the interaction between various interfaces for performing a job in a generic partitioning environment, in accordance with aspects of the present invention;
Overview
Due to increases in the speed of data transmission over networks and improvements in other network features, it is increasingly possible to perform large scale computing tasks in an environment where computing resources are distributed over a large network. A user in a first location can submit a job or computing task to a computing service and have the task performed on a group of computers that the user has no direct knowledge of. The computing resources for performing the user's task may be distributed over multiple locations. A first group of computing resources located in one or more locations can store the data and other information for performing the user's computing task, while a second group of computing resources, in the same locations or possibly in a different set of one or more locations, can be used to perform the computing task.
Access to a variety of distributed computing resources allows a user to perform job tasks without concern for where the computing resources are located. The distributed resources also provide an opportunity for a user to scale up (or scale down) the amount of resources used in order to meet goals for a computing task, such as completing the computing task by a specified time. However, using distributed computing resources poses a number of challenges for a user. Conventionally, a user or application designer would need to divert resources away from designing an application or job in order to determine how to take advantage of a specific distributed computing environment.