IP Library Granted Patent US 7,020,706
Granted Patent B2
US 7,020,706 · App. 10/173,278 · Granted Mar 28, 2006

Method and system for automatically updating multiple 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,020,706
App. No.
10/173,278
Granted
Mar 28, 2006
Kind
B2
Abstract

A system and method updates multiple servers automatically without taking all of the multiple servers off-line at the same time. The system and method selects a group of servers, takes the group off-line, updates the group taken off-line, and then brings on-line those members of the group that were on-line prior to the update and for which the update was installed successfully.

Claims (97)

1. A server updating method, comprising:

allocating each of a plurality of servers to various ones of a plurality of groups, each server having at least one type, each group comprising, for at least one of the at least one type, fewer then all of the servers having a same type;

selecting at least one first group of the plurality of groups;

identifying a status related to servers in the first group;

providing at least one first command to suspend directing of communications by at least one load balancer to servers in the first group, said first command not suspending the directing of communications to servers in at least one of the other groups;

updating information at servers in the first group for which the directing of communications is suspended; and

based on the status identified, providing at least one second command to resume the directing of communications by the at least one load balancer to at least one server containing updated information in the first group.

2. The method of claim 1 , wherein providing the at least one first command to the at least one load balancer to suspend directing of communications to servers in the first group comprises:

identifying a type of load balancer;

retrieving the at least one first command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

providing to the identified type of load balancer the at least one first command retrieved.

3. The method of claim 1 , additionally comprising suspending the directing of new connections by at least one load balancer to servers in the first group.

4. The method of claim 3 , wherein suspending the directing of new connections by at least one load balancer comprises:

identifying a type of load balancer;

retrieving at least one suspension command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

providing the at least one suspension command retrieved to the identified type of load balancer.

5. The method of claim 1 , additionally comprising:

selecting a second group different from the first group;

identifying a status related to servers in the second group;

providing at least one third command to suspend directing of communications by at least one load balancer to servers in the second group, said third command not suspending the directing of communications to servers in at least one of the other groups;

updating information at servers in the second group for which the directing of communications is suspended; and

based on the status identified, providing at least one fourth command to resume the directing of communications by the at least one load balancer to at least one server containing updated information in the second group.

6. The method of claim 1 , wherein the status related to servers in the first group comprises, for each of said servers, a status related to directing of communications to that server.

7. The method of claim 1 , additionally comprising receiving at least one indication regarding a success of the updating step, wherein resuming the directing of communications is additionally based on the indicated success of the updating step.

8. A server updating system comprising:

a configuration manager configured to:

receive information regarding a plurality of servers, each server having at least one type, allocate each of the plurality of servers to various ones of a plurality of groups based on information received, each group comprising, for at least one of the at least one type, fewer than all of the servers having a same type;

select at least one first group of the plurality of groups; and

provide at least one first identifier corresponding to at least one server in the first group;

a status manager configured to:

receive the at least one first identifier,

provide a request for status related to the at least one server in the first group;

receive a response to the request; and

provide an indication of status based on the response received;

a shutdown manager configured to:

receive the at least one first identifier;

provide at least one first command to suspend directing of communications by at least one load balancer to servers in the first group, said first command not suspending the directing of communications to servers in at least one of the other groups, and

provide a signal verifying the at least one first command provided; and

an update manager configured to:

receive the signal from the shutdown manager, and

provide information useful for updating servers in the first group;

wherein the shutdown manager is additionally configured to provide, based on the indication of status, at least one second command to resume directing of communications by the at least one load balancer to at least one of the servers having received information useful for updating the servers.

9. The system of claim 8 , wherein the shutdown manager is additionally configured to:

receive an identifier of a type of load balancer;

retrieve the at least one first command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

provide to the identified type of load balancer the at least one first command retrieved.

