IP Library Granted Patent US 9,667,750
Granted Patent B2
US 9,667,750 · App. 15/299,633 · Granted May 30, 2017

Client-initiated leader election in distributed client-server systems

Inventors: Yogesh A. Bute (Pune, IN); Hemant K. Shukla (Jabalpur, IN); Vinod K. Srivastava (Pune, IN); Sandip P. Thube (Pune, IN); Dharmesh V. Vadgama (Pune, IN)
Assignee: International Business Machines Corporation
H04L67/42H04L43/10H04L67/10H04L67/2842
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 9,667,750
App. No.
15/299,633
Granted
May 30, 2017
Kind
B2
Abstract

A method for a client-initiated leader election in a distributed system including receiving a master listener election request by at least one listener of a plurality of listeners in the distributed system, arranging a list of configured listeners in a descending priority order, the list of configured listeners comprises one or more listeners of the plurality of listeners set for connection, selecting a listener with a highest priority from the list of configured listeners, determining an availability of the selected listener, verifying a connectivity to the selected listener using a ping utility program, assigning the selected listener as a master listener based on the connectivity, and connecting to the master listener.

Claims (12)

1. A computer system for a client-initiated leader election in a distributed client server computing system comprising a plurality of server computers and a client computer, the computer system comprising:

one or more hardware computer processors, one or more computer-readable storage media, and program instructions stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

program instructions to establish a connection between a first server computer of the plurality of server computers and the client computer;

program instructions to receive, by the first server computer, a master server election request from the client computer;

program instructions to determine if one of the plurality of server computers is designated as a master server in a master server cache by reading a system configuration of the distributed client server computing system in response to receiving the master server election request from the client computer, wherein the master server cache stores information designating one of the plurality of server computers as the master server;

program instructions to obtain a list of the plurality of server computers from a configuration management system in response to no one server computer of the plurality of server computers being designated as the master server in the master server cache;

program instructions to arrange the list of the plurality of server computers in a descending order based on a predetermined priority of each server computer to become the master server;

program instructions to verify connectivity to a second server computer of the plurality of server computers by sending a test message to the second server computer using a ping utility program, wherein the second server computer is one of the plurality of server computers on the list having the highest priority;

program instructions to designate the second server computer as the master server in response to verifying connectivity to the second server computer by updating the master server cache;

program instructions to update system configuration and notifying all of the plurality of server computers of the distributed client server computing system of the designation of the second server computer as the master server by sending a heartbeat message to each of the plurality of server computers;

program instructions to send a response message to the client computer comprising information about the designation of the second server computer as the master server; and

program instructions to establish a connection between the master server and the client computer, wherein the master server receives future requests from the client computer, forwards future requests received form the client computer onto an appropriate server computer of the plurality of server computers, and manages load balancing among all of the plurality of server computers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: ELPIS TECHNOLOGIES INC.
Reel/Frame 052561/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2016
From: BUTE, YOGESH A.; SHUKLA, HEMANT K.; SRIVASTAVA, VINOD K.; THUBE, SANDIP P.; VADGAMA, DHARMESH V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040083/0675 →
Continuity (3)
Continuation 15132394 · Apr 19, 2016
Continuation 14847051 · Sep 8, 2015
Related Publication 20170070599A1 · Mar 9, 2017