Highly available servers

US9742676B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9742676-B2
Application numberUS-201213489965-A
CountryUS
Kind codeB2
Filing dateJun 6, 2012
Priority dateJun 6, 2012
Publication dateAug 22, 2017
Grant dateAug 22, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for maintaining high availability servers are disclosed. For example, a method comprises the following steps. One or more client requests are provided to a first server for execution therein. The one or more client requests are also provided to a second server for storage therein. In response to the first server failing, the second server is configured to execute at least one client request of the one or more client requests provided to the first server and the second server that is not properly executed by the first server.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: assigning, by a load balancer, one or more identifiers to one or more client requests, wherein the one or more identifiers comprise one or more monotonically increasing sequence numbers; providing, by the load balancer, the one or more client requests to a first server for execution therein; providing, by the load balancer, the one or more client requests to a second server for storage therein before failure of the first server; and receiving, by the load balancer, at least one reply corresponding to each client request executed by the first server, wherein each reply comprises the sequence number assigned to a corresponding client request, and wherein the one or more client requests executed by the first server are periodically identified by the first server updating a current sequence number stored in a shared memory external to the load balancer that is accessible by the first server and the second server; wherein, in response to the first server failing, the second server is configured to execute at least one client request of the one or more client requests that has not been executed by the first server, the at least one client request being determined based on the current sequence number stored in the shared memory; wherein the current sequence number stored in the shared memory is associated with a most recent client request successfully executed by the first server; and dynamically adjusting a frequency of the first server periodically updating the current sequence number stored in the shared memory based on a threshold of available computing resources in the shared memory between at least: a first frequency wherein the current sequence number is updated in the shared memory after all messages in a single client request are successfully executed; and a second frequency wherein the current sequence number is updated in the shared memory after all messages in at least two different client requests are successfully executed by the first server. 2. The method of claim 1 , wherein each of the one or more client requests is sent from a client. 3. The method of claim 1 , further comprising the load balancer using the one or more identifiers to keep track of which of the one or more client requests have resulted in replies sent to one or more clients which sent the one or more client requests. 4. The method of claim 3 , further comprising in response to the load balancer receiving a reply corresponding to a request of the one or more client requests which has not resulted in a reply sent to a client which sent the client request, sending the reply to the client which sent the client request. 5. The method of claim 3 , further comprising in response to the load balancer receiving a second reply corresponding to a client request of the one or more client requests which has already resulted in a reply sent to a client which sent the client request, ignoring the second reply. 6. The method of claim 1 , wherein the shared memory comprises a coupling facility. 7. The method of claim 1 , further comprising utilizing the first frequency in response to the available computing resources exceeding a threshold value. 8. The method of claim 1 , further comprising utilizing the second frequency in response to the available computing resources falling below a threshold value. 9. An article of manufacture comprising a computer readable storage device for storing computer readable program code which, when executed, causes a computer to perform the steps of claim 1 . 10. A system comprising: a memory; and a load balancer comprising a processor device operatively coupled to the memory and configured to: assign one or more identifiers to one or more client requests, wherein the one or more identifiers comprise one or more monotonically increasing sequence numbers; provide the one or more client requests to a first server for execution; provide the one or more client requests to a second server for storage therein before failure of the first server; and receive at least one reply corresponding to each client request executed by the first server, wherein each reply comprises the sequence number assigned to a corresponding client request, and wherein the one or more client requests executed by the first server are periodically identified by the first server updating a current sequence number stored in a shared memory external to the load balancer that is accessible by the first server and the second server; wherein, in response to the first server failing, the second server is configured to execute at least one client request of the one or more client requests that has not been executed by the first server, the at least one client request being determined based on the current sequence number stored in the shared memory; wherein the current sequence number stored in the shared memory is associated with a most recent client request successfully executed by the first server; and the system being configured to dynamically adjust a frequency of the first server periodically updating the current sequence number stored in the shared memory based on a threshold of available computing resources in the shared memory between at least: a first frequency wherein the current sequence number is updated in the shared memory after all messages in a single client request are successfully executed; and a second frequency wherein the current sequence number is updated in the shared memory after all messages in at least two different client requests are successfully executed by the first server. 11. In a system comprised of at least one client sending client requests to a cluster of servers wherein the cluster of servers is comprised of a load balancer and at least two servers, a method for processing requests comprising the steps of: the load balancer assigning one or more identifiers to a plurality of client requests, wherein the one or more identifiers comprise one or more monotonically increasing sequence numbers; a first server of the cluster of servers receiving the plurality of client requests from the load balancer and attempting to execute each client request of the plurality of requests; a second server of the cluster of servers receiving the plurality of requests from the load balancer and storing the plurality of requests before failure of the first server; the first server sending at least one reply corresponding to each client request executed by the first server, wherein each reply comprises the sequence number assigned to a corresponding client request, and wherein the one or more client requests executed by the first server are periodically identified by the first server updating a current sequence number stored in a shared memory external to the load balancer that is accessible by the first server and the second server; and in response to the first server failing, the second server executing at least one client request of the plurality of client requests that has not been executed by the first server, the at least one request being determined based on the current sequence number stored in the shared memory; wherein the current sequence number stored in the shared memory is associated with a most recent client request successfully executed by the first server; and dynamically adjusting a frequency of the first server periodically updating the current sequence number stored in the shared memory based on a threshold of available computing resources in the shared memory between at least: a first frequency wherein the current sequence number is updated in the shared memory after all messages in a single client request are successfully executed; and a second

Assignees

Inventors

Classifications

  • H04L69/40Primary

    for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06) · CPC title

  • H04L47/125Primary

    by balancing the load, e.g. traffic engineering · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9742676B2 cover?
Techniques for maintaining high availability servers are disclosed. For example, a method comprises the following steps. One or more client requests are provided to a first server for execution therein. The one or more client requests are also provided to a second server for storage therein. In response to the first server failing, the second server is configured to execute at least one client …
Who is the assignee on this patent?
Du Juan, Iyengar Arun K, Su Gong, and 1 more
What technology area does this patent fall under?
Primary CPC classification H04L69/40. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 22 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).