Load-balancing utilizing one or more threads of execution for implementing a protocol stack
AssigneeSun Microsystems, Inc.
InventorsCahya Adi Masputra, Kacheong Poon
Life of this patent
Estimating the term…
Abstract
Embodiments of the present invention provide a novel method of implementing a network communication protocol. In one embodiment, the state of the network communication process is determined based upon one or more conditions. The protocol stack is then executed as a single thread of execution if the network communication process is in a first state. Alternatively, the protocol stack is executed as a receive thread of execution and a drainer thread of execution if the network communication process is in a second state.
Claims35
A network device comprising:
- a interface module communicatively coupled to a network for receiving a data packet;
- a computer-readable medium for storing information and instructions;
- a processor for acting upon said information and instructions to provide the functions comprising;
- a protocol stack for processing a header of said data packet comprising;
- a single thread of execution when a first state of said network device exists;
- and
- a receive thread of execution and a drainer thread of execution when a second state of said network device exists;
- and
- an application wherein a payload of said data packet is utilized.
A method of performing network communication comprising:
- buffering a plurality of data packets;
- processing said plurality of data packets according to a protocol utilizing a single thread of execution during a first condition;
- and
- processing said plurality of data packets according to a protocol utilizing a receive thread of execution and a drainer thread of execution during a second condition.
A method of implementing a network communication protocol stack comprising:
- determining a state of said network communication process;
- executing a single thread of execution when said state comprises a low system load;
- and
- executing a receive thread of execution and a drainer thread of execution when said state comprises a high system load.
A computer-readable medium having instructions which when executed by a network device implement a protocol stack comprising:
- buffering a data packet;
- determining a state of said network device;
- processing a first and second portion of a header of said data packet utilizing a first thread of execution when said state comprises a low system load;
- processing said first portion of said header of said packet utilizing a second thread of execution and handing-off processing of said second portion of said header to a third thread of execution, when said state comprises a high system load;
- and
- delivering a payload of said data packet to a destination application.
Dependencies are inferred from the claim text.