Patents by Inventor Erik A. Daughtrey

Erik A. Daughtrey has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7703101
    Abstract: Incoming work units (e.g., requests) in a computing workload are analyzed and classified according to predicted execution. Preferred embodiments track which instrumented wait points are encountered by the executing work units, and this information is analyzed to dynamically and autonomically create one or more recognizers to programmatically recognize similar, subsequently-received work units. When a work unit is recognized, its execution behavior is then predicted. Execution resources are then allocated to the work units in view of these predictions. The recognizers may be autonomically evaluated or tuned, thereby adjusting to changing workload characteristics. The disclosed techniques may be used advantageously in application servers, message-processing software, and so forth.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: April 20, 2010
    Assignee: International Business Machines Corporation
    Inventors: Gennaro A. Cuomo, Erik A. Daughtrey
  • Patent number: 7552215
    Abstract: The present invention provides a method, system, and computer program product for supporting a large number of intermittently used application clusters without consuming all the resources needed to run server processes for all the application clusters all the time. A method in accordance with the present invention comprises: holding an application request for a dormant application cluster in a holding zone; changing a status of the dormant application cluster to active; changing a status of an unused active application cluster to dormant; stopping server processes for the newly dormant application cluster; starting server processes for the newly active application cluster; and directing the application request held in the holding zone to the server processes for the newly active application cluster.
    Type: Grant
    Filed: September 29, 2004
    Date of Patent: June 23, 2009
    Assignee: International Business Machines Corporation
    Inventors: Nikolaos Anerousis, Gennaro A. Cuomo, Erik A. Daughtrey, Brian K. Martin, Giovanni Pacifici, Michael Spreitzer, Malgorzata Steinder, Asser N. Tantawi
  • Patent number: 7275239
    Abstract: Methods, systems, computer program products, and methods of doing business whereby programmatically-generated byte code insertion is used to perform run-time tracing of code that potentially encounters a wait during execution. The byte code insertion is performed at load time, and inserts byte codes before and after a located (potential) wait point. The inserted byte code functions to gather execution statistics, such as a time stamp before invoking a located wait point and a time stamp after invoking the located wait point. Preferred embodiments allow this tracing to be selectively activated/deactivated.
    Type: Grant
    Filed: February 10, 2003
    Date of Patent: September 25, 2007
    Assignee: International Business Machines Corporation
    Inventors: Gennaro A. Cuomo, Erik A. Daughtrey, Michael L. Fraenkel
  • Publication number: 20070180453
    Abstract: Embodiments of the present invention address deficiencies of the art in respect to deploying heterogeneous workloads in separate resource pools and provide a method, system and computer program product for on-demand application scheduling in a heterogeneous environment. In one embodiment of the invention, a method for balancing nodal allocations in a resource pool common to both transactional workloads and long running workloads can include parsing a service policy for both transactional workloads and also long running workloads. An allocation of nodes for a common resource pool for the transactional and long running workloads can be determined to balance performance requirements for the transactional workloads and long running workloads specified by the service policy. Subsequently, the determined allocation can be applied to the common resource pool.
    Type: Application
    Filed: January 27, 2006
    Publication date: August 2, 2007
    Applicant: International Business Machines Corporation
    Inventors: Michael Burr, Erik Daughtrey, Charles Fricano, Daniel Labrecque, Gabriel Montero, Sajan Sankaran, Michael Spreitzer, Malgorzata Steinder
  • Publication number: 20070157212
    Abstract: In alternate embodiments, the invention is a message-passing process for routing communications between a transmitting parallel process and a receiving parallel process executing in an application server environment, or a machine or computer-readable memory having the message-passing process programmed therein, the message-passing process comprising: linking a context key to an addressable computing resource in the application server environment; linking the receiving parallel process to the context key; receiving a communication from the transmitting parallel process, wherein the communication transmits the context key; and routing the communication to the addressable computing resource linked to the context key.
    Type: Application
    Filed: January 4, 2006
    Publication date: July 5, 2007
    Inventors: Douglas Berg, Erik Daughtrey, Donald Pazel
  • Patent number: 7237242
    Abstract: Thread pools in a multithreaded server are programmatically adjusted, based on observed statistics from the server's inbound workload. In a multithreaded server environment, response time to end users is improved while increasing the efficiency of software execution and resource usage. Execution time and wait/queued time are tracked, for various types of requests being serviced by a server. Multiple logical pools of threads are used to service these requests, and inbound requests are directed to a selected one of these pools such that requests of similar execution-time requirements are serviced by the threads in that pool. The number and size of thread pools may be adjusted programmatically, and the distribution calculation (i.e., determining which inbound requests should be assigned to which pools) is a programmatic determination. In preferred embodiments, only one of these variables is adjusted at a time, and the results are monitored to determine whether the effect was positive or negative.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: June 26, 2007
    Assignee: International Business Machines Corporation
    Inventors: Christopher James Blythe, Gennaro A. Cuomo, Erik A. Daughtrey, Matt R. Hogstrom
  • Patent number: 7207043
    Abstract: Workload is programmatically distributed across a set of execution resources. In a multithreaded server environment, response time to end users is improved while increasing the efficiency of software execution and resource usage. Execution time and wait/queued time are tracked, for various types of requests being serviced by a server. Multiple logical pools of threads are used to service these requests, and inbound requests are directed to a selected one of these pools such that requests of similar execution-time requirements are serviced by the threads in that pool. The number and size of thread pools may be adjusted programmatically, and the distribution calculation (i.e., determining which inbound requests should be assigned to which pools) is a programmatic determination. In preferred embodiments, only one of these variables is adjusted at a time, and the results are monitored to determine whether the effect was positive or negative.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: April 17, 2007
    Assignee: International Business Machines Corporation
    Inventors: Christopher James Blythe, Gennaro A. Cuomo, Erik A. Daughtrey, Matt R. Hogstrom
  • Publication number: 20060085544
    Abstract: The invention described is a new and useful process for minimizing the overall rebate a provider disburses to customers when a service level agreement (SLA) breach occurs in a utility computing environment. Specifically, the process compares performance data and resource usage with the SLAs of the customers, and reallocates shared resources to those customers who represent a lesser penalty to the provider in the event of an SLA breach. The process determines which resources, used by customers representing the lesser penalty, are operating below peak capacity. The process then reallocates these under-utilized resources to those customers requiring additional resources to meet SLA thresholds. If all resources are operating at peak capacity, the process reallocates the resources to those customers whose SLAs represent a greater penalty in the event of an SLA breach as compared to those customers whose SLAs provide for a lesser penalty, thereby minimizing the total rebate due upon an SLA breach.
    Type: Application
    Filed: October 18, 2004
    Publication date: April 20, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Yen-Fu Chen, Erik Daughtrey, Hari Shankar, Wenjian Qiao
  • Publication number: 20060075101
    Abstract: The present invention provides a method, system, and computer program product for supporting a large number of intermittently used application clusters without consuming all the resources needed to run server processes for all the application clusters all the time. A method in accordance with the present invention comprises: holding an application request for a dormant application cluster in a holding zone; changing a status of the dormant application cluster to active; changing a status of an unused active application cluster to dormant; stopping server processes for the newly dormant application cluster; starting server processes for the newly active application cluster; and directing the application request held in the holding zone to the server processes for the newly active application cluster.
    Type: Application
    Filed: September 29, 2004
    Publication date: April 6, 2006
    Applicant: International Business Machines Corporation
    Inventors: Nikolaos Anerousis, Gennaro Cuomo, Erik Daughtrey, Brian Martin, Giovanni Pacifici, Michael Spreitzer, Malgorzata Steinder, Asser Tantawi
  • Publication number: 20050183084
    Abstract: Incoming work units (e.g., requests) in a computing workload are analyzed and classified according to predicted execution. Preferred embodiments track which instrumented wait points are encountered by the executing work units, and this information is analyzed to dynamically and autonomically create one or more recognizers to programmatically recognize similar, subsequently-received work units. When a work unit is recognized, its execution behavior is then predicted. Execution resources are then allocated to the work units in view of these predictions. The recognizers may be autonomically evaluated or tuned, thereby adjusting to changing workload characteristics. The disclosed techniques may be used advantageously in application servers, message-processing software, and so forth.
    Type: Application
    Filed: February 13, 2004
    Publication date: August 18, 2005
    Applicant: International Business Machines Corporation
    Inventors: Gennaro Cuomo, Erik Daughtrey
  • Publication number: 20040158819
    Abstract: Methods, systems, computer program products, and methods of doing business whereby programmatically-generated byte code insertion is used to perform run-time tracing of code that potentially encounters a wait during execution. The byte code insertion is performed at load time, and inserts byte codes before and after a located (potential) wait point. The inserted byte code functions to gather execution statistics, such as a time stamp before invoking a located wait point and a time stamp after invoking the located wait point. Preferred embodiments allow this tracing to be selectively activated/deactivated.
    Type: Application
    Filed: February 10, 2003
    Publication date: August 12, 2004
    Applicant: International Business Machines Corporation
    Inventors: Gennaro A. Cuomo, Erik A. Daughtrey, Michael L. Fraenkel
  • Publication number: 20040139433
    Abstract: Workload is programmatically distributed across a set of execution resources. In a multithreaded server environment, response time to end users is improved while increasing the efficiency of software execution and resource usage. Execution time and wait/queued time are tracked, for various types of requests being serviced by a server. Multiple logical pools of threads are used to service these requests, and inbound requests are directed to a selected one of these pools such that requests of similar execution-time requirements are serviced by the threads in that pool. The number and size of thread pools may be adjusted programmatically, and the distribution calculation (i.e., determining which inbound requests should be assigned to which pools) is a programmatic determination. In preferred embodiments, only one of these variables is adjusted at a time, and the results are monitored to determine whether the effect was positive or negative.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 15, 2004
    Applicant: International Business Machines Corporation
    Inventors: Christopher James Blythe, Gennaro A. Cuomo, Erik A. Daughtrey, Matt R. Hogstrom
  • Publication number: 20040139434
    Abstract: Thread pools in a multithreaded server are programmatically adjusted, based on observed statistics from the server's inbound workload. In a multithreaded server environment, response time to end users is improved while increasing the efficiency of software execution and resource usage. Execution time and wait/queued time are tracked, for various types of requests being serviced by a server. Multiple logical pools of threads are used to service these requests, and inbound requests are directed to a selected one of these pools such that requests of similar execution-time requirements are serviced by the threads in that pool. The number and size of thread pools may be adjusted programmatically, and the distribution calculation (i.e., determining which inbound requests should be assigned to which pools) is a programmatic determination. In preferred embodiments, only one of these variables is adjusted at a time, and the results are monitored to determine whether the effect was positive or negative.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 15, 2004
    Applicant: International Business Machines Corporation
    Inventors: Christopher James Blythe, Gennaro A. Cuomo, Erik A. Daughtrey, Matt R. Hogstrom