Method and system for reallocating computational resources using resource reallocation enabling information
First Claim
1. A method for managing a pool of computational resources, each computational resource allocatable from the pool of resources, used for a period of time following allocation, and deallocated and returned to the pool following allocation and use, wherein the computational resources are communications ports, the method comprising:
- storing resource descriptions and resource-reallocation-enabling information in entries of a resource table, wherein the resource-reallocation-enabling information in each entry is a message sequence number;
when receiving a resource-allocation request,returning a resource identifier and resource-reallocation-enabling information contained in an available entry of the resource table, andfreeing the available entry of the resource table; and
when receiving a request to deallocate a resource,storing an identifier of the resource and resource-reallocation-enabling information into a next free entry of the resource table.
1 Assignment
0 Petitions
Accused Products
Abstract
Various embodiments of the present invention are directed to an efficient and flexible method and system for managing a pool of computational resources that can be allocated from a resource pool, used for varying periods of time, and eventually returned to the resource pool. Certain embodiments of the present invention are directed to a method and system for efficiently managing ephemeral ports used for short-duration communications connections. In one embodiment of the present invention, an array of port tables is employed to store and manage a large space of ephemeral protocol ports. Each port table is a circular buffer, each entry of which includes a port number that uniquely identifies a communications port, a sequence number that allows the port to be immediately reallocated, and any other additional protocol-specific information that may be associated with the port. A non-local-port-number portion of a connection address, comprising a remote IP address, a remote port number, and a local IP address, may be hashed to generate a numerical reference to a particular port table within the array, or list, of port tables, and ephemeral ports for the non-local-port-number portion of a connection address are allocated from, and deallocated and returned to, the numerically identified port table.
54 Citations
16 Claims
-
1. A method for managing a pool of computational resources, each computational resource allocatable from the pool of resources, used for a period of time following allocation, and deallocated and returned to the pool following allocation and use, wherein the computational resources are communications ports, the method comprising:
-
storing resource descriptions and resource-reallocation-enabling information in entries of a resource table, wherein the resource-reallocation-enabling information in each entry is a message sequence number; when receiving a resource-allocation request, returning a resource identifier and resource-reallocation-enabling information contained in an available entry of the resource table, and freeing the available entry of the resource table; and when receiving a request to deallocate a resource, storing an identifier of the resource and resource-reallocation-enabling information into a next free entry of the resource table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for managing a pool of communications ports, each communications port allocatable from the pool of communications ports, used for a period of time following allocation, and deallocated and returned to the pool following allocation and use, the method comprising:
-
storing communications-port descriptions paired with message sequence numbers in entries of a port table; when receiving a communications-port-allocation request, returning a communications-port identifier and a sequence number stored within an available entry of the communications-port table, and freeing the available entry of the port table; and when receiving a request to deallocate a communications port, storing a communications-port identifier and a sequence number into a next free entry of the port table. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification