Managing partitions in a scalable environment

US10860384B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10860384-B2
Application numberUS-201213366039-A
CountryUS
Kind codeB2
Filing dateFeb 3, 2012
Priority dateFeb 3, 2012
Publication dateDec 8, 2020
Grant dateDec 8, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods are provided that enable a general framework for partitioning application-defined jobs in a scalable environment. The general framework decouples partitioning of a job from the other aspects of the job. As a result, the effort required to define the application-defined job is reduced or minimized, as the user is not required to provide a partitioning algorithm. The general framework also facilitates management of masters and servers performing computations within the distributed environment.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for performing computations in a distributed computing environment, comprising: receiving one or more application-defined partitioning system interfaces; creating a plurality of master role instances including the one or more application-defined partitioning system interfaces, the master role instances corresponding to a master storage object; assigning a lease for the master storage object, each master role instance competing for the lease, the master role instance that is assigned the lease being the dictator master role instance; assigning, by the dictator master role instance, a group of partitions to a plurality of partition servers; performing one or more computations corresponding to an application using the plurality of partition servers; receiving, by the dictator master role instance, a message from a first partition server comprising partitions the first partition server reports to be currently serving; and breaking, by the dictator master role instance, a lease of the first partition server on a corresponding first storage object, the breaking of the lease of the first partition server being at the first partition server responsive to detecting, by the dictator master role instance, that the first partition server is currently serving at least one partition the first partition server should not currently be serving as indicated by a conflict between one or more partitions assigned to the first partition server in a partition table and the partitions in the received message. 2. The method of claim 1 , further comprising sending, by the dictator master role instance, a heartbeat message to the plurality of partition servers wherein the message from the first partition service is a response to the heartbeat message. 3. The method of claim 1 wherein the one or more application-defined partitioning system interfaces are each a client-provided function. 4. The method of claim 1 , further comprising in response to the detecting: rebuilding a proper state of the partition table; and ensuring all unknown storage objects are deleted before proceeding with partition assignments. 5. The method of claim 2 , further comprising: sending, by the dictator master role instance, a message assigning one or more partitions to a second partition server from a plurality of partition servers while the dictator master role instance maintains the lease for the master storage object, the message from the dictator master role instance including an epoch number; and maintaining, by the second partition server from the plurality of partition servers, the partition assignment received from the dictator master role instance. 6. The method of claim 5 , further comprising, associating, by the dictator master role instance, an assignment identifier with the assignment of the one or more partitions, the dictator master role instance sending the assignment identifier along with the message to the second partition server; updating, by the second partition server, the content of a corresponding storage object to store the assignment identifier, and sending, by the second partition server, an acknowledgement message to the dictator master role instance. 7. The method of claim 5 , further comprising: associating, by the dictator master role instance, an assignment identifier with the assignment of the one or more partitions, the dictator master role instance sending the assignment identifier along with the message to the second partition server; receiving, by the second partition server, the message from the dictator master role instance without sending an acknowledgement message to the dictator master; breaking, by the dictator master role instance, a lease of the second partition server on a corresponding storage object; deleting, by the dictator master role instance, the storage object corresponding the second partition server; and detecting, by the second partition server, the breaking of the lease, the second partition server terminating in response to the detection of breaking the lease. 8. The method of claim 5 , further comprising: associating, by the dictator master role instance, an assignment identifier with the assignment of the one or more partitions, the dictator master role instance sending the assignment identifier along with the message to the second partition server; receiving, by the second partition server, the message from the dictator master role instance without updating a content of a corresponding storage object; breaking, by the dictator master role instance, a lease of the second partition server on the corresponding storage object; deleting, by the dictator master role instance, the storage object corresponding to the second partition server; and detecting, by the second partition server, the breaking of the lease, the second partition server terminating in response to the detection of breaking the lease. 9. A method for performing computations in a distributed computing environment, comprising: executing a computation comprising at least two namespaces and at least two master role instances, each master role instance corresponding to a different namespace, each master role instance being the dictator for a corresponding namespace and holding a dictator lease on a master storage object for the corresponding namespace, the master role instances instantiating a common master module and common fixed-interfaces, while each being of a different master role and having a different application-defined interface, wherein breaking of the dictator lease is based on detecting, that a partition server is currently serving at least one partition that the partition server should not currently be serving as indicated by a conflict between one or more partitions assigned to the partition server in a partition table and the partitions in a received message comprising the partitions the partition server reports to be currently serving; assigning a machine that provides failover service for the master role instances and comprises a backup used for each master role instance of the master role instances in response to a failure event being detected for the master role instance, the backup including the common master module and the common fixed-interfaces; in response to detecting a failover event for a master role instance of the master role instances: incorporating the different application-defined interface of the master role instance, needed by the backup on the assigned machine to take over for the master role instance, into the backup; and assigning the backup comprising the common fixed interfaces and the incorporated different application-defined interface as the dictator for the namespace corresponding to the failover event. 10. The method of claim 9 , wherein the different application-defined interface of each of the master role instances is a client-provided function. 11. The method of claim 9 , wherein the common master module performs election of the dictator for the corresponding namespace, communication between the dictator and server role instances, and partition management. 12. The method of claim 9 , wherein a first of the master role instances is of a pool server role that handles pool management and pool transactions and a second of the master role instances is of a work item or job server role that handles creation, deletion, and updates of work items and jobs. 13. A system for performing computing tasks in a distributed computing environment, the system comprising: a plurality of processors executing computer-useable instructions that, when executed, provide a system comprising: a plurality of

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Machines for making or covering holes for sowing or planting · CPC title

  • G06F9/5066Primary

    Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451) · CPC title

  • Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10860384B2 cover?
Systems and methods are provided that enable a general framework for partitioning application-defined jobs in a scalable environment. The general framework decouples partitioning of a job from the other aspects of the job. As a result, the effort required to define the application-defined job is reduced or minimized, as the user is not required to provide a partitioning algorithm. The general f…
Who is the assignee on this patent?
Wang Ju, Calder Bradley Gene, Skjolsvold Arild E, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5066. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 08 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).