10. The system of claim 8 , wherein the shutdown manager is additionally configured to provide at least one suspension command to suspend the directing of new connections by at least one load balancer to servers in the first group before suspending the directing of communications to servers in the first group.

11. The system of claim 10 , wherein the shutdown manager is additionally configured to:

receive an identifier of a type of load balancer;

retrieve the at least one third command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

provide to the identified type of load balancer the at least one third command retrieved.

12. The system of claim 8 , wherein:

the configuration manager is additionally configured to:

select a second group different from the first group, and

provide at least one second identifier corresponding to at least one server in the second group;

the status manager is additionally configured to:

receive the at least one second identifier,

provide a request for status related to the at least one server in the second group;

receive a response to the request; and

provide an indication of status based on the response received;

the shutdown manager is additionally configured to:

provide at least one third command to suspend directing of communications by at least one load balancer to servers in the second group, said third command not suspending the directing of communications to servers in at least one of the other groups;

the update manager is additionally configured to provide information useful for updating information at servers in the second group for which the directing of communications is suspended; and

the shutdown manager is additionally configured to provide, based on the indication of status, at least one fourth command to resume directing of communications by the at least one load balancer to at least one of the servers containing updated information in the second group.

13. The system of claim 8 , wherein the status related to servers in the first group comprises, for each of said servers, a status related to directing of communications to that server.

14. The system of claim 8 , wherein:

the update manager is additionally configured to:

receive at least one indication regarding a success of the updating step, and

provide at least one status message based on the at least one indication; and

the shutdown manager is additionally configured to:

receive the at least one status message; and

provide the at least one second command based on the at least status message received.

15. A computer program product comprising a computer useable medium having computer readable program code embodied therein for updating servers, the computer program product comprising computer readable program code devices configured to cause a computer to:

allocate each of the plurality of servers to various ones of a plurality of groups, each server having at least one type, each group comprising, for at least one of the at least one type, fewer than all of the servers having a same type;

select at least one first group of the plurality of groups;

identify a status related to servers in the first group;

provide at least one first command to suspend directing of communications by at least one load balancer to servers in the first group, said first command not suspending the directing of communications to servers in at least one of the other groups;

update information on servers in the first group for which the directing of communications is suspended; and

based on the status identified, provide at least one second command to resume the directing of communications by the at least one load balancer to at least one of the servers containing updated information in the first group.

16. The computer program product of claim 15 , wherein to suspend directing of communications, the computer readable program code devices are configured to cause the computer to:

identify a type of load balancer;

retrieve the at least one first command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

provide to the identified type of load balancer the at least one first command retrieved.

17. The computer program product of claim 15 , additionally comprising computer readable program code devices configured to cause the computer to suspend the directing of new connections by at least one load balancer to servers in the first group.

18. The computer program product of claim 17 , wherein to suspend the directing of new connections by at least one load balancer, the computer readable program code devices are configured to cause the computer to:

identify a type of load balancer;

retrieve at least one suspension command from a set of commands for a plurality of types of load balancers based on the identified type of load balancer; and

provide the at least one suspension command retrieved to the identified type of load balancer.

19. The computer program product of claim 15 , additionally comprising computer readable program code devices configured to cause the computer to:

select a second group different from the first group;

identify a status related to servers in the second group;

provide at least one third command to suspend directing of communications by at least one load balancer to servers in the second group, said third command not suspending the directing of communications to servers in at least one of the other groups;

update information at servers in the second group for which the directing of communications is suspended; and

based on the status identified, provide at least one fourth command to resume the directing of communications by the at least one load balancer to at least one of the servers containing updated information in the second group.

20. The computer program product of claim 8 , additionally comprising computer readable program code devices configured to cause the computer to:

receive at least one indication regarding a success of the update; and

resume the directing of communication additionally based on the indicated success.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
MERGER Recorded Apr 25, 2005
From: MARIMBA, INC.
To: BMC SOFTWARE, INC.
Reel/Frame 015942/0420 →