US8266258B1 - Enhanced throttle management system - Google Patents
Enhanced throttle management system Download PDFInfo
- Publication number
- US8266258B1 US8266258B1 US12/951,572 US95157210A US8266258B1 US 8266258 B1 US8266258 B1 US 8266258B1 US 95157210 A US95157210 A US 95157210A US 8266258 B1 US8266258 B1 US 8266258B1
- Authority
- US
- United States
- Prior art keywords
- throttle
- data source
- plurality
- configuration parameter
- client
- 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.)
- Active, expires
Links
- 238000000034 methods Methods 0 abstract claims description 11
- 230000004044 response Effects 0 claims description 21
- 230000015654 memory Effects 0 claims description 17
- 230000004048 modification Effects 0 claims description 10
- 238000006011 modification Methods 0 claims description 10
- 239000002609 media Substances 0 claims 7
- 238000003860 storage Methods 0 claims 7
- 230000000051 modifying Effects 0 claims 5
- 230000002708 enhancing Effects 0 abstract 1
- 230000000694 effects Effects 0 description 4
- 235000006719 Cassia obtusifolia Nutrition 0 description 2
- 244000201986 Cassia tora Species 0 description 2
- 235000014552 Cassia tora Nutrition 0 description 2
- 239000008186 active pharmaceutical agents Substances 0 description 2
- 230000003292 diminished Effects 0 description 2
- 238000004891 communication Methods 0 description 1
- 230000000670 limiting Effects 0 description 1
- 238000009740 moulding (composite fabrication) Methods 0 description 1
- 235000010384 tocopherol Nutrition 0 description 1
- 235000019731 tricalcium phosphate Nutrition 0 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance or administration or management of packet switching networks
- H04L41/08—Configuration management of network or network elements
- H04L41/0803—Configuration setting of network or network elements
- H04L41/0813—Changing of configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance or administration or management of packet switching networks
- H04L41/08—Configuration management of network or network elements
- H04L41/0803—Configuration setting of network or network elements
- H04L41/0813—Changing of configuration
- H04L41/0816—Changing of configuration due to adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance or administration or management of packet switching networks
- H04L41/08—Configuration management of network or network elements
- H04L41/0803—Configuration setting of network or network elements
- H04L41/0823—Configuration optimization
- H04L41/083—Configuration optimization for network speed increase
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network-specific arrangements or communication protocols supporting networked applications
- H04L67/10—Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
- H04L67/1002—Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network-specific arrangements or communication protocols supporting networked applications
- H04L67/12—Network-specific arrangements or communication protocols supporting networked applications adapted for proprietary or special purpose networking environments, e.g. medical networks, sensor networks, networks in a car or remote metering networks
- H04L67/125—Network-specific arrangements or communication protocols supporting networked applications adapted for proprietary or special purpose networking environments, e.g. medical networks, sensor networks, networks in a car or remote metering networks involving the control of end-device applications over a network
Abstract
Description
This application is a continuation of U.S. patent application Ser. No. 11/924,417, filed on Oct. 25, 2007. This application is also related in subject matter to, and incorporates herein by reference in its entirety, each of the following: U.S. patent application Ser. No. 11/143,071, filed on Jun. 6, 2005, now U.S. Pat. No. 7,818,393, issued on Oct. 19, 2010; and U.S. patent application Ser. No. 12/906,794, filed on Oct. 18, 2010.
Connecting users to a remote system using an application component is well-known and readily appreciated by those of skill in the art. Conventionally, a user can use a browser to communicate a request to a web server. The web server can process the request and forward it to an application server that includes a predetermined or limited number of threads available for handling requests. The application server can allocate a thread to the request, and the thread service the request by, for example, performing a function, or retrieving a file. However, as the number of available threads on the application server may be limited, the application server typically may only be able to handle a predetermined number of requests before the requests are queued. In the event the application server experiences an outage when there are a large number of requests, users may end up waiting a significant amount of time to find out that the application server has experienced an outage, which can result in a diminished user experience. Furthermore, the allocation of threads and the queuing of requests to an unavailable remote system ties up resources which could be used more efficiently.
A conventional solution for this problem is the use of connection pooling that involves the establishment of a pool of database connections between the application server and the data source which can be shared by application components on the application server. This limits the creation of new connections because existing connections from the pool of database connections may be used, which saves resources. However, when the application server goes down, the diminished user experience associated with the amount of time a user waits to find out that the remote system has experienced an outage remains.
Accordingly, it would be desirable to provide a system for outage avoidance absent the disadvantages found in the prior methods discussed above.
In one implementation, a method includes, but is not limited to, receiving, from a client, a request for configuration parameters of a throttle coupled to a data source, the configuration parameters including a maximum number of permits to be issued by the throttle to a plurality of modules operable to perform an operation on the data source, an expected response time for completing the operation on the data source, and a number of available permits to assign to the plurality of modules, wherein the number of available permits is configured in accordance with whether a previous operation performed by a first module of the plurality of modules was completed within the expected response time; transmitting, from a server, the configuration parameters of the throttle; receiving, from the client, at least one modification to at least one configuration parameter; and applying the at least one modification to the at least one configuration parameter of the throttle during runtime operation of the server. In addition to the foregoing, other method aspects are described in the text, figures, and claims forming a part of the present disclosure.
It can be appreciated by one of skill in the art that one or more various aspects of the disclosure may include but are not limited to circuitry and/or programming for effecting the herein-referenced method aspects; the circuitry and/or programming can be virtually any combination of hardware, software, and/or firmware configured to effect the herein-referenced aspects depending upon the design choices of the system designer.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail. Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting.
Referring now to
Each of the provider 110, and the users 115, 120, and 125 include a respective network interface for communicating with the network 105 (e.g., outputting information to, and receiving information from, the network 105), such as by transferring information (e.g., instructions, data, signals) between such users 115, 120, and 125 and the network 105. Accordingly, through the network 105, the provider 110 communicates with the users 115, 120, and 125, and the users 115, 120, and 125 communicate with the provider 110.
For clarity,
Each of the provider 110 and the users 115, 120, and 125 include a respective information handling system (IHS), a subsystem, or a part of a subsystem for executing processes and performing operations (e.g., processing or communicating information) in response thereto, as discussed further below. Each such IHS is formed by various electronic circuitry components and/or software components. Moreover, as illustrated in
An IHS is an electronic device capable of processing, executing or otherwise handling information. Examples of an IHS include a server computer, a personal computer (e.g., a desktop computer or a portable computer such as, for example, a laptop computer), or a handheld computer. Examples of an IHS also include a router, a switch, and other devices coupled to a network (e.g. the network 105).
Referring now to
Referring now to
In some embodiments of the present disclosure, the throttle 324 can be configured to keep track of a number of variables, such as a configurable number of permits in use, a configurable current available number of permits for use, a configurable maximum number of permits, a configurable minimum number of permits, a configurable expected response time for an operation to be completed in, and/or a configurable enable/disable calls mechanism, e.g., a hardware switch, or in other embodiments, a software method or routine. In some example embodiments, the configurable number of permits in use can be the number of permits being used to attempt to access a data source at any given time. For example, if 6 permits exist, and 5 threads are accessing a data source, the number of permits in use would be 5. The current number of available permits for use can include the number of permits currently available in the permit pool 330. This number can be configured by the throttle 324 based on the performance of a prior call to the data source, e.g., the number depends on the status of the data source. The configurable maximum number of permits can include the maximum number of permits which may be available at any given time. The configurable minimum number of permits is the minimum number of permits which may be available for use at any given time. Furthermore, the enable/disable mechanism can include a setting operable to direct the throttle 324 to deny all requests when it is enabled regardless of the number of permits available.
Continuing with the description of
Referring now to
Referring now to
Continuing with the example, after the operating environment 320 registers with the manager 340, and as shown by operations 406 and 408, it enters a wait state where it awaits requests to perform one or more operations on one or more data sources 216-1 through 216-N. As illustrated by operation 410, once the operating environment 320 receives a request, throttle 324 accesses the configuration parameters in configuration parameter memory 328, and determines whether a permit is available to use when servicing the request. Similar to that described above, if there are no permits available, i.e., all the available permits are in use, the maximum number of permits is set to 0, or the throttle is configured to deny calls, and the call will fail as shown at operation 414. When a permit is available, i.e., the maximum number of permits have not been issued, or put another way, a hardware or software counter indicates that a permit is available, and throttle 324 is configured to allow calls, as shown by operation 416, the throttle 324 can decrement the number of available permits as shown in operation 418, in configuration parameters memory 328, place a timestamp on the permit, and enable a thread to perform the call at operation 420.
Continuing with the example, and referring to decision point 422, once the call is complete, i.e., the thread performing the call has finished and has performed a close operation, the throttle 324 can be configured to compare the time it took to perform the call against the timestamp in the permit, and a method can be configured to determine whether the time it took to perform the call was longer than the expected response time obtained from the configuration parameter memory 328. As shown by decision point 422, if the throttle 324 determines that the call time exceeded the expected response time, then the throttle 324 can effectively decrease the number of available permits by not incrementing the counter that reflects how many permits are available. As shown by operation 426, if the call time is less than the expected response time, then the counter indicative of the number of available permits can be incremented, and the configuration parameters stored in configuration parameter memory 328 can be updated to reflect how many permits are available.
A specific example of the operational process can include the throttle 324 receiving a request to issue a permit to a thread in order to verify an account logon request. The throttle 324 can access the current configuration parameters stored in temporary memory and receive information that identifies, for example, that 5 permits out of 10 are available, and the expected response time for these types of requests is 15 milliseconds. Since five permits are available in this example, the throttle 324 can allow the call, and decrement the number of available permits to four. When the call is complete, the throttle 324 can check the time that elapsed since the permit was checked out and determine whether the call took longer than 15 milliseconds. If it did not, the throttle 324 can increment the number of available permits stored in memory back to five otherwise, the number will remain at four. In this example, if requests consistently take too long and the system resources are being consumed by an unresponsive data source, the throttle 324 can scale back the connections to it.
Referring now to
Continuing with the example, at decision point 534, if all the data sources that throttle 324 uses are unavailable, in some example embodiments, the throttle 324 can be configured to route the call to a node in the same or a different operating environment of the application server 214 as shown by operations 536. If there are no nodes available to service the call, the call can then be denied as shown by operation 414. In this example, there could be multiple operating environments that service the same types of requests, and the configuration parameters can include information indicating what operating environment a particular throttle should route calls to if, for example, the throttle is set to deny all calls, or there are no available permits in data pool 330.
Referring again to
Referring now to
Referring to operations 604, 606, and 608 of
In some example implementations, a modified configuration parameter can include a parameter changed by an administrator. For example, a user interface 346 of the client 344 can depict information at various levels of detail, and enable an administrator, for example, to modify the configuration parameters for one or all of the throttles. For example, an administrator can access the configuration parameters of an entire class of throttles, e.g., all the throttles that throttle connections to a backend database that includes insurance premium data. In this instance, an administrator could change the parameters that would affect every connection to a database that includes insurance premium data. Additionally, an administrator of the system can select a specific throttle 324, throttling connections to a specific data source 316-1 and affect how this throttle behaves. Put another way, in some embodiments, an administrator can modify the configuration parameters for a specific throttle such as throttle 324 and leave all the other throttles that access similar data alone. In a specific example, the administrator can monitor how the threads of a specific virtual machine accessing a specific data source 216-1 are responding, and decide to manually adjust the expected response time for calls. In this case, the administrator could change the value from, for example, 15 milliseconds to 20 milliseconds, and select a submit button. The manager 340 can be configured to receive a signal indicative of the modified configuration parameter, and modify the configuration parameters that the throttle 324 uses as shown by operation 612.
In at least one specific instance, an administrator of a system may want to deny all calls to a specific data source because, for example, the administrator wants to perform maintenance on the data source, the data source is functioning incorrectly and using too many system resources, the administrator is upgrading the hardware, software, and/or firmware of a data sources, etc. Instead of disabling the web server(s) 212, or taking the entire application server 214 offline, the administrator can toggle a enable/disable flag in the configuration parameters stored in configuration parameter memory 328 displayed in the user interface 346, and the manager 340 can either configure throttle 324 to either deny all calls, or throttle calls. If a subsequent call is made by to the operating environment, throttle 324 can access the modified parameters stored in configuration parameter memory 328, determine that the disable flag has been set, and refuse to issue a permit to a thread even if there are permits available in the permit pool 330. Put another way, the administrator of the system can effectively disable an application server 214 without having to take it offline.
In some embodiments of the present disclosure, in addition to disallowing calls to a data source 216-1, the administrator can specify a data source 216-2 to redirect calls to. For example, in some instances an administrator will want to take a data source 216-1 offline that includes information for a specific service, however the administrator may have configured another data source 216-2 to include the same information. In this example, the user interface 346 of the client 344 can be configured to allow an administrator to enable/disable calls to a data source 216-1, and specify an alternate data source 216-2 to use during the runtime operation of the throttle 324. In this instance, the throttle 324 can receive the call, obtain configuration parameters that specify an alternate data source 216-2, and route the call to that data source 216-2.
The foregoing detailed description has set forth various embodiments of the systems and/or processes via examples and/or operational diagrams. Insofar as such block diagrams, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof.
While particular aspects of the present subject matter described herein have been shown and described, it will be apparent to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from the subject matter described herein and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of the subject matter described herein.
Claims (21)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/924,417 US7840653B1 (en) | 2007-10-25 | 2007-10-25 | Enhanced throttle management system |
US12/951,572 US8266258B1 (en) | 2007-10-25 | 2010-11-22 | Enhanced throttle management system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/951,572 US8266258B1 (en) | 2007-10-25 | 2010-11-22 | Enhanced throttle management system |
US13/610,593 US8667101B1 (en) | 2007-10-25 | 2012-09-11 | Enhanced throttle management system |
US14/176,934 US9755897B1 (en) | 2007-10-25 | 2014-02-10 | Enhanced throttle management system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date | |
---|---|---|---|---|
US11/924,417 Continuation US7840653B1 (en) | 2007-10-25 | 2007-10-25 | Enhanced throttle management system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/610,593 Continuation US8667101B1 (en) | 2007-10-25 | 2012-09-11 | Enhanced throttle management system |
Publications (1)
Publication Number | Publication Date |
---|---|
US8266258B1 true US8266258B1 (en) | 2012-09-11 |
Family
ID=43087372
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/924,417 Active 2028-04-22 US7840653B1 (en) | 2007-10-25 | 2007-10-25 | Enhanced throttle management system |
US12/951,572 Active 2027-11-03 US8266258B1 (en) | 2007-10-25 | 2010-11-22 | Enhanced throttle management system |
US13/610,593 Active US8667101B1 (en) | 2007-10-25 | 2012-09-11 | Enhanced throttle management system |
US14/176,934 Active US9755897B1 (en) | 2007-10-25 | 2014-02-10 | Enhanced throttle management system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/924,417 Active 2028-04-22 US7840653B1 (en) | 2007-10-25 | 2007-10-25 | Enhanced throttle management system |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/610,593 Active US8667101B1 (en) | 2007-10-25 | 2012-09-11 | Enhanced throttle management system |
US14/176,934 Active US9755897B1 (en) | 2007-10-25 | 2014-02-10 | Enhanced throttle management system |
Country Status (1)
Country | Link |
---|---|
US (4) | US7840653B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185728A1 (en) * | 2012-01-18 | 2013-07-18 | Karim M. Abdalla | Scheduling and execution of compute tasks |
US9983955B1 (en) * | 2014-12-22 | 2018-05-29 | Amazon Technologies, Inc. | Remote service failure monitoring and protection using throttling |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312073B2 (en) * | 2009-08-04 | 2012-11-13 | Palo Alto Research Center Incorporated | CAPTCHA-free throttling |
US9229638B1 (en) * | 2011-06-16 | 2016-01-05 | Emc Corporation | Adaptive flow control for networked storage |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835482A (en) | 1995-09-22 | 1998-11-10 | Mci Communications Corporation | Communication system and method providing optimal restoration of failed paths |
US6175869B1 (en) | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
US6182109B1 (en) | 1996-03-08 | 2001-01-30 | International Business Machines Corporation | Dynamic execution unit management for high performance user level network server system |
US6209018B1 (en) | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6714975B1 (en) * | 1997-03-31 | 2004-03-30 | International Business Machines Corporation | Method for targeted advertising on the web based on accumulated self-learning data, clustering users and semantic node graph techniques |
US6728961B1 (en) | 1999-03-31 | 2004-04-27 | International Business Machines Corporation | Method and system for dynamically load balancing a process over a plurality of peer machines |
US20040111506A1 (en) | 2002-12-10 | 2004-06-10 | International Business Machines Corporation | System and method for managing web utility services |
US20040268176A1 (en) | 2003-06-20 | 2004-12-30 | International Business Machines Corporation | System and method for testing servers and taking remedial action |
US20040267916A1 (en) * | 2003-06-25 | 2004-12-30 | International Business Machines Corporation | Method for improving performance in a computer storage system by regulating resource requests from clients |
US6859834B1 (en) | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
US6865601B1 (en) | 2000-02-11 | 2005-03-08 | Hewlett-Packard Development Company L.P. | Method for allocating web sites on a web server cluster based on balancing memory and load requirements |
US6950848B1 (en) | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US20050262183A1 (en) | 2003-08-14 | 2005-11-24 | Oracle International Corporation | Connection pool use of runtime load balancing service performance advisories |
US7219346B2 (en) | 2000-12-05 | 2007-05-15 | Microsoft Corporation | System and method for implementing a client side HTTP stack |
US7225244B2 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US7263597B2 (en) | 2000-05-20 | 2007-08-28 | Ciena Corporation | Network device including dedicated resources control plane |
US7379994B2 (en) * | 2000-10-26 | 2008-05-27 | Metilinx | Aggregate system resource analysis including correlation matrix and metric-based analysis |
US20080222646A1 (en) | 2007-03-06 | 2008-09-11 | Lev Sigal | Preemptive neural network database load balancer |
US20110145383A1 (en) * | 2000-02-28 | 2011-06-16 | Bishop David A | Enterprise management system |
US7975001B1 (en) * | 2007-02-14 | 2011-07-05 | The Mathworks, Inc. | Bi-directional communication in a parallel processing environment |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006249A (en) * | 1997-08-19 | 1999-12-21 | The Chase Manhattan Bank | Method and apparatus for concurrent data processing |
US6493749B2 (en) * | 1998-08-17 | 2002-12-10 | International Business Machines Corporation | System and method for an administration server |
AU5756601A (en) * | 2000-05-08 | 2001-11-20 | Transilica Inc | Priority in a portable thread environment |
US20020001307A1 (en) * | 2000-05-20 | 2002-01-03 | Equipe Communications Corporation | VPI/VCI availability index |
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US7155515B1 (en) * | 2001-02-06 | 2006-12-26 | Microsoft Corporation | Distributed load balancing for single entry-point systems |
US20030120822A1 (en) * | 2001-04-19 | 2003-06-26 | Langrind Nicholas A. | Isolated control plane addressing |
US20020165961A1 (en) * | 2001-04-19 | 2002-11-07 | Everdell Peter B. | Network device including dedicated resources control plane |
US8204972B2 (en) * | 2001-06-29 | 2012-06-19 | International Business Machines Corporation | Management of logical networks for multiple customers within a network management framework |
US7694303B2 (en) * | 2001-09-25 | 2010-04-06 | Sun Microsystems, Inc. | Method for dynamic optimization of multiplexed resource partitions |
KR100772999B1 (en) * | 2002-06-25 | 2007-11-05 | 인터내셔널 비지네스 머신즈 코포레이션 | Method and system for monitoring performance of applications in a distributed environment |
US20040260745A1 (en) * | 2003-06-18 | 2004-12-23 | Gage Christopher A. S. | Load balancer performance using affinity modification |
US8954595B2 (en) * | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8549149B2 (en) * | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US7925711B1 (en) * | 2006-12-15 | 2011-04-12 | The Research Foundation Of State University Of New York | Centralized adaptive network memory engine |
US7917599B1 (en) * | 2006-12-15 | 2011-03-29 | The Research Foundation Of State University Of New York | Distributed adaptive network memory engine |
US8539359B2 (en) * | 2009-02-11 | 2013-09-17 | Jeffrey A. Rapaport | Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic |
CA2795128A1 (en) * | 2010-03-31 | 2011-10-06 | Mediamath, Inc. | Systems and methods for integration of a demand side platform |
US9069609B2 (en) * | 2012-01-18 | 2015-06-30 | Nvidia Corporation | Scheduling and execution of compute tasks |
US8886775B2 (en) * | 2012-03-08 | 2014-11-11 | Cisco Technology, Inc. | Dynamic learning by a server in a network environment |
US8954574B1 (en) * | 2012-05-23 | 2015-02-10 | Amazon Technologies, Inc. | Best practice analysis, migration advisor |
US8832241B2 (en) * | 2012-06-15 | 2014-09-09 | Citrix Systems, Inc. | Systems and methods for validating a configuration in a cluster |
US9262231B2 (en) * | 2012-08-07 | 2016-02-16 | Advanced Micro Devices, Inc. | System and method for modifying a hardware configuration of a cloud computing system |
US9628344B2 (en) * | 2012-12-13 | 2017-04-18 | Level 3 Communications, Llc | Framework supporting content delivery with reducer services network |
US9262642B1 (en) * | 2014-01-13 | 2016-02-16 | Amazon Technologies, Inc. | Adaptive client-aware session security as a service |
US9438599B1 (en) * | 2014-03-31 | 2016-09-06 | Amazon Technologies, Inc. | Approaches for deployment approval |
US9424075B1 (en) * | 2015-01-30 | 2016-08-23 | Amazon Technologies, Inc. | Dynamic virtual partitioning for delayed queues |
US9794292B2 (en) * | 2015-10-26 | 2017-10-17 | Amazon Technologies, Inc. | Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment |
-
2007
- 2007-10-25 US US11/924,417 patent/US7840653B1/en active Active
-
2010
- 2010-11-22 US US12/951,572 patent/US8266258B1/en active Active
-
2012
- 2012-09-11 US US13/610,593 patent/US8667101B1/en active Active
-
2014
- 2014-02-10 US US14/176,934 patent/US9755897B1/en active Active
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835482A (en) | 1995-09-22 | 1998-11-10 | Mci Communications Corporation | Communication system and method providing optimal restoration of failed paths |
US6182109B1 (en) | 1996-03-08 | 2001-01-30 | International Business Machines Corporation | Dynamic execution unit management for high performance user level network server system |
US6714975B1 (en) * | 1997-03-31 | 2004-03-30 | International Business Machines Corporation | Method for targeted advertising on the web based on accumulated self-learning data, clustering users and semantic node graph techniques |
US6209018B1 (en) | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US20010010053A1 (en) | 1997-11-13 | 2001-07-26 | Ofer Ben-Shachar | Service framework for a distributed object network system |
US6175869B1 (en) | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
US6728961B1 (en) | 1999-03-31 | 2004-04-27 | International Business Machines Corporation | Method and system for dynamically load balancing a process over a plurality of peer machines |
US6859834B1 (en) | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
US6865601B1 (en) | 2000-02-11 | 2005-03-08 | Hewlett-Packard Development Company L.P. | Method for allocating web sites on a web server cluster based on balancing memory and load requirements |
US20110145383A1 (en) * | 2000-02-28 | 2011-06-16 | Bishop David A | Enterprise management system |
US6950848B1 (en) | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US7225244B2 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US7263597B2 (en) | 2000-05-20 | 2007-08-28 | Ciena Corporation | Network device including dedicated resources control plane |
US7379994B2 (en) * | 2000-10-26 | 2008-05-27 | Metilinx | Aggregate system resource analysis including correlation matrix and metric-based analysis |
US7219346B2 (en) | 2000-12-05 | 2007-05-15 | Microsoft Corporation | System and method for implementing a client side HTTP stack |
US7748004B2 (en) * | 2000-12-05 | 2010-06-29 | Microsoft Corporation | System and method for implementing a client side HTTP stack |
US20040111506A1 (en) | 2002-12-10 | 2004-06-10 | International Business Machines Corporation | System and method for managing web utility services |
US20040268176A1 (en) | 2003-06-20 | 2004-12-30 | International Business Machines Corporation | System and method for testing servers and taking remedial action |
US20040267916A1 (en) * | 2003-06-25 | 2004-12-30 | International Business Machines Corporation | Method for improving performance in a computer storage system by regulating resource requests from clients |
US20080244590A1 (en) * | 2003-06-25 | 2008-10-02 | International Business Machines Corporation | Method for improving performance in a computer storage system by regulating resource requests from clients |
US20050262183A1 (en) | 2003-08-14 | 2005-11-24 | Oracle International Corporation | Connection pool use of runtime load balancing service performance advisories |
US7975001B1 (en) * | 2007-02-14 | 2011-07-05 | The Mathworks, Inc. | Bi-directional communication in a parallel processing environment |
US20080222646A1 (en) | 2007-03-06 | 2008-09-11 | Lev Sigal | Preemptive neural network database load balancer |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185728A1 (en) * | 2012-01-18 | 2013-07-18 | Karim M. Abdalla | Scheduling and execution of compute tasks |
US9069609B2 (en) * | 2012-01-18 | 2015-06-30 | Nvidia Corporation | Scheduling and execution of compute tasks |
US9983955B1 (en) * | 2014-12-22 | 2018-05-29 | Amazon Technologies, Inc. | Remote service failure monitoring and protection using throttling |
Also Published As
Publication number | Publication date |
---|---|
US9755897B1 (en) | 2017-09-05 |
US7840653B1 (en) | 2010-11-23 |
US8667101B1 (en) | 2014-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424547B2 (en) | File sharing device and inter-file sharing device data migration method | |
US7406537B2 (en) | Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes | |
US5857102A (en) | System and method for determining and manipulating configuration information of servers in a distributed object environment | |
US6785713B1 (en) | Method and apparatus for communicating among a network of servers utilizing a transport mechanism | |
US9465720B2 (en) | Methods and systems for internally debugging code in an on-demand service environment | |
US7793308B2 (en) | Setting operation based resource utilization thresholds for resource use by a process | |
US6922724B1 (en) | Method and apparatus for managing server load | |
US7634388B2 (en) | Providing policy-based operating system services in an operating system on a computing system | |
US7451071B2 (en) | Data model for automated server configuration | |
CN100479456C (en) | Method and system of remote dynamic configuration of a web server to provide capacity on demand | |
US7953860B2 (en) | Fast reorganization of connections in response to an event in a clustered computing system | |
US10051032B2 (en) | Method, server and system for converging desktop application and web application | |
AU2004288532B2 (en) | Method and system for accessing and managing virtual machines | |
EP0759591B1 (en) | Event management service | |
US9276864B1 (en) | Dynamic network traffic throttling | |
EP2616966B1 (en) | System and method for connecting an application server with a clustered database | |
US8190740B2 (en) | Systems and methods for dynamically provisioning cloud computing resources | |
US6247057B1 (en) | Network server supporting multiple instance of services to operate concurrently by having endpoint mapping subsystem for mapping virtual network names to virtual endpoint IDs | |
US8606897B2 (en) | Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network | |
US7174557B2 (en) | Method and apparatus for event distribution and event handling in an enterprise | |
US7330872B2 (en) | Method for distributed program execution with web-based file-type association | |
JP6124898B2 (en) | System and method for managing server configurations including GUI navigation, property sheets, and autotab completion | |
US20030069923A1 (en) | Method for distributed program execution with server-based file type association | |
US20030204562A1 (en) | System and process for roaming thin clients in a wide area network with transparent working environment | |
US6988140B2 (en) | Mechanism for servicing connections by disassociating processing resources from idle connections and monitoring the idle connections for activity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: UIPCO, LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UNITED SERVICES AUTOMOBILE ASSOCIATION (USAA);REEL/FRAME:041761/0324 Effective date: 20170324 |
|
AS | Assignment |
Owner name: UNITED SERVICES AUTOMOBILE ASSOCIATION (USAA), TEX Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UIPCO, LLC;REEL/FRAME:042638/0379 Effective date: 20170607 |