Abstract: ABSTRACT Title: LOAD BALANCING SERVER FREE SCALABLE LOAD BALANCED MULTI-SERVER COMPUTING SYSTEM. The present invention discloses a scalable load balanced server based computing system. The system of the present invention comprises multiple servers of varying task processing and computing load bearing capabilities. The servers are selectively integrated to enable self distribution of the tasks to be processed and assigned to the computing system among them ensuring optimal resource utilization, faster response time and fault tolerant computing load balanced operation without involving any external computing load balancing server.
DESC:FIELD OF THE INVENTION:
The present invention relates to developing load balanced computing environment. More specifically, the present invention is directed to develop a load balanced server based computing system which can balance or distribute computation load among its member servers free of any external load balancing server.
BACKGROUND OF THE INVENTION:
In a scalable server based computing environment, computing load is systematically distributed across multiple servers of the computing environment. In such distribution, the computing load can be grouped as a set of tasks which can be pre-defined or can be introduced one by one as and when required.
The member servers of a server based computing environment can have varying processing capabilities but the tasks they perform could be the same, only the input datasets are different. In a load balanced system consisting of multiple member servers and a set of such tasks, the tasks are required to be distributed among the member servers ensuring optimal resource utilization and to provide fastest response time. Such load balanced systems are fault-tolerant in the sense that even if a few member servers in the server cluster fails, other member servers take up the tasks that the failed member server(s) was handling. To realize such a system, traditionally a Load balancing server is introduced in the load balanced system as an additional component.
The Load balancing server distributes the tasks among the member servers and keeps monitoring whether any member server fails. This traditional approach has following disadvantages:
1. The load balancing server becomes the single point of failure. So multiple such load balancing servers are required to provide fault-tolerance.
2. The load balancing server needs to add or remove tasks from individual member server as and when new tasks are introduced or when a new member server is introduced in the system or an existing active member server fails. This call for passing a series of messages to the member servers, failure of any of them will render the system inconsistent.
3. The whole system relies on the fact that the member servers are in constant communication with the Load balancing server so that the said Load balancing server knows whether any of the server has failed. When there is multiple Load balancing servers in fault-tolerant mode, the communication is cumbersome.
Thus there has been a need for developing a new load balanced system consisting of multiple member servers which will be free of the above stated disadvantages of the existing load balanced system.
OBJECT OF THE INVENTION:
It is thus the basic object of the present invention is to develop a load balanced server based computing system of multiple member computing servers which would be adapted to distribute the tasks to be processed and assigned to the computing system among the member computing servers ensuring optimal resource utilization, faster response time and fault tolerant computing load balanced operation without involving any additional computing load balancing server.
Another object of the present invention is to develop a load balanced server based computing system of multiple computing servers which would be adapted to avoid single point of failure while implementing computational load balancing.
Yet another object of the present invention is to develop a load balanced server based computing system of multiple member computing servers which would be adapted to accomplish the task of load balancing and fault-tolerance amongst themselves without involving any external load balancing server.
A still further object of the present is to develop a method for integration of member servers in the scalable load balanced server based computing system for self distribution of the tasks to be processed and assigned to the computing system among the member servers ensuring optimal resource utilization, faster response time and fault tolerant computing load balanced operation without involving any computing load balancing server.
SUMMARY OF THE INVENTION:
Thus according to the basic aspect of the present invention there is provided a scalable load balanced computing system comprising
a multi-server based computing system having multiple member servers of varying task processing and computing load bearing capabilities;
DBMS based memory element;
said member servers are selectively integrated via said DBMS based memory element enabling self distribution of computing tasks assigned to the multi-server based computing system among the member servers;
each of said member servers is enabled to selectively take up the computing tasks corresponding to any of the member servers which is inactive or leave the computing tasks corresponding to any of the member servers which is inactive for other member servers to take up depending on capacity and spare capacity of each member servers of the multi-server based computing system at that instant of time.
In a preferred embodiment of the present system, the member servers are selectively integrated by means of look up tables hosted in said DBMS based memory element.
In an embodiment of the present system, the member servers register themselves to the multi-server based computing system by writing an entry in first look up table of the look up tables hosted in the DBMS based memory element through sending a server signal into the DBMS based memory element;
said registering of the member servers in the multi-server based computing system enables scalability of the load balanced computing system and adding any number of the member servers.
In an embodiment of the present system, each of the member servers registered in the first look up table periodically sends the server signal into the DBMS based memory element to update timestamp field in its entry in the table, whereby changing of the timestamp field indicates the corresponding member server is active.
In an embodiment of the present system, each of the member servers is configured to take up the computing tasks for processing from queue or buffer of the computing tasks assigned to the multi-server based computing system.
In an embodiment of the present system, the periodic server signal to the DBMS based memory element includes capacity and spare capacity of corresponding member server at that instant of time enabling the first look up table to contain both the capacity of each member server and also the spare capacity of each member server at any instant of time.
In an embodiment of the present system, the member server while updating the timestamp receives a return signal from the DBMS based memory element containing information on the timestamps and the capacity of the other member servers registered in the hosted lookup table;
wherein the member server detects whether the timestamps of the other member servers have been updated or not within a predefined time period by reading the return signal and accordingly identifies the inactive member servers; and
wherein that member server determines through reading of the return signal by means of an automated process implemented in the same server whether it should take up any further computing task corresponding to any of the member servers which is inactive or leave the computing tasks corresponding to any of the member servers which is inactive for other member servers to take up.
In an embodiment of the present system, the DBMS based memory element hosts a second look up table to store the computing tasks for accessing by the member servers, whereby with assignment of new computing task, it is entered in the second look up table and the member servers while updating their respective timestamps, finds it and one of them take up the new task by reading the return signal.
In an embodiment of the present system, the automated process implemented in the member server which facilities the server to take up or leave the computing tasks includes a Self-Task-Assigner unit which configured to
periodically read the first look up table and updates the timestamp field of the entry corresponding to its server identification with current server time;
identifying the timestamps which differ by a pre-defined unit from the current server time which signifies that the corresponding member server is not active or unserviceable;
updating the second look up table by setting the Assigned/Not assigned field for all the tasks to Not assigned, where corresponding task performing server identification matches with the unserviceable server’s identification;
calculating fitness measure from the return signal by Fi= [(Spare capacity)/(total Capacity)]*100 for each member servers, and FBEST = Min of all Fi, where Fi is the fitness measure of the server listed in ith row of the first look up table;
updating the second look up table by setting the Not assigned tasks for the Self-Task-Assigner’s own member server if its spare capacity matches to the FBEST.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS:
Figure 1 shows look up table based computing load balancing operation of the member servers of the server based computing system consisting of multiple servers of varying task processing and computing load bearing capabilities in accordance with an embodiment of the present invention.
Figure 2 depicts a single server based task processing system as used traditionally
Figure 3 depicts the scenario when the task processing system consists of more than one server is a distributed computing framework using a Load balancing server.
Figure 4 depicts the proposed system consisting of multiple member servers in a distributed computing environment without Load balancing server.
DESCRIPTION OF THE INVENTION WITH REFERENCE TO THE ACCOMPANYING DRAWINGS:
As stated hereinbefore, the present invention discloses a server based computing system consisting of multiple member servers of varying task processing and computing load bearing capabilities wherein the tasks to be processed by the computing system are distributed among the member servers of the computing system ensuring optimal resource utilization, faster response time and fault tolerant computing load balanced operation without involving any computing load balancing server. More specifically, the present invention is directed to develop a scalable load balanced server based computing system which is free of any load balancing server and configured to distribute its assigned computing load among its member servers including execution of the fault-tolerant operation wherein a few member servers in the system fails, other operative member servers of the system take up the tasks that the failed member server(s) was handling.
The integration of the member servers in the scalable load balanced server based computing system of the present invention and their method of operation eliminates the need for the load balancing server. In the present system, the individual task processing member servers use a combination of two numbers of Look up tables (first table 01 and second table 02 as shown in figure 1) to accomplish the task of load balancing and fault-tolerance. The Look up tables can be hosted in a Database management system (DBMS) based memory element which is anyway a part of most of multi-server based systems. As the DBMS system usually runs in High Availability mode and it has standard SQL commands for interactions, it is a trivial task to upgrade a system to a fault tolerant and scalable system.
Any single server system can be converted to a multi-server system without much overhead to any centralized component e.g. a Load balancing server using this configuration. In the present system, the cluster of the task processing servers establishes a virtual communication within the members by means of look up tables only. Also, the servers need not know how many servers are present in the system, as in case of the traditional system (Fig 2), where the Load balancing server needs to know the details (e.g. IP-address, communication protocol, etc) of each and every server to assign tasks to them.
The servers that take part in the task processing (Task processing servers) register themselves to the system by writing an entry in the first Look up table 01 through sending a server signal into the DBMS based memory element. The registering of the member servers in the multi-server based computing system facilitates scalability of the load balanced computing system and enables adding of any number of the member servers.
In the present system, for each such Task processing member server there is one and only one entry in the table. Periodically every member server keep on announcing its presence by periodically sending the server signal updating timestamp field in its entry in the first look up table, say every 2 seconds. Effectively, the timestamp field in the row goes on changing if the server is active.
Instead of a Load balancing server pushing the tasks to the task processing servers, the servers themselves are responsible to remove tasks from the queue or buffer in the proposed configuration (Figure 4). Each of the member servers while updating the timestamp in the table also receives a return signal from the DBMS based memory element containing information on the timestamps and the capacity of the other member servers registered in the hosted lookup table and as stored in the said table. By reading the return signal, the server come to know whether the timestamps of the other have been updated or not within a predefined time period, thus identifying which servers are active and which are not, respectively. As the table contains both the capacity of each server and also the spare capacity of each server at any instant of time (which all the member servers have forwarded via the periodic signal while registering themselves) which is forwarded via the return signal, the member server can well judge through reading of the return signal by means of an automated process developed and implemented in the same member server and whether it should take up any further computing task corresponding to any of the member servers which is inactive or leave the computing tasks corresponding to any of the member servers which is inactive for other member servers to take up. In case of a tie, the member servers with least server identification (server-ID) can take up the next task from the queue to break the tie.
In another configuration, a second look up table (Look up table 2) in introduced. In such cases, the tasks are predefined. There can be variable number of input data sources and each server at a particular instant of time serves a set of input data sources. As for example, there could be multiple numbers of Video sources, like IP-cameras, and the task is to analyse the video frames to extract actionable information from them. Once a member server knows video source URL (Uniform resource locator) it can receive the video from the IP-camera and carry on its predefined tasks. Such identification of video source is termed as Task-ID in the present description. In such system the proposed configuration of the member servers can be used for effective load balancing without introducing any additional Load balancer. Whenever a new video source is added to the system, the URL of the said video source is entered in Look up table 2. Either the video source itself or any other component in the system can store this Task-ID (e.g URL). Whenever a new entry is added to the table corresponding to a new video source, the servers while updating their respective timestamps, finds it and one of them assigns the task for this new video source to itself based on its current load and capacity and also knowing the same for other servers from Look up table 1 (as already described above).
If any member server finds that a particular member server is inactive (by knowing its last updated timestamp in the Look up table 1), it marks the Task-IDs corresponding to the failed member server as “unassigned”/”Not assigned”. Through the mechanism as described above, the tasks will be automatically shared by the member servers in the cluster without any involvement of some other component, e.g a Load balancing server.
The Look up table based operation of the member servers of the present system is illustrated in the accompanying figure 1 and also in figure 2. As shown in the referred figure 1, the member servers periodically updates their heartbeat time-stamped signal details in Look up table 01 which also shows the remaining load sharing capacity of individual member servers which the member servers themselves have stored when they self-registered themselves in the system.
The member servers continuously monitors Look up table 02 to find whether any new task is assigned to the computing system and then consults the Look up table 01 to find, based on an algorithm and corresponding computer program product embodied in the member servers, whether a particular member server should take up the task.
The automated process implemented in the member server which facilities the server to take up or leave the computing tasks includes a Self-Task-Assigner unit is configured to execute the following activities:
periodically reading the first look up table and updates the timestamp field of the entry corresponding to its server identification with current server time;
identifying the timestamps which differ by a pre-defined unit from the current server time which signifies that the corresponding member server is not active or unserviceable;
updating the second look up table by setting the Assigned/Not assigned field for all the tasks to Not assigned, where corresponding task performing server identification matches with the unserviceable server’s identification;
calculating fitness measure from the return signal by Fi= [(Spare capacity)/(total Capacity)]*100 for each member servers, and FBEST = Min of all Fi, where Fi is the fitness measure of the server listed in ith row of the first look up table;
updating the second look up table by setting the Not assigned tasks for the Self-Task-Assigner’s own member server if its spare capacity matches to the FBEST.
,CLAIMS:WE CLAIM:
1. A scalable load balanced computing system comprising
a multi-server based computing system having multiple member servers of varying task processing and computing load bearing capabilities;
DBMS based memory element;
said member servers are selectively integrated via said DBMS based memory element enabling self distribution of computing tasks assigned to the multi-server based computing system among the member servers;
each of said member servers is enabled to selectively take up the computing tasks corresponding to any of the member servers which become inactive or which leave the computing tasks depending on capacity and spare capacity of each member servers of the multi-server based computing system at that instant of time.
2. The system as claimed in claim 1, wherein the member servers are selectively integrated by means of look up tables hosted in said DBMS based memory element.
3. The system as claimed in claim 1 or 2, wherein the member servers register themselves to the multi-server based computing system by writing an entry in first look up table of the look up tables hosted in the DBMS based memory element through sending a server signal into the DBMS based memory element;
said registering of the member servers in the multi-server based computing system enables scalability of the load balanced computing system and adding any number of the member servers.
4. The system as claimed in anyone of the claims 1 to 3, wherein each of the member servers registered in the first look up table periodically sends the server signal into the DBMS based memory element to update timestamp field in its entry in the look up table, whereby changing of the timestamp field indicating that the corresponding member server is active.
5. The system as claimed in anyone of the claims 1 to 4, wherein each of the member servers is configured to take up the computing tasks for processing from queue or buffer of the computing tasks assigned to the multi-server based computing system.
6. The system as claimed in anyone of the claims 1 to 5, wherein the periodic server signal to the DBMS based memory element includes capacity and spare capacity of corresponding member server at that instant of time enabling the first look up table to contain both the capacity of each member server and also the spare capacity of each member server at any instant of time.
7. The system as claimed in anyone of the claims 1 to 6, wherein the member server while updating the timestamp receives a return signal from the DBMS based memory element containing information on the timestamps and the capacity of the other member servers registered in the hosted lookup table;
wherein the member server detects whether the timestamps of the other member servers have been updated or not within a predefined time period by reading the return signal and accordingly identifies the inactive member servers; and
wherein that member server determines through reading of the return signal, the said return signal includes the spare capacity of each of the member servers, by means of an automated process implemented in the same server whether it should take up any further computing task corresponding to any of the member servers which is inactive or leave the computing tasks corresponding to any of the member servers which is inactive for other member servers to take up.
8. The system as claimed in anyone of the claims 1 to 7, wherein the DBMS based memory element hosts a second look up table to store the computing tasks for accessing by the member servers, whereby with assignment of new computing task, it is entered in the second look up table and the member servers while updating their respective timestamps, finds it and one of them take up the new task by reading the return signal.
9. The system as claimed in anyone of the claims 1 to 8, wherein the automated process implemented in the member server which facilities the server to take up or leave the computing tasks includes a Self-Task-Assigner unit which configured to periodically read the first look up table and updates the timestamp field of the entry corresponding to its server identification with current server time;
identifying the timestamps which differ by a pre-defined unit from the current server time which signifies that the corresponding member server is not active or unserviceable;
updating the second look up table by setting the Assigned/Not assigned field for all the tasks to Not assigned, where corresponding task performing server identification matches with the unserviceable server’s identification;
calculating fitness measure from the return signal by Fi= [(Spare capacity)/(total Capacity)]*100 for each member servers, and FBEST = Min of all Fi, where Fi is the fitness measure of the server listed in ith row of the first look up table;
updating the second look up table by setting the Not assigned tasks for the Self-Task-Assigner’s own member server if its spare capacity matches to the FBEST.
Dated this 22nd day of March, 2019 Anjan Sen
Of Anjan Sen & Associates
(Applicants Agent)
IN/PA-199
| Section | Controller | Decision Date |
|---|---|---|
| Section 15 and 43 | Vikas Gupta | 2025-08-12 |
| Section 15 and 43 | Vikas Gupta | 2025-08-12 |
| Section 15 and 43 | Vikas Gupta | 2025-08-12 |
| # | Name | Date |
|---|---|---|
| 1 | 201831007194-STATEMENT OF UNDERTAKING (FORM 3) [26-02-2018(online)].pdf | 2018-02-26 |
| 2 | 201831007194-PROVISIONAL SPECIFICATION [26-02-2018(online)].pdf | 2018-02-26 |
| 3 | 201831007194-FORM 1 [26-02-2018(online)].pdf | 2018-02-26 |
| 4 | 201831007194-DRAWINGS [26-02-2018(online)].pdf | 2018-02-26 |
| 5 | 201831007194-FORM-26 [23-05-2018(online)].pdf | 2018-05-23 |
| 6 | 201831007194-Proof of Right (MANDATORY) [18-08-2018(online)].pdf | 2018-08-18 |
| 7 | 201831007194-PostDating-(25-02-2019)-(E-6-9-2019-KOL).pdf | 2019-02-25 |
| 8 | 201831007194-APPLICATIONFORPOSTDATING [25-02-2019(online)].pdf | 2019-02-25 |
| 9 | 201831007194-ENDORSEMENT BY INVENTORS [22-03-2019(online)].pdf | 2019-03-22 |
| 10 | 201831007194-DRAWING [22-03-2019(online)].pdf | 2019-03-22 |
| 11 | 201831007194-COMPLETE SPECIFICATION [22-03-2019(online)].pdf | 2019-03-22 |
| 12 | 201831007194-FORM 18 [31-12-2021(online)].pdf | 2021-12-31 |
| 13 | 201831007194-FER.pdf | 2022-07-04 |
| 14 | 201831007194-RELEVANT DOCUMENTS [03-01-2023(online)].pdf | 2023-01-03 |
| 15 | 201831007194-POA [03-01-2023(online)].pdf | 2023-01-03 |
| 16 | 201831007194-OTHERS [03-01-2023(online)].pdf | 2023-01-03 |
| 17 | 201831007194-MARKED COPIES OF AMENDEMENTS [03-01-2023(online)].pdf | 2023-01-03 |
| 18 | 201831007194-FORM 13 [03-01-2023(online)].pdf | 2023-01-03 |
| 19 | 201831007194-FER_SER_REPLY [03-01-2023(online)].pdf | 2023-01-03 |
| 20 | 201831007194-DRAWING [03-01-2023(online)].pdf | 2023-01-03 |
| 21 | 201831007194-COMPLETE SPECIFICATION [03-01-2023(online)].pdf | 2023-01-03 |
| 22 | 201831007194-CLAIMS [03-01-2023(online)].pdf | 2023-01-03 |
| 23 | 201831007194-AMMENDED DOCUMENTS [03-01-2023(online)].pdf | 2023-01-03 |
| 24 | 201831007194-ABSTRACT [03-01-2023(online)].pdf | 2023-01-03 |
| 25 | 201831007194-US(14)-HearingNotice-(HearingDate-17-07-2025).pdf | 2025-06-26 |
| 26 | 201831007194-Correspondence to notify the Controller [14-07-2025(online)].pdf | 2025-07-14 |
| 27 | 201831007194-Written submissions and relevant documents [31-07-2025(online)].pdf | 2025-07-31 |
| 28 | 201831007194-Annexure [31-07-2025(online)].pdf | 2025-07-31 |
| 29 | 201831007194-PatentCertificate12-08-2025.pdf | 2025-08-12 |
| 30 | 201831007194-IntimationOfGrant12-08-2025.pdf | 2025-08-12 |
| 1 | searchE_28-06-2022.pdf |