TL;DR: This paper shows that the effectiveness of RED depends, to a large extent, on the appropriate parameterization of the RED queue, and proposes and experiments with more adaptive RED gateways which self-parameterize themselves based on the traffic mix.
Abstract: The congestion control mechanisms used in TCP have been the focus of numerous studies and have undergone a number of enhancements. However, even with these enhancements, TCP connections still experience alarmingly high loss rates, especially during times of congestion. To alleviate this problem, the IETF is considering active queue management mechanisms, such as random early detection (RED), for deployment in the network. In this paper, we first show that the effectiveness of RED depends, to a large extent, on the appropriate parameterization of the RED queue. We then show that there is no single set of RED parameters that work well under different congestion scenarios. In light of this observation, we propose and experiment with more adaptive RED gateways which self-parameterize themselves based on the traffic mix. The results show that traffic cognizant parameterization of RED gateways can effectively reduce packet loss, while maintaining high link utilizations under a range of network loads.
TL;DR: In this paper, an integrated circuit for processing streams of data generally and streams of packets in particular is described. The integrated circuit includes a number of packet processors ( 307, 313, 303 ), a table look up engine ( 301 ), a queue management engine ( 305 ) and a buffer management engine( 315 ).
Abstract: An integrated circuit ( 203 ) for use in processing streams of data generally and streams of packets in particular. The integrated circuit ( 203 ) includes a number of packet processors ( 307, 313, 303 ), a table look up engine ( 301 ), a queue management engine ( 305 ) and a buffer management engine ( 315 ). The packet processors ( 307, 313, 303 ) include a receive processor ( 421 ), a transmit processor ( 427 ) and a risc core processor ( 401 ), all of which are programmable. The receive processor ( 421 ) and the core processor ( 401 ) cooperate to receive and route packets being received and the core processor ( 401 ) and the transmit processor ( 427 ) cooperate to transmit packets. Routing is done by using information from the table look up engine ( 301 ) to determine a queue ( 215 ) in the queue management engine ( 305 ) which is to receive a descriptor ( 217 ) describing the received packet's payload.
TL;DR: In this paper, the authors propose a communication selection process for out-of-order selection of technical support skills in a call center call center, which is based on assigning a plurality of different values to each communication in the skill queue, with each of the values corresponding to a particular level of priority for access to the skill.
Abstract: Calls or other communications requiring a particular skill for handling are placed in a corresponding skill queue in a call center. One of a plurality of different values is assigned to each of the communications in the skill queue, with each of the values corresponding to a particular level of priority for access to the skill. For example, high, mid and low values may be assigned for communications placed in a technical support skill queue. A given communication is selected from the queue as a function of the assigned values, time advantages associated with the values, and the wait times of the communications in the queue. This communication selection process may include, for example, identifying communications in the queue which are candidates for out-of-order selection, computing an adjusted wait time for each of the identified communications, and selecting the communication with the highest adjusted wait time. The adjusted wait time for a given communication may be computed as, for example, a sum of the wait time for that communication and an advantage adjustment associated with the corresponding value. The selected communication may be placed in a call selection consideration pool for a multi-skill agent.
TL;DR: In this article, the authors propose a hierarchical scheduler comprising an exhaustive sub-scheduler servicing a plurality of lower level subschedulers in accordance with non-equal priority levels assigned thereto.
Abstract: The method for servicing queues holding messages, such as ATM data packets, for subsequent processing or transmission to a resource such as a communications link having a finite processing capability comprises the steps of servicing each queue by forwarding the messages thereof to the resource at time intervals corresponding to a guaranteed service rate of the queue, provided the queue is non-empty; and, during time intervals when none of the queues have messages being forwarded to the resource in conformance with the above step, servicing the queues in accordance with a proportion of a remaining or idle resource bandwidth allocated to each queue. The method is preferably carried out by a hierarchical scheduler comprising an exhaustive sub-scheduler servicing a plurality of lower level sub-schedulers in accordance with non-equal priority levels assigned thereto; M non-work conserving shaper sub-schedulers feeding the exhaustive sub-scheduler; and N work conserving idle bandwidth sub-schedulers feeding the exhaustive sub-scheduler. In such a scheduler, a queue concurrently contends for service by one of the shaper sub-schedulers and one of the idle bandwidth sub-schedulers, wherein the shaper sub-scheduler servicing the queue has a higher priority level with respect to the exhaustive sub-scheduler than the idle bandwidth sub-scheduler servicing the same queue. The technique distributes the idle bandwidth of the resource in a way which is de-coupled from the guaranteed service rates of the queues, thereby providing a more efficient bandwidth distribution.
TL;DR: In this article, the authors describe a router that stores received data packets in one or more ingress data queues and processes them at a dynamically adjusted packet flow rate, based on current operating conditions (e.g., current processor or memory utilization).
Abstract: Methods and system architectures are disclosed for controlling the processing of data packets in a router, which stores received data packets in one or more ingress data queues. In a first aspect of the disclosure, packets held in an ingress data queue are processed by the router at a dynamically adjusted packet flow rate. The ingress data queue has a data queue head structure, including a packets-to-be-processed field. The packets-to-be-processed field has a value indicating a selected number of packets to be processed from the ingress data queue in a given processing interval. In this manner, the packet flow rate of the ingress data queue is adjusted by varying the value of the packets-to-be-processed field, based on current operating conditions (e.g., current processor or memory utilization) of the router.
TL;DR: In this article, the priority of the second request queue is dynamically raised over that of the first request queue, up to a maximum predetermined number of requests, having been serviced by the first queue.
Abstract: Dynamic arbitration based on a high priority transaction type. A first memory access request is received at a first request queue. If the first memory access request is of a first type, the priority of the first request queue is dynamically raised over the priority of a second request queue. The priority of the second request queue is dynamically raised over that of the first request queue when requests of the first type in the first request queue, up to a maximum predetermined number of requests, have been serviced.
TL;DR: In this article, a web crawler enqueues data sets addresses in a set of queues, with all data set addresses sharing a common host address being stored in a respective common one of the queues.
Abstract: A web crawler downloads data sets from among a plurality of host computers. The web crawler enqueues data set addresses in a set of queues, with all data set addresses sharing a respective common host address being stored in a respective common one of the queues. Each non-empty queue is assigned a next download time. Multiple threads substantially concurrently process the data set addresses in the queues. The number of queues is at least as great as the number of threads, and the threads are dynamically assigned to the queues. In particular, each thread selects a queue not being serviced by any of the other threads. The queue is selected in accordance with the next download times assigned to the queues. The data set corresponding to a data set address in the selected queue is downloaded and processed, and the data set address is dequeued from the selected queue. When the selected queue is not empty after the dequeuing step, it is assigned an updated download time. Then the thread deselects the selected queue, and the process of selecting a queue and processing a data set repeats. The next download time assigned to each queue is preferably a function of the length of time it took to download a previous document whose address was stored in the queue. For instance, the next download time may be set equal to the current time plus the a scaling constant multiplied by the download time of the previous document.
TL;DR: In this article, a queuing system model for transcoding of digital video images using a queue-based architecture is proposed, in which multiple transcoding processors are arranged in parallel, and the processing units are assigned to any available processor from a common queue.
Abstract: A method and apparatus for transcoding of digital video images using a queuing system model. Multiple transcoding processors are arranged in parallel. In a first architecture, an input bitstream of n channels is partitioned into processing units, such as slices or frames, the processing units are split into m sub-streams, and each sub-stream is processed in a corresponding branch. A separate queue is provided for each sub-stream. In a second architecture, the processing units are assigned to any available processor from a common queue. Independent processing units are processed concurrently according to the queuing system model to minimize an average processing time. In particular, processing of a reference picture (I-picture) unit and an associated predicted picture (P- or B-picture unit) unit at the same time is avoided. A further technique performs record-keeping and coordinates the transfer of the reference picture unit from its processor to the processor for the associated predicted picture unit after the reference picture unit has been processed. Embodiments with picture re-ordering and use of a priority buffer are also provided.
TL;DR: In this article, the authors propose a queuing architecture and a method for scheduling disk drive access requests in a video server, which employs at least two access request queues for each disk drive within a disk drive array, and a queue selector for selecting the first and second queues.
Abstract: A queuing architecture and method for scheduling disk drive access requests in a video server. The queuing architecture employs at least two access request queues for each disk drive within a disk drive array, and a queue selector for selecting the first and second queues. The first queue is for disk access requests by steady-state users requesting new data streams who are currently viewing a program from the video server. The second queue is for all other types of disk access requests, including requests by new users, requests for loading content, disk maintenance, meta-data synchronizing, and the like. Steady-state disk access requests are serviced in order of ascending time deadlines. The queue selector gives highest priority to requests in the first queue, and requests from the second queue are serviced only upon a guarantee that all of the steady-state requests in the first queue will meet their time deadlines in the worst case access times for the disk drives. The second queue may comprise multiple queues to provide a queuing hierarchy including a third queue. Non-steady-state disk access requests are serviced on a first-in-first-out basis. The queue selector establishes priority in response to the location of the data upon a disk in a disk drive, and data may be stored in a disk drive based upon the queuing priority. The selecting and forwarding of the access requests to a disk drive may be performed repeatedly while an internet queue within a disk drive is not full, and there are outstanding access requests for that disk drive.
TL;DR: In this article, a method and an apparatus for controlling a rate at which packets are transmitted to a network node having a queue and a network element employing same is described, where the method and apparatus cooperate to generate a probability value in response to queue occupancy and desired queue occupancy.
Abstract: A method and apparatus for controlling a rate at which packets are transmitted to a network node having a queue and a network element employing same is described. The method and apparatus cooperate to generate a probability value in response to queue occupancy and desired queue occupancy and to control the packet in response to the probability value and a reference value to cause a source of the packet to change its transmission rate. Control of the packet is achieved by dropping the packet or by modifying the packet to include a message informing the source that it should adjust its transmission rate. In one embodiment, the probability value is converted into an inter-drop/mark value representing the number of packets to be admitted into the queue between dropped or marked packets.
TL;DR: This work describes sufficient and necessary conditions under which it is optimal to allocate both servers to the upstream or downstream queue and explores the benefits of having two flexible parallel servers which can work at either queue versus servers dedicated to each queue.
Abstract: We consider the optimal stochastic scheduling of a two-stage tandem queue with two parallel servers. The servers can serve either queue at any point in time and the objective is to minimize the total holding costs incurred until all jobs leave the system. We characterize sufficient and necessary conditions under which it is optimal to allocate both servers to the upstream or downstream queue. We then conduct a numerical study to investigate whether the results shown for the static case also hold for the dynamic case. Finally, we provide a numerical study that explores the benefits of having two flexible parallel servers which can work at either queue versus servers dedicated to each queue. We discuss the results' implications for cross-training workers to perform multiple tasks.
TL;DR: In this article, a management queue agent of the target sends the KILL command to an execution agent of each queue and extinguishes the queues, when the channel is extinguished, a KILL command is assigned to the management queue and transmitted to a target.
Abstract: To manage each channel of a system connected by multichannels every channel, an initiator has at least one I/O request queue every channel and a management queue. When the channel is extinguished, a KILL command is assigned to the management queue and transmitted to a target. A management queue agent of the target sends the KILL command to an execution agent of each queue and extinguishes the queues.
TL;DR: In this article, a method and system for controlling a transmit power level based upon queue delay for packets in a wireless packet data system is described, where the determination of whether or not to prioritize data packets through increased transmit power can be made based upon a subscriber's QoS profile.
Abstract: A method and system for controlling a transmit power level based upon queue delay for packets in a wireless packet data system is described. Packet data throughput can be improved for selected links based upon queue delay, e.g., those data packets which have experienced a lengthy queue delay can be provided with a higher quality link by increasing their transmit power. The determination of whether or not to prioritize data packets through increased transmit power can be made based upon, for example, a subscriber's QoS profile.
TL;DR: The simulation results indicate that both DRIO and (r,RTT)-adaptive algorithms, when combined with ETSW, do fulfill better throughput assurance and fairness, especially under the case that AS flows require different target rates, incur different round trip times, or co-exist with non-responsive UDP flows.
Abstract: In this paper, we study why the current assurance services (AS) architecture with profilers/markers at edge routers and with queue management mechanisms (RIO) at core routers cannot achieve throughput assurance and fairness. Based on the findings of the simulation study, we propose an enhanced version of the time sliding window (TSW) profiler, called the enhanced TSW (ETSW). We also design two enhanced versions of the RIO queue management mechanism, based on rigorous, analytical reasoning, called respectively, the (r,RTT)-adaptive algorithm and the dynamic RIO (DRIO) algorithm. To validate the proposed design, we implement the proposed mechanisms, along with the 2-window TCP scheme, the three color-marker scheme, and the CSFQ scheme in ns-2, and examine their behavior under a variety of network topologies and traffic sources. The simulation results indicate that both DRIO and (r,RTT)-adaptive algorithms, when combined with ETSW, do fulfill better throughput assurance and fairness, especially under the case that AS flows require different target rates, incur different round trip times, or co-exist with non-responsive UDP flows.
TL;DR: In this paper, a queue system for call center calls in queue is proposed, where the caller data is related to the caller such as caller number, called number, and caller entered digits.
Abstract: For call center calls in queue, a queue system controls the provision of service information based on caller data. Service information such as advertising messages, audio entertainment, and interactive applications based on caller data creates a personalized and customized service for the customer. The queue system receives caller data for the call in the queue. Caller data is data related to the caller such as caller number, called number, and caller entered digits. The queue system then identifies the service information based on the caller data and provides the service information to the call in the queue. The queue system provides numerous advantages such as cost effective advertising, enhanced marketing campaigns targeting specific call center customers, improved customer satisfaction, and reduced rates of call abandonment for calls waiting in the queue.
TL;DR: In this paper, a method and apparatus for admission control, queue management, and shaping/scheduling of flows in a communication device is described, which includes a queuing module having a receive segment, a control segment, and a transmit segment.
Abstract: A method and apparatus for providing admission control, queue management, and shaping/scheduling of flows in a communication device is described. In one embodiment, the communication device is a quality of service access communications device having a central processing unit and a memory module. The communication device includes a queuing module having a receive segment, a control segment, and a transmit segment. The transmit segment includes a fly-by flow admission control block that performs admission control of flows. The transmit segment further includes a two-tiered hierarchical shaper/scheduler block having a level-1 shaper/scheduler and a plurality of level-2 shaper/schedulers for shaping and scheduling of flows.
TL;DR: In this article, a fair queuing scheduling algorithm is proposed to service disk I/O requests from domains which have been guaranteed minimum quality of disk service (QoS) requirements.
Abstract: A method and system for servicing disk I/O requests from domains which have been guaranteed minimum quality of disk service maintains I/O requests for each domain are in separate queues. The queues are serviced by a disk scheduler which selects requests from the queues in accordance with a fair queuing scheduling algorithm that considers the estimated time required to service the request at the head of a queue with regard for the size of the input or output associated with the request, the proportion of disk bandwidth assigned to the particular domain, and the state of the other queues.
TL;DR: In this article, a programmable split-queue structure includes a first queue for receiving entries, a second queue area for outputting entries input to the first queue, and a queue overflow engine logically coupled to both the first and second queue areas.
Abstract: A programmable split-queue structure includes a first queue area for receiving entries, a second queue area for outputting entries input to said first queue area, and a queue overflow engine logically coupled to the first queue area and the second queue area. The queue overflow engine functions to transfer entries from the first queue area to the second queue area using one of two transfer modes. The queue overflow engine selects the most appropriate transfer mode based on a prescribed threshold value that can be dynamically programmed. An overflow storage area having high capacity may be provided in an external memory in order to increase the overall capacity of the queue structure.
TL;DR: In this article, the authors present a control algorithm that allows ports carrying high priority traffic to be excluded from the selection of the ingress ports in order to improve the performance of the queue.
Abstract: A network switch maintains transmit queues and for each transmit queue a table which identifies the contributions of traffic received at the ingress ports to that queue. When a queue is too long, a pause frame is dispatched from a selected one of the ingress ports. The ingress port may be selected as that making the greatest contribution to the transmit queue. However, a control algorithm allows ports carrying high priority traffic to be excluded from the selection.
TL;DR: The collection of techniques random early marking (REM) is called and the results of a simulation study that looks at the dynamic behaviour of REM and compares it to that of TCP-ECN with RED and drop-tail queue management are presented.
Abstract: In this paper we present an optimisation approach to congestion flow control. The initial context of this approach was as a rate-based flow control in ATM networks. We describe techniques that enable us to implement this flow control in an explicit congestion notification-capable TCP/IP network. These techniques require only minimal changes to existing TCP host behaviour and RED active queue management routers. We call the collection of techniques random early marking (REM). We present the results of a simulation study that looks at the dynamic behaviour of REM and compares it to that of TCP-ECN with RED and drop-tail queue management. We also show how REM can be used to provide differential service between different users.
TL;DR: In this paper, the authors propose a class queuing system where data is placed in queues distinguished by class, and data movement between levels of the class queues is controlled by weight sets where the weights of the weight sets are determined based on desired characteristics that distinguish the classes.
Abstract: This invention provides a class queuing system where data is placed in queues distinguished by class. The class queuing system distinguishes one class from another based on desired characteristics of a host process such as a network process. The class queuing system groups the class queues into groups based on output ports, for example. Each of the groups is separated into logical or physical multiple levels that extend from an input to an output. Input data is queued in a lowest level queue and the data is moved from level to level until the data is placed in an output queue and transferred via a respective output port. Data movement between levels of the class queues is controlled by weight sets where the weights of the weight sets are determined based on the desired characteristics that distinguish the classes. In this way, classes having greater bandwidth, for example, are moved through the class queues at a faster rate than classes having lower bandwidth specifications.
TL;DR: In this article, a system for facilitating packet data flow among stations on a data network and the associated method are disclosed, which comprises queue managers that further comprise a free queue manager, an enqueue controller, a multicast queue manager and a port queue manager.
Abstract: A system for facilitating packet data flow among stations on a data network and the associated method are disclosed. The system comprises queue managers that further comprise a free queue manager, an enqueue controller, a multicast queue manager, and a port queue manager. The free queue manager provides a mechanism to monitor the number of free buffers remaining in an external memory. The enqueue controller arbitrates between requests for enqueuing from the ports. The multicast queue manager maintains a multicast queue linked list and manages multicast queue entries to the list. The port queue manager manages output queues of each of the output ports and ensures that a packet is correctly routed to the appropriate ports for subsequent delivery. With the queue manages working in synchronization, an inbound packet can be routed to ports designated by the packet for delivery within a minimum time.
TL;DR: These chapters focus on building scalable, deployable mechanisms for supporting bandwidth guarantees across the Internet based on simple priority mechanisms as outlined by the Differentiated Services working group of the IETF.
Abstract: With the rapid proliferation of the WWW, the Internet has seen enormous growth in both the demand for access from its users and in the demand for new services from its applications. This dissertation focuses on these two important challenges to today's Internet: supporting an explosion in the number of users and supporting a myriad of new applications which require more out of the network than the best-effort service that the Internet currently provides.
The first half of this dissertation focuses on the problem of maximizing network efficiency in times of extremely heavy congestion. Over the last decade, TCP congestion control has been instrumental in allowing the network to deliver service in times of high demand. Through analysis, simulation, and experimentation, this dissertation uncovers a number of significant weaknesses in TCP's congestion control algorithm and in current active queue management mechanisms such as RED. With additional growth in demand, these weaknesses are shown to severely degrade network efficiency by driving up packet loss rates in the network. To address these shortcomings, several new queue management (Adaptive RED, BLUE) and congestion control algorithms (SUBTCP) are proposed and evaluated. These algorithms are shown to eliminate packet loss and maximize link utilization much more effectively than TCP and current active queue management algorithms can.
In addition to packet loss, another problem with today's congestion control and queue management algorithms is that they only deliver applications a single service, best-effort. As the need for new services has grown, the inability to provide service differentiation across flows beyond best-effort service has become problematic. The second half addresses the problem of supporting additional services across the Internet. In particular, these chapters focus on building scalable, deployable mechanisms for supporting bandwidth guarantees across the Internet based on simple priority mechanisms as outlined by the Differentiated Services working group of the IETF. Using minor extensions to the queue management (Enhanced RED) and congestion control algorithms in place today, these mechanisms provide applications more predictable behavior out of the network and enable the deployment of a large number of bandwidth-sensitive applications.
TL;DR: A queuing method and apparatus for transfer or incoming and outgoing data in a network environment having a main storage is presented in this article, where a plurality of queue sets are provided in the main storage with at least one or more sets being dedicated for input and output.
Abstract: A queuing method and apparatus for transfer or incoming and outgoing data in a network environment having a main storage is presented. A plurality of queue sets are provided in the main storage with at least one or more sets being dedicated for input and output. The queues can share access to a plurality of devices in the network across a plurality of communication stacks. Various network resources are mapped to the queues in order to facilitate resource allocation and dynamic configuration by providing initialization of a plurality of configuration parameters. In this way dynamic expanding and contracting of the number of queues in each set as dictated by traffic patterns and feedback indicators is provided.
TL;DR: In this paper, a message transmission queue (300) including a high priority queue (HPQ) (301) having high priority entry point, a medium priority queue, a MPQ (303) having a medium-priority entry point and a low priority queue LPQ (305) having low priority entry points is described.
Abstract: A message transmission queue (300) including a high priority queue (HPQ) (301) having a high priority entry point; a medium priority queue (MPQ) (303) having a medium priority entry point; and a low priority queue (LPQ) (305) having a low priority entry point. Messages in the MPQ (303) are queued after all messages in the HPQ (301). Messages in the LPQ (305) are queued after all messages in the MPQ (303). A sequencer reinserts messages into the queue (300) based on the message repeat count and the message's previous queue position.
TL;DR: In this article, a transmission queue is defined of data to be transmitted and a transmission rate is set for the transmission queue, which can be subdivided into multiple priority queues, for example, using time wheels.
Abstract: A method and Gigabit Ethernet communications adapter are provided for implementing communications in a communications network. A transmission queue is defined of data to be transmitted. A transmission rate is set for the transmission queue. Data to be transmitted are enqueued on the transmission queue. The transmission queue can be subdivided into multiple priority queues, for example, using time wheels, and a transmission rate is set for each transmission queue.
TL;DR: In this article, a method and a system for controlling a flow of a plurality of packets in a computer network is disclosed, which includes determining a queue level for the queue and determining an offered rate of the plurality of the packets to the queue.
Abstract: A method and system for controlling a flow of a plurality of packets in a computer network is disclosed. The computer network includes a queue. The method and system include determining a queue level for the queue and determining an offered rate of the plurality of packets to the queue. The method and system also include controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and a previous value of the transmission fraction so that the transmission fraction and the queue level are critically damped if the queue level is between at least a first queue level and a second queue level.
TL;DR: In this article, a web server is modeled by identifying a plurality of sub-systems for the server, and each sub system is represented as a queue, with each queue operably coupled to one another.
Abstract: A method and apparatus for modeling a web server is described. The web server is modeled by identifying a plurality of sub-systems for the server. Each sub-system is represented as a queue, with each queue operably coupled to one another. An arrival rate and a service time is iteratively adjusted for each queue to account for performance by the other queues.
TL;DR: In this paper, the authors proposed a method and apparatus for routing multicast traffic with better performance and reduced Head of Line blocking by means of the use of multiple virtual output queues for each input interface.
Abstract: The invention includes a method and apparatus for routing multicast traffic with better performance and reduced Head of Line blocking. This is achieved by means of the use of multiple virtual output queues for each input interface that handles multicast traffic, called “multicast virtual output queues” (MVOQs). Schemes for allocation of queues including random allocation, round robin, and Shortest Queue First (SQF) allocation can further improve performance. In an alternative embodiment, global MVOQs that can be used as queues by multiple input interfaces, can be used instead of MVOQs associated with a specific input interface.
TL;DR: This paper presents a simple method for scheduling multiclass production systems that performs well, not only with respect to mean waiting time, but also withrespect to waiting-time variance and the outer percentiles of waiting time.
Abstract: Consider a multiclass production system where many job classes share a single server and a setup time is incurred whenever the server changes class. This paper presents a simple method for scheduling these systems that performs well, not only with respect to mean waiting time, but also with respect to waiting-time variance and the outer percentiles of waiting time. The scheduling method is dynamic and uses the ages of items in each queue, as well as the queue statistics, to decide which queue to service next.