IP Library Granted Patent US 10,972,353
Granted Patent B1
US 10,972,353 · App. 16/836,425 · Granted Apr 6, 2021

Identifying change windows for performing maintenance on a service

Inventors: Sudhir Sangra (Pune, IN); Eric Michael Anderson (Friendswood, TX); Pravin Mahadeo Gole (Pune, IN); Anil Chandrakant Sogam (Pune, IN)
Assignee: BMC Software, Inc.
H04L41/0893G06F16/2474H04L41/22H04L43/045H04L43/065H04L43/067
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 10,972,353
App. No.
16/836,425
Granted
Apr 6, 2021
Kind
B1
Abstract

Systems and techniques for identifying a common change window for one or more services implemented on one or more hosts include querying time series performance data for each host of a service to identify time slots of low resource consumption on the host, annotating the time slots with service tags, where the service tags identify host information and service information, creating groups of time slots using the service tags, using dynamic clustering to create clusters of hosts using the groups of time slots, and generating at least one common change window by eliminating duplicate hosts from the clusters of the hosts.

Claims (64)

1. A computer-implemented method for identifying a common change window for one or more services implemented on one or more hosts, the computer-implemented method comprising:

querying time series performance data for each host of a service to identify time slots of low resource consumption on the host;

annotating the time slots with service tags, wherein the service tags identify host information and service information;

creating groups of time slots using the service tags;

using dynamic clustering to create clusters of hosts using the groups of time slots; and

generating at least one common change window by eliminating duplicate hosts from the clusters of the hosts.

2. The computer-implemented method as in claim 1 , further comprising enabling selection of the at least one common change window via a graphical user interface on a display.

3. The computer-implemented method as in claim 1 , further comprising monitoring each of the hosts and collecting the time series performance data from each of the hosts over a network, wherein the time series performance data includes the resource consumption on the host.

4. The computer-implemented method as in claim 1 , wherein creating the groups of time slots comprises creating the groups of time slots for each service utilizing at least one of the hosts.

5. The computer-implemented method as in claim 1 , wherein using dynamic clustering to create the clusters of hosts comprises:

selecting an initial host and creating initial clusters of time slots for the initial host;

adding other hosts to the initial clusters of time slots when a distance between time slots for the other hosts and the initial clusters of time slots are within a threshold distance; and

creating and adding new time slots to the initial clusters of time slots when the distance between the time slots for the other hosts and the initial clusters of time slots exceed the threshold distance.

6. The computer-implemented method as in claim 1 , wherein generating the at least one common change window comprises:

calculating a weight of each cluster using a count of hosts in each cluster; and

for the duplicate hosts in multiple clusters, removing the duplicate hosts from the clusters of the hosts having a lowest weight.

7. The computer-implemented method as in claim 1 , wherein generating the at least one common change window comprises:

assigning a host weight to each host based on a criticality of the host within the service;

calculating a weight for each cluster using a sum of the host weights; and

for the duplicate hosts in multiple clusters, removing the duplicate hosts from the clusters of the hosts having a lowest weight.

8. A computer program product for identifying a common change window for one or more services implemented on one or more hosts, the computer program product being tangibly embodied on a non-transitory computer-readable medium and including executable code that, when executed by at least one computing device, is configured to cause the at least one computing device to:

query time series performance data for each host of a service to identify time slots of low resource consumption on the host;

annotate the time slots with service tags, wherein the service tags identify host information and service information;

create groups of time slots using the service tags;

use dynamic clustering to create clusters of hosts using the groups of time slots; and

generate at least one common change window by eliminating duplicate hosts from the clusters of the hosts.

9. The computer program product of claim 8 , further comprising executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to enable selection of the at least one common change window via a graphical user interface on a display.

10. The computer program product of claim 8 , further comprising executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to monitor each of the hosts and collect the time series performance data from each of the hosts over a network, wherein the time series performance data includes the resource consumption on the host.

11. The computer program product of claim 8 , wherein the executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to create the groups of time slots comprises executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to create the groups of time slots for each service utilizing at least one of the hosts.

12. The computer program product of claim 8 , wherein the executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to use dynamic clustering to create the clusters of hosts comprises executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to:

select an initial host and creating initial clusters of time slots for the initial host;

add other hosts to the initial clusters of time slots when a distance between time slots for the other hosts and the initial clusters of time slots are within a threshold distance; and

create and add new time slots to the initial clusters of time slots when the distance between the time slots for the other hosts and the initial clusters of time slots exceed the threshold distance.

13. The computer program product of claim 8 , wherein the executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to generate the at least one common change window comprises executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to:

calculate a weight of each cluster using a count of hosts in each cluster; and

for the duplicate hosts in multiple clusters, remove the duplicate hosts from the clusters of the hosts having a lowest weight.

14. The computer program product of claim 8 , wherein the executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to generate the at least one common change window comprises executable code that, when executed by the at least one computing device, is configured to cause the at least one computing device to:

assign a host weight to each host based on a criticality of the host within the service;

calculate a weight for each cluster using a sum of the host weights; and

for the duplicate hosts in multiple clusters, remove the duplicate hosts from the clusters of the hosts having a lowest weight.

15. A system for identifying a common change window for one or more services implemented on one or more hosts, the system comprising:

at least one memory including instructions; and

at least one processor that is operably coupled to the at least one memory and that is arranged and configured to execute instructions that, when executed, cause the at least one processor to implement an application, the application comprising:

an analysis module that is configured to

query time series performance data for each host of a service to identify time slots of low resource consumption on the host, and

annotate the time slots with service tags, wherein the service tags identify host information and service information;

a grouping module that is configured to create groups of time slots using the service tags; and

a cluster module that is configured to

use dynamic clustering to create clusters of hosts using the groups of time slots, and

generate at least one common change window by eliminating duplicate hosts from the clusters of the hosts.

16. The system of claim 15 , further comprising a graphical user interface on a display that is configured to enable selection of the at least one common change window.

17. The system of claim 15 , further comprising a monitoring module that is configured to monitor each of the hosts and collect the time series performance data from each of the hosts over a network, wherein the time series performance data includes the resource consumption on the host.

18. The system of claim 15 , wherein the grouping module is configured to create the groups of time slots for each service utilizing at least one of the hosts.

19. The system of claim 15 , wherein the cluster module is configured to:

select an initial host and creating initial clusters of time slots for the initial host;

add other hosts to the initial clusters of time slots when a distance between time slots for the other hosts and the initial clusters of time slots are within a threshold distance; and

create and add new time slots to the initial clusters of time slots when the distance between the time slots for the other hosts and the initial clusters of time slots exceed the threshold distance.

20. The system of claim 15 , wherein the cluster module is configured to:

calculate a weight of each cluster using a count of hosts in each cluster; and

for the duplicate hosts in multiple clusters, remove the duplicate hosts from the clusters having a lowest weight.

21. The system of claim 15 , wherein the cluster module is configured to:

assign a host weight to each host based on a criticality of the host within the service;

calculate a weight for each cluster using a sum of the host weights; and

for the duplicate hosts in multiple clusters, remove the duplicate hosts from the clusters having a lowest weight.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
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 →
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 →
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: COMPUWARE CORPORATION; BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053467/0434 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: SANGRA, SUDHIR; ANDERSON, ERIC MICHAEL; GOLE, PRAVIN MAHADEO; SOGAM, ANIL CHANDRAKANT
To: BMC SOFTWARE, INC.
Reel/Frame 052393/0891 →
Cited By (1)
US 12,463,886