IP Library Granted Patent US 10,171,596
Granted Patent B2
US 10,171,596 · App. 15/287,151 · Granted Jan 1, 2019

Automatic server cluster discovery

Inventors: Eyal Koren (Dafna, IL); Nitsan Daniel Lavie (Kibutz Kfar Szold, IL); Sergey Kleyman (Kiryat Shmona, IL)
Assignee: BMC Software, Inc.
H04L67/16G06F9/5061H04L41/0893H04L67/146G06F2209/505H04L67/02
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,171,596
App. No.
15/287,151
Granted
Jan 1, 2019
Kind
B2
Abstract

Systems and methods provide automatic discovery of cluster membership based on transaction processing. An example method includes, at a source node of a first tier of nodes, generating a service identifier for a transaction that requests a service hosted by a second tier, the service identifier being based on a logical identifier for the second tier. The method also includes sending the transaction, including the service identifier, from the source node to the service hosted by the second tier. The method includes, at a destination node in the second tier, obtaining the service identifier from the transaction and reporting the service identifier with a destination node identifier to a visibility server as cluster information. The method also includes, at the visibility server, receiving cluster information from a plurality of destination nodes and assigning each of the plurality of destination nodes to a cluster based on the service identifiers.

Claims (68)

1. A method operating in a distributed computing system, the distributed computing system including a plurality of nodes, the method comprising:

generating, by a first visibility agent servicing a source node of a first tier of nodes of the plurality of nodes, a service identifier for a transaction, the transaction requesting a service hosted by a second tier of nodes of the plurality of nodes, the service identifier being based on a logical identifier for the second tier;

including, by the first visibility agent, the service identifier in transaction information for the transaction;

sending the transaction, including the transaction information, from the source node to the service hosted by the second tier;

at a second visibility agent servicing a destination node in the second tier:

obtaining the service identifier from the transaction information, and

reporting the service identifier with an identifier for the destination node to a visibility server as cluster information; and

at the visibility server:

receiving cluster information from a plurality of destination nodes, and

assigning each of the plurality of destination nodes to a cluster based on the service identifier in the cluster information.

2. The method of claim 1 , wherein the service identifier is a first service identifier and the method further comprises:

at the second visibility agent servicing the destination node in the second tier, a second service identifier for the transaction, the transaction calling a second service hosted by a third tier of nodes of the plurality of nodes, the second service identifier being based on a logical identifier for the third tier;

replacing the first service identifier with the second service identifier in the transaction information;

sending the transaction, including the transaction information, to the second service hosted by the third tier; and

at a third visibility agent servicing a second destination node in the third tier:

obtaining the second service identifier from the transaction information, and

reporting the second service identifier with an identifier for the second destination node to the visibility server.

3. The method of claim 1 , wherein the first tier represents a web service, the service identifier is a second service identifier, and the method further comprises, prior to generating the second service identifier:

generating, by the first visibility agent, a first service identifier for the transaction, the first service identifier being a logical identifier for the first tier; and

reporting, by the first visibility agent, the first service identifier and an identifier for the source node to the visibility server.

4. The method of claim 3 , wherein generating the first service identifier includes:

setting the first service identifier based on metadata in a Hyper-Text Transfer Protocol request for the transaction.

5. The method of claim 1 , wherein reporting the service identifier occurs responsive to determining that the service identifier is new to the destination node.

6. The method of claim 1 , wherein reporting the service identifier occurs responsive to determining that a period of time since a previous reporting has elapsed.

7. The method of claim 6 , wherein the method further comprises, at the visibility server:

determining that a third node is currently assigned to a second cluster;

determining that at the third node has not reported the service identifier for the second cluster within a predetermined amount of time; and

removing the assignment of the third node to the second cluster.

8. The method of claim 1 , wherein generating the service identifier includes:

generating the service identifier from a host and a port for the service.

9. The method of claim 1 , wherein generating the service identifier includes:

generating the service identifier from a host, port, and path for the service.

10. The method of claim 1 , wherein generating the service identifier includes:

generating the service identifier from a hash of the host.

11. The method of claim 1 , wherein generating the service identifier includes:

generating the service identifier from a message queue used by the service.

12. A system comprising:

a plurality of nodes in a distributed computing system, each node being associated with a service of at least two services, the at least two services being executed during a transaction initiated by a web browser, at least a first node in the distributed computing environment being deployed on a server, the server including:

at least one processor, and

a visibility agent including instructions that, when executed by the at least one processor, causes the visibility agent to perform operations including:

obtaining a first service identifier from information included in the transaction as the transaction arrives at the node,

generating a second service identifier for a service called from the node as part of the transaction,

including the second service identifier in information provided to a second service as part of the transaction, and

providing the first service identifier and a node identifier for the node to a visibility server; and

the visibility server, the visibility server including:

at least one processor, and

memory storing instructions that, when executed by the at least one processor, causes the visibility server to perform operations including:

receiving the service identifiers and node identifiers from the plurality of nodes, and

assigning each of the plurality of nodes to a cluster based on the received service identifiers.

13. The system of claim 12 , wherein the second service identifier is based on a host and port for the service called from the node.

14. The system of claim 12 , wherein generating the second service identifier includes:

setting the second service identifier using a message queue used by the service called from the node.

15. The system of claim 12 , wherein obtaining the first service identifier includes:

setting the first service identifier using metadata in a Hyper-Text Transfer Protocol request for the transaction.

16. The system of claim 12 , wherein obtaining the first service identifier includes:

obtaining the first service identifier from a transaction tag added to the transaction by another visibility agent.

17. The system of claim 16 , wherein including the second service identifier in information provided to a second service includes:

replacing the first service identifier in the transaction tag with the second service identifier prior to providing the information to the second service.

18. The system of claim 12 , wherein providing the first service identifier and the node identifier to the visibility server includes:

determining that the first service identifier is new to the node; and

providing the first service identifier responsive to the determining.

19. The system of claim 12 , wherein providing the first service identifier and the node identifier to the visibility server includes:

determining that a predetermined amount of time since a last providing has elapsed; and

providing the first service identifier responsive to the determining.

20. A method comprising:

receiving, at a visibility server, a service identifier and a node identifier pair from each of a plurality of nodes in a distributed computing system, each node of the plurality of nodes being assigned to a service tier, the service tier being callable by a client, a respective service identifier and node identifier pair for a node being generated by a visibility agent executing on the node and being sent to the visibility server by the visibility agent, the service identifier being based on a logical identifier for the node that represents how the node is seen by the calling client;

assigning each of the plurality of nodes to a cluster of a plurality of clusters based on the service identifier; and

using the plurality of clusters in impact analysis modeling.

Assignments (15)
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 (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 →
SECURITY INTEREST Recorded Sep 10, 2019
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 050327/0634 →
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 INTEREST Recorded Aug 10, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043514/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: KOREN, EYAL; LAVIE, NITSAN DANIEL; KLEYMAN, SERGEY
To: BMC SOFTWARE, INC.
Reel/Frame 040019/0803 →
Continuity (1)
Related Publication 20180103110A1 · Apr 12, 2018