IP Library Granted Patent US 7,516,181
Granted Patent B1
US 7,516,181 · App. 11/052,469 · Granted Apr 7, 2009

Technique for project partitioning in a cluster of servers

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 7,516,181
App. No.
11/052,469
Granted
Apr 7, 2009
Kind
B1
Abstract

A technique for project partitioning in a cluster of servers is disclosed. In one particular exemplary embodiment, the technique may be realized as a method for partitioning a plurality of projects among a cluster of servers. The method may comprise determining a status of project partition among the cluster of servers. The method may also comprise generating a partition plan for re-partitioning the plurality of projects among the cluster of servers based at least in part on the status and a partition policy, wherein the partition policy comprises one or more rules selected from a group consisting of a user specified project-server association rule, a weighted balancing rule, and a project redundancy rule. The method may further comprise communicating the partition plan to each of the cluster of servers. The method may additionally comprise causing the plurality of projects to be re-partitioned among the cluster of servers based on the partition plan.

Claims (49)

1. A method for partitioning a plurality of projects among a cluster of servers, the method comprising:

determining a status of project partition among the cluster of servers, wherein the cluster of servers hosts a common set of projects and each server of the cluster of servers hosts a subset of the common set of projects;

generating a partition plan for re-partitioning the plurality of projects among the cluster of servers based at least in part on the status and a partition policy, wherein the partition policy comprises one or more rules selected from a group consisting of:

a user specified project-server association rule,

a weighted balancing rule, and

a project redundancy rule;

communicating the partition plan to each of the cluster of servers; and

causing the plurality of projects to be re-partitioned among the cluster of servers based on the partition plan.

2. The method according to claim 1 being triggered by one or more events selected from a group consisting of:

a server leaving the cluster;

an additional server joining the cluster;

failure of at least one server in the cluster;

restart of at least one server in the cluster; and

a user trigger via an application program interface.

3. The method according to claim 1 further comprising:

re-partitioning, after a predetermined delay, the plurality of projects among the cluster of servers if a server running one or more projects becomes unavailable and no duplicate for the one or more projects exists on any other server.

4. The method according to claim 1 further comprising:

selecting, based on an election algorithm, a surviving server of the cluster of servers to generate the partition plan when a server of the cluster of servers becomes unavailable.

5. The method according to claim 1 , wherein the status of project partition among the cluster of servers is recorded in a partition matrix.

6. The method according to claim 5 , wherein the partition plan comprises a transformed matrix based on the partition matrix.

7. The method according to claim 6 further comprising:

communicating the transformed matrix to each server in the cluster.

8. The method according to claim 1 further comprising:

specifying, through a user interface, an initial project partition among the cluster of servers.

9. The method according to claim 1 , wherein the weighted balancing rule causes each project to be distributed to at least a predetermined number of servers in the cluster.

10. The method according to claim 1 , wherein the weighted balancing rule causes each project to be distributed to at least a predetermined percentage of servers in the cluster.

11. The method according to claim 1 , wherein each server immediately responds to the partition plan upon receiving the partition plan.

12. The method according to claim 1 , wherein each server responds to the partition plan after a predetermined delay.

13. The method according to claim 1 , wherein the cluster of servers comprise one or more intelligence servers.

14. A system for partitioning a plurality of projects among a cluster of servers, the system comprising:

a plurality of project partition modules, each residing in one of the cluster of servers, wherein each project partition module is adapted to:

determine a status of project partition among the cluster of servers, wherein the cluster of servers hosts a common set of projects and each server of the cluster of servers hosts a subset of the plurality of projects;

generate a partition plan for re-partitioning the plurality of projects among the cluster of servers based at least in part on the status and a partition policy, wherein the partition policy comprises one or more rules selected from a group consisting of:

a user specified project-server association rule,

a weighted balancing rule, and

a project redundancy rule;

communicate the partition plan to other project partition modules in the cluster; and

cause the plurality of projects to be re-partitioned among the cluster of servers based on the partition plan.

15. An article of manufacture for partitioning a plurality of projects among a cluster of servers, the article of manufacture comprising:

at least one processor readable carrier; and

instructions carried on the at least one carrier;

wherein the instructions are configured to be readable from the at least one carrier by at least one processor and thereby cause the at least one processor to operate so as to:

determine a status of project partition among the cluster of servers, wherein the cluster of servers hosts a common set of projects and each server of the cluster of servers hosts a subset of the plurality of projects;

generate a partition plan for re-partitioning the plurality of projects among the cluster of servers based at least in part on the status and a partition policy, wherein the partition policy comprises one or more rules selected from a group consisting of:

a user specified project-server association rule,

a weighted balancing rule, and

a project redundancy rule;

communicate the partition plan to each of the cluster of servers; and

cause the plurality of projects to be re-partitioned among the cluster of servers based on the partition plan.

Assignments (3)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2005
From: DU, YI; LIU, NINGNING; POLANA, RAMPRASAD; BUI, QUOC CUONG; LI, BENJAMIN Z
To: MICROSTRATEGY, INC.
Reel/Frame 015876/0685 →