Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Control of Dynamic Threads Pool for Concurrent Remote Procedure Calls

IP.com Disclosure Number: IPCOM000115482D
Original Publication Date: 1995-May-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 77K

Publishing Venue

IBM

Related People

Chan, VS: AUTHOR [+3]

Abstract

A method for preserving system resources in a Distributed Computing Environment is described. An algorithm controls the creation and destruction of executor threads of an application server.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Control of Dynamic Threads Pool for Concurrent Remote Procedure Calls

      A method for preserving system resources in a Distributed
Computing Environment is described.  An algorithm controls the
creation and destruction of executor threads of an application
server.

      The design creates only a fraction of the threads pool
requested by the application at initialization time and varies the
number of threads when the load of the server changes.

There are three key variables that control the dynamic-threads pool:
  1.  the initial pool size or number of executor threads that will
be
       created at server initialization by the RPC runtime.
        After the initial number of executor threads are created,
         the RPC runtime will start listening on incoming calls.
  2.  the maximum threshold or maximum number of idling executor
       threads that the runtime maintains.
  When an RPC call is completed, the current executor thread
   will be destroyed if the current total number of idling threads
   is greater than or equal to the maximum threshold value.  The
   maximum threshold value is initialized to the value of the
   initial pool size but it can be changed by setting an environment
   variable.
  3.  the minimum threshold or minimum number of idling executor
       threads that the RPC runtime maintains.
  The default value of the minimum threshold is set to 75% of
   the maximum threshold value.   The minimum threshold value can be
   changed by setting an environment variable.

      Initialization of the dynamic executor thread will now be
described.  This is the number of initial executor threads that will
be created, before the RPC runtime will start listening on calls.

      The number of initial executor threads is calculated based on
the maximum number of concurrent calls specified by the application
in the API call rpc_server_listen.  The following table shows the
algorithm used to calculate the number of initial executor threads.
The symbol x represents the number of concurrent calls specified in
the rpc_server_listen API call.
  no_of_concurrent_calls(x)         no_initial_thread
      x < 10                        x(same as no_of_concurren...