US9223630B2 - Method and apparatus for energy efficient distributed and elastic load balancing - Google Patents
Method and apparatus for energy efficient distributed and elastic load balancing Download PDFInfo
- Publication number
- US9223630B2 US9223630B2 US13/334,141 US201113334141A US9223630B2 US 9223630 B2 US9223630 B2 US 9223630B2 US 201113334141 A US201113334141 A US 201113334141A US 9223630 B2 US9223630 B2 US 9223630B2
- Authority
- US
- United States
- Prior art keywords
- parent
- server
- load
- service
- service request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- Y02B60/142—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the invention relates generally to methods and apparatus for providing server load balancing.
- a service may be hosted on a number of servers in order to provide higher quality of service such as high throughput and low response time.
- a typical architecture may include a front-end load balancer and a fixed number of back-end servers.
- the front-end load balancer may be a dedicated hardware box which distributes the incoming requests to different servers using a conventional distribution policy such as: random, round robin, or load-based distribution. In this model, all of the server nodes are active and ready to serve the service requests.
- a front-end load balancer sends new requests to the most loaded server as long as the server can satisfy the performance constraints in order to create more opportunity for servers to stay in low energy states.
- this solution is not scalable as tracking the load of a large number of heterogeneous servers requires a sophisticated and expensive front-end load balancer.
- the energy efficient distributed and elastic load balancing architecture includes a collection of multi-tiered servers organized as a tree structure. The handling of incoming service requests is distributed amongst a number of the servers. Each server in the virtual load distribution tree accepts incoming service requests based on its own load. Once a predetermined loading on the receiving server has been reached, the receiving server passes the incoming requests to one or more of its children servers.
- a method for providing energy efficient and elastic load balancing at a parent server.
- the method includes: receiving a plurality of service requests instantiated by one or more clients, determining a plurality of service handling decisions based on the service requests, the plurality of service handling decisions corresponding to at least a portion of the plurality of service requests, selecting a child server based on a first of the service handling decisions and transmitting a first propagated service request based on a first service request, the first service request corresponding to the first service handling decision, and selecting the parent server based on a second of the service handling decisions and handling a second service request, the second service request corresponding to the second service handling decision.
- the act of handling the second service request includes responding directly to the instantiating client of the second service request.
- the method also includes: determining a parent load based on at least one of the plurality of service requests, the parent load indicating a loading of the parent server and waking at least one child server of the parent server based on the parent load and a server load threshold.
- the method further includes: determining a parent load based on at least one of the plurality of service requests, the parent load indicating a loading of the parent server, receiving a parent-parent load, the parent-parent load indicating a loading of a parent-parent server, wherein the parent-parent server is parent to the parent server, and switching operation of the parent server to a sleep mode based on the parent load, the parent-parent load and a parent-parent load threshold.
- the method further includes: registering the child server and at least one associated selection parameter, the at least one associated selection parameter being based on the first service request, selecting the child server based on a third service request of the plurality of service requests and the at least one registered associated selection parameters, and transmitting a third propagated service request based on a third service request.
- an apparatus for providing energy efficient and elastic load balancing at a parent server.
- the apparatus includes a data storage and a processor communicatively coupled to the data storage.
- the processor is configured to: receive a plurality of service requests instantiated by one or more clients, determine a plurality of service handling decisions based on the service requests, the plurality of service handling decisions corresponding to at least a portion of the plurality of service requests, select a child server based on a first of the service handling decisions and transmit a first propagated service request based on a first service request, the first service request corresponding to the first service handling decision, and select the parent server based on a second of the service handling decisions and handle a second service request, the second service request corresponding to the second service handling decision.
- handling of the second service request comprises further configuring the processor to: respond directly to the instantiating client of the second service request.
- the processor is further configured to: determine a parent load based on at least one of the plurality of service requests, the parent load indicating a loading of the parent server and wake at least one child server of the parent server based on the parent load and a server load threshold.
- the processor is further configured to: determine a parent load based on at least one of the plurality of service requests, the parent load indicating a loading of the parent server, receive a parent-parent load, the parent-parent load indicating a loading of a parent-parent server, wherein the parent-parent server is parent to the parent server, and switch operation of the parent server to a sleep mode based on the parent load, the parent-parent load and a parent-parent load threshold.
- the processor is further configured to: register the child server and at least one associated selection parameter, the at least one associated selection parameter being based on the first service request, select the child server based on a third service request of the plurality of service requests and the at least one registered associated selection parameters, and transmit a third propagated service request based on a third service request.
- the selection of the child server is based on a proportion of a child server load of the child server and at least one other child server load corresponding to at least one other child server of the parent server.
- a system if provided for providing energy efficient and elastic load balancing.
- the system includes a plurality of servers communicatively coupled through a network, the plurality of servers being logically arranged in a virtual load distribution tree, and a service request handler communicatively coupled to the plurality of servers.
- the service request handler configured to: receive a plurality of service requests instantiated by one or more clients, determine a plurality of service handling decisions based on the service requests, the plurality of service handling decisions corresponding to at least a portion of the plurality of service requests, select a child server based on a first of the service handling decisions and transmit a first propagated service request based on a first service request, the first service request corresponding to the first service handling decision, and select the parent server based on a second of the service handling decisions and handle a second service request, the second service request corresponding to the second service handling decision.
- the virtual load distribution tree comprises a root server and at least two levels of servers.
- the virtual load distribution tree is based on values of initial delay and energy saving potential for at least a portion of the plurality of servers.
- the virtual load distribution tree is based on a predicted system load.
- one or more of the plurality of servers are virtual machines.
- the system also includes: a service request manager communicatively coupled to the plurality of servers.
- the service request manager is configured to dynamically scale the virtual load distribution tree.
- the service request manager is further configured to: recover a failed server; wherein the plurality of servers include the failed server; and wherein the recovery of the failed server includes at least one of: select a selected server to assume the role of the failed server, wherein the plurality of servers include the selected server; instantiate a new server to assume the role of the of the failed server, wherein the plurality of servers include the new server; and distribute the load of the failed server to one of more recovery servers, wherein the plurality of servers include the recovery servers.
- the system also includes a shared resource pool communicatively coupled to the service request manager.
- the service request manager dynamically allocates servers between the shared resource pool and the virtual load distribution tree based on load.
- FIG. 1 illustrates a load balancing system 100 that includes an embodiment of the energy efficient distributed and elastic load balancing architecture 110 ;
- FIG. 2 illustrates an embodiment of the energy efficient distributed and elastic load balancing architecture 110 of FIG. 1 ;
- FIG. 3 depicts a flow chart illustrating an embodiment of a method for providing primary-backup services using the backup-in-the-middle forwarder 120 of FIG. 1 ;
- FIG. 4 depicts a flow chart illustrating an embodiment of a method for handling a service request using one of the servers 120 of FIG. 1 ;
- FIG. 5 schematically illustrates blocks of one embodiment of one of the servers 120 of FIG. 1 .
- the energy efficient distributed and elastic load balancing architecture includes a collection of multi-tiered servers organized as a tree structure. The handling of incoming service requests is distributed amongst a number of the servers. Each server in the virtual load distribution tree accepts incoming service requests based on its own load. Once a predetermined loading on the receiving server has been reached, the receiving server passes the incoming requests to one or more of its children servers.
- this elastic load balancing architecture allows the system to compensate for fluctuating system loads.
- Second, this elastic load balancing architecture allows the system to assign children servers from a shared resource pool to servers during high load periods in order to reduce the instances of denial of services due to insufficient server capacity.
- FIG. 1 illustrates a load balancing system 100 that includes an embodiment of the energy efficient distributed and elastic load balancing architecture 110 .
- An energy efficient distributed and elastic load balancing architecture 110 includes a collection of multi-tiered servers 120 - a - 120 - g (collectively, servers 120 ).
- the servers 120 receive and respond to service requests from one or more clients 150 - a - 150 - c (collectively, clients 150 ).
- Service requests from clients 150 are delivered to servers 120 over a network 140 via a network connection 130 .
- the servers 120 include the intelligence to route the client service request to the servers 120 that will handle the request as well as the resources and logic to respond to the client server request.
- the servers 120 are organized in a virtual load distribution tree with at least one parent server (e.g., server 120 - a ) and at least one child server (e.g., servers 120 - b and 120 - c are children servers of server 120 - a ).
- the architecture may have any number of tree levels and may vary the degree of the tree (i.e., the fan-out of the server) at each tree level.
- the tree may also be unbalanced. For example, some parent servers may have two children servers while others may have more or less than two children servers and/or some branches of the tree may have larger or smaller tree levels.
- a root server is the server at the top level of the virtual load distribution tree (e.g., server 120 - a ), a parent server is a server that distributes service requests to at least one child server (e.g., servers 120 - a , 120 - b and 120 - c ), a child server is a server that receives service requests from a parent server (e.g., servers 120 - b - 120 - g ) and a leaf server is a server without any children servers (e.g., servers 120 - d - 120 - g ).
- a server may be both a parent server and a child server.
- server 120 - b is a child server to server 120 - a and a parent server to servers 12 - d and 120 - e .
- a server may be both a leaf server and a child server.
- the network connection 130 may support retrieving or responding to services requests over one or more communication channels such as: wireless communications (e.g., LTE, GSM, CDMA, bluetooth); femtocell communications (e.g., WiFi); packet network communications (e.g., IP); broadband communications (e.g., DOCSIS and DSL); and the like. It should be appreciated that though depicted as a single connection, network connection 130 may be any number or combinations of communication channels supporting communication between servers 120 and the network 140 .
- wireless communications e.g., LTE, GSM, CDMA, bluetooth
- femtocell communications e.g., WiFi
- packet network communications e.g., IP
- broadband communications e.g., DOCSIS and DSL
- the network 140 may be any suitable network for facilitating communication from servers 120 to clients 150 .
- network 140 may be any combination of: Local Area Network(s) (LAN), Wireless Local Area Network(s) (WLAN), Wide Area Network (WAN), Metropolitan Area Network (MAN), and the like.
- the clients 150 may be type or number of client machine(s) initiating service request(s) directed to the energy efficient distributed and elastic load balancing architecture 110 .
- a client may be: a server, a mobile phone, a tablet, a computer, a personal digital assistant (PDA), an e-reader, a network device (e.g., a switch or a router) and/or the like.
- PDA personal digital assistant
- e-reader e.g., a network device and/or the like.
- servers 120 are arranged in the virtual load distribution tree according to parameters such as the initial delay and the energy saving potential.
- the initial delay and energy saving potential of a particular virtual load distribution tree arrangement of servers 120 may be controlled based on a number of factors such as the arrangement of the virtual load distribution tree and individual server capabilities.
- a virtual load distribution tree design of a number of servers “n” as the number of levels increase, routing service requests becomes less complex, energy efficiency increases, and the initial delay becomes larger.
- a flat tree with one root node and (n-1) leaf nodes has the minimum delay due to the request relay, but has the highest complexity and worst energy efficiency.
- the servers are organized as a chain, (i.e.
- a virtual load distribution tree with each tree level having a degree of 1), the tree is simple and energy efficient, but has maximum delay.
- Individual server capabilities may impact tree design if the servers 120 have different resource capabilities.
- servers may be placed in the virtual load distribution tree based on the capacity of service requests that they are capable of handling.
- the virtual load distribution tree includes at least two levels below the root server.
- the degree of servers in a level of the virtual load distribution tree may be designed based on predicted loads. Referring to FIG. 2 , an exemplary plot of the predicted load over the course of a day is shown. As can be seen, the load between 9:00 AM and 8:00 PM is predicted to be up to 120 while the load between 9:00 PM and 8:00 AM is predicted to be below 30.
- a virtual load distribution tree may be arranged such that the tree has two levels below the root server. The first level may be designed to handle loads under 30 while the second level may be designed to handle loads up to 120. This may be done by choosing individual servers with higher capacities for the second level of the virtual load distribution tree and/or using a higher degree (more servers) for the second level of the virtual load distribution tree.
- servers 120 may be homogenous and in other embodiments, servers 120 may be heterogeneous. It should be appreciated that by keeping the complexity of the servers low, special hardware may not be required.
- servers 120 may consist entirely of low-cost commodity servers to create a cost efficient system. It should be appreciated that since the intelligence to route the client service request to the servers 120 is distributed in a plurality of the servers 120 , there is no need for a special hardware box to acting as a central load distributor.
- two or more servers 120 may be interconnected via a LAN. In some embodiments two or more servers 120 may be connected over a WAN such as the internet. It should be appreciated that each of servers 120 do not have to be connected in the same way or even via the same types of communication channels and/or protocols.
- two or more servers 120 may be virtual machines. In a further embodiment, a portion of the virtual machine servers may reside on the same physical hardware. In some embodiments, one or more virtual machine servers may include resource distributed over different hardware resources. In a further embodiment, at least a first portion of those hardware resources may be located in a different geographical location than at least a second portion of those hardware resources.
- the virtual load distribution tree may be scalable to dynamically grow or shrink, (i.e., add and delete servers) and/or modify the arrangement of the virtual load distribution tree based on load.
- Load determinations may be based on a system loading of the virtual load distribution tree and/or loading of one or more servers in the load distribution tree. For example, the load determination may be based on a branch of the virtual load distribution tree beginning with a parent server or based on loading of a single server in the virtual load distribution tree.
- At least a portion of the servers dynamically added and deleted from the virtual load distribution tree may be added and deleted from a shared resource pool.
- a shared resource pool may be a collection of resources and/or servers that are shared amongst a number of applications/services.
- a separate shared resource pool manager may manage the allocation of resources/servers using conventional resource management methods.
- the resource pool manager is a hypervisor managing requests for cloud resources. The hypervisor may provide access to a collection of resources (e.g., a virtual machine) in response to a request from one of the servers 120 .
- servers 120 are arranged in a virtual load distribution tree using an energy efficient distributed and elastic load balancing architecture 110 service request manager (not shown).
- the service request manager may reside on one or more of the servers 120 , (e.g., the root server 120 - a ), and/or on one or more separate servers outside of servers 120 .
- the service request manager may propagate virtual load distribution tree parameters to the servers 120 to create the relationships between servers.
- Virtual load distribution tree parameters may include any suitable parameter such as: parameters to help specify when a server should handle a request, parameters to help specify when a server should transmit the request to one of its children servers, parameters to help specify when to spawn new children servers (e.g., in a scalable virtual load distribution tree), parameters to help specify when a child server in a low energy mode should be woken, and/or the like.
- the service request manager dynamically manages the virtual dynamic load tree.
- the service request manager may manage the scaling of the virtual load distribution tree as described herein or manage failure recovery of servers. For example, if one of servers 120 fails, that failed server may be excluded from the network. Furthermore, another server may be elected/instantiated to assume the role of the failed server or the load of the failed server may be distributed to the surviving servers. It should be appreciated that such architecture can avoid the link and node bottleneck and be resilient to network fault. It should also be appreciated that the service request manager may communicate with servers 120 over a conventional network (e.g., network 360 ).
- a conventional network e.g., network 360
- FIG. 4 depicts a flow chart illustrating an embodiment of a method for handling a service request using one of the servers 120 .
- a server receives a service request either from a parent server or directly from one of the clients 150 (e.g., step 410 of method 400 ). If the receiving server determines that a child should handle the request (e.g., step 420 of method 400 ), the receiving server selects a child to handle the request (e.g., step 430 of method 400 ), transmits the request to the selected child (e.g., step 440 of method 400 ) and optionally registers the request in order to facilitate future requests (e.g., step 450 of method 400 ).
- the receiving server determines it should handle the request itself (e.g., step 420 of method 400 )
- the receiving server handles the request (e.g., step 460 of method 400 ), optionally registers the request in order to facilitate future requests (e.g., step 470 of method 400 ) and then optionally determines whether to wake up a child server in order to prepare the child server to handle a future service request (steps 480 and 490 of method 400 ).
- the step 410 includes a receiving server receiving a service request either from a parent server or directly from one of the clients 150 .
- a service request from one of the clients 150 is initially received by the root server.
- the root server may then propagate the service request through the virtual load distribution tree based on a propagation determination. It should be appreciated that the root server and each parent server in the virtual load distribution tree receiving the propagated service request behave the same.
- the step 420 includes determining whether the receiving server should propagate the service request to a child server or to handle the service request itself.
- the step 430 includes selecting the child server to handle the service request.
- the child server may be selected using a conventional distribution policy, selected based on a previously registered selection, and/or selected based on a mapping of the requirements of the service request to the capabilities of the children servers.
- the step 440 includes transmitting the request to the selected child server. It should be appreciated that the request propagated to the selected child server may be identical to the received request or may be modified by the receiving server.
- Step 450 includes registering the request in order to facilitate future requests.
- the packet flow of the selected server may be registered. It should be appreciated that in for some types of service requests, a particular server may be preferred or required to handle all the packets belonging to the same service request.
- the step 460 includes handling the service request.
- conventional network load balancing may distribute TCP/IP-based service requests, such as Web, terminal services, virtual private networking, and streaming media servers.
- Step 470 includes registering the request in order to facilitate future requests as described above in step 450 .
- the method 400 optionally includes steps 480 and 490 .
- Steps 480 and 490 include determining whether to wake up a child server in order to prepare the child server to handle a future service request. It should be appreciated that servers need to stay in power-off state or some other deep sleep modes in order to consume zero energy. Conventional techniques such as “wake-on-LAN” may be used to wake up a child server when a service request is being transmitted to the selected server (e.g., step 440 ); however, waking a server often takes some extended period of time and during this transition period, service requests may not be deliverable. As such the parent server may include step 480 to proactively wake one or more child servers.
- a server may determine to proactively wake a child server based on the parent server's load and/or a historical prediction of future load (e.g., FIG. 2 and the accompanying description).
- proactively waking up one of more child servers may help the parent server avoid overflow conditions.
- step 420 includes determining that the receiving server has reached its capacity and can no longer handle further requests. In other embodiments, step 420 includes determining that the receiving server has reached some predetermined load or percentage or load.
- step 430 includes using a distribution policy such as: random, round robin, or load-based distribution.
- step 430 includes selecting the most loaded child that is capable of satisfying the performance constraints in order to create more opportunity for servers to stay in low energy states.
- step 430 includes selecting child servers proportional to the load capability of each child.
- step 430 includes selecting a child server based on a mapping of the capabilities of the child server and the requirements of the service request. For example, a first child server of the parent server may be configured to handle streaming media requests more efficiently than a second child server.
- step 430 includes selecting a child server based on the client (e.g., clients 150 of FIG. 1 ) instantiating the service request.
- client e.g., clients 150 of FIG. 1
- one or more servers e.g., servers 120 of FIG. 1
- step 450 and/or 470 includes registering the packet flow with the root server so that subsequent packets may be directly delivered to the selected server.
- registering the packet flow delays and selection errors may be lowered.
- step 460 includes replying directly to the requesting client (e.g., client 150 - a in FIG. 1 ).
- the destination address is modified in the response.
- the requesting client is capable of directing future packets directly to the responding server without following the virtual load distribution tree path.
- the destination address of the service request is not modified in the response to the requesting client.
- future service requests will still be directed to the root server.
- the servers 120 each contain a unique primary address and a secondary virtual address that is shared amongst the servers 120 in the virtual load distribution tree.
- the method may further include determining to turn the parent server to sleep mode.
- the parent server may determine to enter sleep mode based on its loading and the loading of the server's parent. In particular, when a server has no scheduled jobs (e.g., service request tasks) and the server's parent server has a load below a threshold level, the server enters in an energy efficient sleep mode. It should be appreciated that parent and children servers may communicate loading parameters via conventional communication protocols and connections over a conventional network (e.g., network 360 of FIG. 3 ).
- step 410 After steps 450 and 490 , method 400 returns to step 410 to repeat the process of receiving and processing service requests.
- optional steps 480 and 490 may be performed at any point in the process. Moreover, they may even be performed outside of the process before a service request has been received.
- one or more of the servers 120 includes a service request handler that performs the steps of method 400 .
- each of the servers 120 includes a service request handler. It may be appreciated that the service request handler may reside on one or more of the servers 120 , (e.g., each of servers 120 ), and/or on one or more separate servers outside of servers 120
- steps of various above-described methods can be performed by programmed computers.
- program storage devices e.g., data storage media, which are machine or computer readable and encode machine-executable or computer-executable programs of instructions, wherein said instructions perform some or all of the steps of said above-described methods.
- the program storage devices may be, e.g., digital memories, magnetic storage media such as a magnetic disks and magnetic tapes, hard drives, or optically readable data storage media.
- the embodiments are also intended to cover computers programmed to perform said steps of the above-described methods.
- FIG. 5 schematically illustrates one embodiment of one of the servers 120 of FIG. 1 .
- the server 120 may perform the functions described herein, e.g., using the method 400 .
- the server 120 includes a processor 510 , a data storage 511 , and an I/O interface 530 .
- the processor 510 controls the operation of the server 120 .
- the processor 510 cooperates with the data storage 511 .
- the data storage 511 may store the loading parameters (e.g., steps 420 , 430 , 450 , 470 and 480 in FIG. 4 ) and buffer the received and transmitted service requests and inter server communication (e.g., steps 410 , 440 , 450 , 460 and 470 in FIG. 4 ).
- the data storage 511 also stores programs 520 executable by the processor 510 .
- the processor-executable programs 510 may include an I/O interface program 521 , a service request handler program 523 and/or a service request manager program 525 .
- Processor 510 cooperates with processor-executable programs 520 to implement the functionality described in FIGS. 1-4 and/or perform the steps of method 400 .
- the I/O interface 530 is configured for supporting any suitable number of channels supporting any suitable number(s) of sessions (e.g., any suitable number of IP flows), which may be directed between the particular server 120 and one or more clients (e.g., client 150 - a - 150 - c in FIG. 1 ) and one or more of the servers (e.g., servers 120 in FIG. 1 ).
- I/O interface 530 may support any suitable type(s) of communication paths and communication protocols.
- communication paths may include wireless communications (e.g., GSM and CDMA); wireline communications; packet network communications (e.g., IP); broadband communications (e.g., DSL); and the like, as well as various combinations thereof.
- the server 120 is a special designed network interface card (NIC).
- the NIC provides service request handling.
- the server host can focus on its core functions and dedicate its resource to provide the service. It should be appreciated that the server host may provide indications of load and other suitable parameters to the NIC.
- the host server may set a busy bit on the NIC to indicate that the host is busy and can no longer accept new requests.
- the NIC may automatically forward the new service requests to proper servers based on the virtual load distribution tree.
- this NIC hardware acceleration can further reduce the service delay.
- processor-executable programs 520 When processor-executable programs 520 are implemented on a processor 510 , the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
- processors may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.
- the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared.
- explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- ROM read only memory
- RAM random access memory
- any switches shown in the FIGS. are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
- any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention.
- any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims (10)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/334,141 US9223630B2 (en) | 2011-12-22 | 2011-12-22 | Method and apparatus for energy efficient distributed and elastic load balancing |
PCT/US2012/065753 WO2013095833A1 (en) | 2011-12-22 | 2012-11-19 | Method and apparatus for energy efficient distributed and elastic load balancing |
EP12795692.8A EP2795468A1 (en) | 2011-12-22 | 2012-11-19 | Method and apparatus for energy efficient distributed and elastic load balancing |
CN201280063285.2A CN104011686A (en) | 2011-12-22 | 2012-11-19 | Method And Apparatus For Energy Efficient Distributed And Elastic Load Balancing |
KR1020147017088A KR20140093733A (en) | 2011-12-22 | 2012-11-19 | Method and apparatus for energy efficient distributed and elastic load balancing |
JP2014549058A JP5978313B2 (en) | 2011-12-22 | 2012-11-19 | Method and apparatus for energy efficient distributed elastic load balancing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/334,141 US9223630B2 (en) | 2011-12-22 | 2011-12-22 | Method and apparatus for energy efficient distributed and elastic load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130166943A1 US20130166943A1 (en) | 2013-06-27 |
US9223630B2 true US9223630B2 (en) | 2015-12-29 |
Family
ID=47291256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/334,141 Expired - Fee Related US9223630B2 (en) | 2011-12-22 | 2011-12-22 | Method and apparatus for energy efficient distributed and elastic load balancing |
Country Status (6)
Country | Link |
---|---|
US (1) | US9223630B2 (en) |
EP (1) | EP2795468A1 (en) |
JP (1) | JP5978313B2 (en) |
KR (1) | KR20140093733A (en) |
CN (1) | CN104011686A (en) |
WO (1) | WO2013095833A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496432B1 (en) | 2019-01-22 | 2019-12-03 | Capital One Services, Llc | Methods, mediums, and systems for provisioning application services |
US11436058B2 (en) * | 2016-11-17 | 2022-09-06 | International Business Machines Corporation | Workload balancing to achieve a global workload balance |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9223630B2 (en) | 2011-12-22 | 2015-12-29 | Alcatel Lucent | Method and apparatus for energy efficient distributed and elastic load balancing |
US9319274B1 (en) * | 2012-03-29 | 2016-04-19 | Emc Corporation | Method and system for dynamic provisioning using server dormant mode for virtual server dormancy |
US20140040479A1 (en) * | 2012-07-20 | 2014-02-06 | Paul Steven Dunn | Method for a self organizing load balance in a cloud file server network |
US20150163297A1 (en) * | 2012-08-06 | 2015-06-11 | Nec Corporation | Load control system, load control server, information processing system, load control method and recording medium |
US20140331078A1 (en) * | 2013-01-24 | 2014-11-06 | Uri Cohen | Elastic Space-Based Architecture application system for a cloud computing environment |
US20150081400A1 (en) * | 2013-09-19 | 2015-03-19 | Infosys Limited | Watching ARM |
US10078361B2 (en) | 2014-10-08 | 2018-09-18 | Apple Inc. | Methods and apparatus for running and booting an inter-processor communication link between independently operable processors |
KR101595948B1 (en) | 2014-12-11 | 2016-02-29 | 충북대학교 산학협력단 | Load Balancing Method of P2P Networks by Load Threshold Adjustment and Device Implementing the Same |
CN104714759B (en) * | 2015-02-15 | 2018-05-01 | 四川长虹电器股份有限公司 | A kind of method and load-balanced server group of information storage |
CN105262990A (en) * | 2015-10-10 | 2016-01-20 | 浪潮电子信息产业股份有限公司 | Cloud computation based kindergarten video real-time monitoring system |
US10085214B2 (en) * | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
US20170230457A1 (en) * | 2016-02-05 | 2017-08-10 | Microsoft Technology Licensing, Llc | Idempotent Server Cluster |
US20170318121A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise | Server request handlers |
US11054887B2 (en) * | 2017-12-28 | 2021-07-06 | Advanced Micro Devices, Inc. | System-wide low power management |
US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
CN108848479A (en) * | 2018-07-19 | 2018-11-20 | 北京车联天下信息技术有限公司 | Car networking service load balancing method, device and equipment |
CN114546095B (en) * | 2022-04-25 | 2022-07-01 | 沐曦科技(北京)有限公司 | Master selection method based on multiple computing devices |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168790A (en) | 1993-12-15 | 1995-07-04 | Oki Electric Ind Co Ltd | Information processor |
JP2003030078A (en) | 2001-07-12 | 2003-01-31 | Mega Chips Corp | Information distribution system, information distributing method and program |
US20050022202A1 (en) | 2003-07-09 | 2005-01-27 | Sun Microsystems, Inc. | Request failover mechanism for a load balancing system |
US20050114862A1 (en) * | 2003-11-21 | 2005-05-26 | Chatschik Bisdikian | Adaptive load distribution in managing dynamic and transient data for distributed applications |
US7249179B1 (en) | 2000-11-09 | 2007-07-24 | Hewlett-Packard Development Company, L.P. | System for automatically activating reserve hardware component based on hierarchical resource deployment scheme or rate of resource consumption |
US20080140989A1 (en) | 2006-08-13 | 2008-06-12 | Dragos Dudau | Multiprocessor Architecture With Hierarchical Processor Organization |
US20100235654A1 (en) * | 2008-03-07 | 2010-09-16 | Malik Naim R | Methods of achieving cognizant power management |
US20100262975A1 (en) * | 2009-04-13 | 2010-10-14 | International Business Machines Corporation | Automated workload selection |
US20110047555A1 (en) * | 2009-08-18 | 2011-02-24 | International Business Machines Corporation | Decentralized load distribution in an event-driven system |
US20110047554A1 (en) * | 2009-08-18 | 2011-02-24 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
US20110126206A1 (en) * | 2008-10-30 | 2011-05-26 | Hitachi, Ltd. | Operations management apparatus of information-processing system |
JP2011118525A (en) | 2009-12-01 | 2011-06-16 | Hitachi Ltd | Server management apparatus, server management method, and server management program |
WO2011107163A1 (en) | 2010-03-05 | 2011-09-09 | Telefonaktiebolaget L M Ericsson (Publ) | A processing system with processing load control |
US20110321041A1 (en) * | 2010-06-29 | 2011-12-29 | Bhat Santhosh R | Method and system for migrating a virtual machine |
US20130125097A1 (en) * | 2011-11-15 | 2013-05-16 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
WO2013095833A1 (en) | 2011-12-22 | 2013-06-27 | Alcatel Lucent | Method and apparatus for energy efficient distributed and elastic load balancing |
-
2011
- 2011-12-22 US US13/334,141 patent/US9223630B2/en not_active Expired - Fee Related
-
2012
- 2012-11-19 KR KR1020147017088A patent/KR20140093733A/en not_active Application Discontinuation
- 2012-11-19 EP EP12795692.8A patent/EP2795468A1/en not_active Withdrawn
- 2012-11-19 WO PCT/US2012/065753 patent/WO2013095833A1/en active Application Filing
- 2012-11-19 JP JP2014549058A patent/JP5978313B2/en not_active Expired - Fee Related
- 2012-11-19 CN CN201280063285.2A patent/CN104011686A/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168790A (en) | 1993-12-15 | 1995-07-04 | Oki Electric Ind Co Ltd | Information processor |
US7249179B1 (en) | 2000-11-09 | 2007-07-24 | Hewlett-Packard Development Company, L.P. | System for automatically activating reserve hardware component based on hierarchical resource deployment scheme or rate of resource consumption |
JP2003030078A (en) | 2001-07-12 | 2003-01-31 | Mega Chips Corp | Information distribution system, information distributing method and program |
US20050022202A1 (en) | 2003-07-09 | 2005-01-27 | Sun Microsystems, Inc. | Request failover mechanism for a load balancing system |
US20050114862A1 (en) * | 2003-11-21 | 2005-05-26 | Chatschik Bisdikian | Adaptive load distribution in managing dynamic and transient data for distributed applications |
US20080140989A1 (en) | 2006-08-13 | 2008-06-12 | Dragos Dudau | Multiprocessor Architecture With Hierarchical Processor Organization |
US20100235654A1 (en) * | 2008-03-07 | 2010-09-16 | Malik Naim R | Methods of achieving cognizant power management |
US20110126206A1 (en) * | 2008-10-30 | 2011-05-26 | Hitachi, Ltd. | Operations management apparatus of information-processing system |
US20100262975A1 (en) * | 2009-04-13 | 2010-10-14 | International Business Machines Corporation | Automated workload selection |
US20110047555A1 (en) * | 2009-08-18 | 2011-02-24 | International Business Machines Corporation | Decentralized load distribution in an event-driven system |
US20110047554A1 (en) * | 2009-08-18 | 2011-02-24 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
JP2011118525A (en) | 2009-12-01 | 2011-06-16 | Hitachi Ltd | Server management apparatus, server management method, and server management program |
WO2011107163A1 (en) | 2010-03-05 | 2011-09-09 | Telefonaktiebolaget L M Ericsson (Publ) | A processing system with processing load control |
US20110321041A1 (en) * | 2010-06-29 | 2011-12-29 | Bhat Santhosh R | Method and system for migrating a virtual machine |
US20130125097A1 (en) * | 2011-11-15 | 2013-05-16 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
WO2013095833A1 (en) | 2011-12-22 | 2013-06-27 | Alcatel Lucent | Method and apparatus for energy efficient distributed and elastic load balancing |
Non-Patent Citations (3)
Title |
---|
Patent Abstracts of Japan, available at JPO, Publication No. 07-168790, published Jul. 4, 1995, 1 page, corresponding to JPH07168790A as cited in Foreign Patent Documents. |
Patent Abstracts of Japan, available at JPO, Publication No. 2003-030078, published Jan. 31, 2003, 1 page, corresponding to JP200330078A as cited in Foreign Patent Documents. |
Patent Abstracts of Japan, available at JPO, Publication no. 20111-118525, published Jun. 16, 2011, 1 page corresponding to JP2011118525A as cited in Foreign Patent Documents. |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436058B2 (en) * | 2016-11-17 | 2022-09-06 | International Business Machines Corporation | Workload balancing to achieve a global workload balance |
US10496432B1 (en) | 2019-01-22 | 2019-12-03 | Capital One Services, Llc | Methods, mediums, and systems for provisioning application services |
US10599464B1 (en) * | 2019-01-22 | 2020-03-24 | Capital One Services, Llc | Methods, mediums, and systems for provisioning application services |
Also Published As
Publication number | Publication date |
---|---|
WO2013095833A1 (en) | 2013-06-27 |
US20130166943A1 (en) | 2013-06-27 |
CN104011686A (en) | 2014-08-27 |
JP2015503781A (en) | 2015-02-02 |
JP5978313B2 (en) | 2016-08-24 |
EP2795468A1 (en) | 2014-10-29 |
KR20140093733A (en) | 2014-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9223630B2 (en) | Method and apparatus for energy efficient distributed and elastic load balancing | |
Tang et al. | Migration modeling and learning algorithms for containers in fog computing | |
Hoang et al. | FBRC: Optimization of task scheduling in fog-based region and cloud | |
Li et al. | SSLB: self-similarity-based load balancing for large-scale fog computing | |
Semmoud et al. | Load balancing in cloud computing environments based on adaptive starvation threshold | |
Kansal et al. | Artificial bee colony based energy‐aware resource utilization technique for cloud computing | |
Singh et al. | Leveraging energy‐efficient load balancing algorithms in fog computing | |
US20100262695A1 (en) | System and Method for Allocating Resources in a Distributed Computing System | |
US20210045091A1 (en) | Intelligent and optimal resource selection within a network slice | |
US20150006630A1 (en) | Decentralized request routing | |
WO2021120633A1 (en) | Load balancing method and related device | |
Achary et al. | Dynamic job scheduling using ant colony optimization for mobile cloud computing | |
CN104111874A (en) | High-concurrence high-reliability load balance software architecture design of virtual mainframe in cloud computing environment | |
JP2016051446A (en) | Calculator system, calculator, and load dispersing method and program | |
Tarahomi et al. | A prediction‐based and power‐aware virtual machine allocation algorithm in three‐tier cloud data centers | |
Ventrella et al. | Load profiling and migration for effective cyber foraging in disaster scenarios with formica | |
Li et al. | Research on energy‐saving virtual machine migration algorithm for green data center | |
Bisht et al. | Survey on Load Balancing and Scheduling Algorithms in Cloud Integrated Fog Environment | |
Batra et al. | A brief overview of load balancing techniques in fog computing environment | |
Ashalatha et al. | Dynamic load balancing methods for resource optimization in cloud computing environment | |
Wen | Energy-aware dynamical hosts and tasks assignment for cloud computing | |
Jing et al. | Customer satisfaction‐aware scheduling for utility maximization on geo‐distributed data centers | |
Khani et al. | A self‐organized load balancing mechanism for cloud computing | |
Fadlallah et al. | Towards mobile collaborative autonomous networks using peer-to-peer communication | |
Fayyaz et al. | Energy efficient resource scheduling through VM consolidation in cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SONG, HAOYU;HAO, FANG;LAKSHMAN, TIRUNELL V.;REEL/FRAME:027431/0469 Effective date: 20111216 |
|
AS | Assignment |
Owner name: ALCATEL LUCENT, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALCATEL-LUCENT USA INC.;REEL/FRAME:029739/0179 Effective date: 20130129 |
|
AS | Assignment |
Owner name: CREDIT SUISSE AG, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:ALCATEL-LUCENT USA INC.;REEL/FRAME:030510/0627 Effective date: 20130130 |
|
AS | Assignment |
Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:033949/0016 Effective date: 20140819 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: OMEGA CREDIT OPPORTUNITIES MASTER FUND, LP, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:WSOU INVESTMENTS, LLC;REEL/FRAME:043966/0574 Effective date: 20170822 Owner name: OMEGA CREDIT OPPORTUNITIES MASTER FUND, LP, NEW YO Free format text: SECURITY INTEREST;ASSIGNOR:WSOU INVESTMENTS, LLC;REEL/FRAME:043966/0574 Effective date: 20170822 |
|
AS | Assignment |
Owner name: WSOU INVESTMENTS, LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALCATEL LUCENT;REEL/FRAME:044000/0053 Effective date: 20170722 |
|
AS | Assignment |
Owner name: BP FUNDING TRUST, SERIES SPL-VI, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:WSOU INVESTMENTS, LLC;REEL/FRAME:049235/0068 Effective date: 20190516 |
|
AS | Assignment |
Owner name: WSOU INVESTMENTS, LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:OCO OPPORTUNITIES MASTER FUND, L.P. (F/K/A OMEGA CREDIT OPPORTUNITIES MASTER FUND LP;REEL/FRAME:049246/0405 Effective date: 20190516 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20191229 |
|
AS | Assignment |
Owner name: OT WSOU TERRIER HOLDINGS, LLC, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:WSOU INVESTMENTS, LLC;REEL/FRAME:056990/0081 Effective date: 20210528 |
|
AS | Assignment |
Owner name: WSOU INVESTMENTS, LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:TERRIER SSC, LLC;REEL/FRAME:056526/0093 Effective date: 20210528 |