Abstract
In asynchronous event systems, the production of an event is decoupled from its consumption via an event queue. The loose coupling of such systems allows great flexibility as to where and when within the system the event handler of a given event is actually executed, allowing them to scale with increasing number of processors on a given node or across multiple nodes in a distributed system. Although this flexibility is useful in heterogeneous distributed systems, such as SOA, it may appear not to be well suited for real-time systems, which require an upper bound on how long an event can remain unhandled in a queue. However, we show how the weighted fair scheduling algorithms developed for QoS (quality of service) routing can be adapted to event queues to bound the delay between production and consumption. We achieve this, despite the fact that the underlying execution environment is only weakly controlled, through the use of predictive techniques on a calibrated model of the event system. Our choice of algorithms and data structures is driven in part by the highly concurrent nature of the system. We show how a weighted fair scheduler can be built on a lock-free concurrent priority queue. We analyze the performance of various such queues proposed in the literature and show that a very simple linear quantizing queue yields the best performance.
Similar content being viewed by others
References
Rooney S, Garcés-Erice L (2008) Predicting performance on a loosely controlled event system. In: Proceedings of 32nd annual IEEE international computer software and applications conference (COMPSAC’08). Turku, Finland, pp 1136–1142
Rooney S, Bauer D, Garcés-Erice L (2008) Building a practical event-scheduler for a multi-processor architecture. In: Proceedings of high performance computing and simulation conference (HPCS). Nicosia, Cyprus, pp 311–318
Dragicevic K, Bauer D (2008) A survey of concurrent priority queue algorithms. In: Proceedings of IEEE international symposium on parallel and distributed processing (IPDPS’08). Miami, pp 1–6
Tenenbaum A, van Renesse R (1988) A critique of the remote procedure call paradigm. In: Proceedings of European teleinformatics conference (EUTECO). Vienna, pp 775–783
Welsh M, Culler D, Brewer E (2001) SEDA: an architecture for well-conditioned, scalable internet services. SIGOPS Oper Syst Rev 35(5): 230–243
Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard real-time environment. J ACM 20(1): 46–61
Demers A, Keshav S, Shenker S (1989) Analysis and simulation of a fair queueing algorithm. In: Proceedings of the symposium on communications architectures & protocols (SIGCOMM’89). ACM Press, New York, pp 1–12
Yin N (1996) Max– min fairness vs. MCR guarentee on bandwidth allocation for ABR. In: Proceedings of the IEEE ATM’96 workshop. San Franciso, pp 25–27
Michael MM, Scott ML (1996) Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the 15th ACM symposium on principles of distributed computing (PODC’96). pp 267–275
Huang Q (1991) An evaluation of concurrent priority queue algorithms. Technical report, Massachusetts Institute of Technology. MIT Cambridge, MA
Hunt GC, Michael MM, Parthasarathy S, Scott ML (1994) An efficient algorithm for concurrent priority queue heaps. Technical Report TR560. University of Rochester, Rochester
Shavit N, Zemach A (1999) Scalable concurrent priority queue algorithms. In: Proceedings of the 18th annual ACM symposium on principles of distributed computing (PODC’99). ACM Press, New York, pp 113–122
Sundell H, Tsigas P (2003) Fast and lock-free concurrent priority queues for multi-thread systems. In: Proceedings of the 17th international parallel and distributed processing symposium (IPDPS’03). IEEE Press, Nice
Herlihy MP, Wing JM (1990) Linearizability: a correctness condition for concurrent objects. ACM Trans Program Lang Syst 12(3): 463–492
Lamport L (1979) How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans Comput 28(9): 690–691
Shavit N, Touitou D (1995) Software transactional memory. In: Proceedings of the 14th annual ACM symposium on principles of distributed computing (PODC’95). ACM Press, Ontario, pp 204–213
Herlihy M, Luchangco V, Moir M (2006) A flexible framework for implementing software transactional memory. In: Proceedings of the 21st annual ACM SIGPLAN conference on object-oriented programming systems, languages and applications (OOPSLA’06). ACM Press, Portland, pp 253–262
Bacon DF, Konuru R, Murthy C, Serrano M (1998) Thin locks: featherweight synchronization for Java. In: SIGPLAN conference on programming language design and implementation. Montreal, pp 258–268
Kuhn HW (1955) The Hungarian method for the assignment problem. Naval Res Logistics Q 2: 83–97
Box GEP, Jenkins GM, Reinsel GC (2008) Time series analysis, forecasting and control. Wiley, Hoboken
Jain AK, Murty MN, Flynn PJ (1999) Data clustering: a review. ACM Comput Surv 31(3): 264–323
Quinlan JR (1986) Induction of decision trees. Mach Learn 1(1): 81–106
Ali S, Kim JK, Siegel HJ, Maciejewski AA, Yu Y, Gundala SB, Gertphol S, Prasanna VK (2002) Greedy heuristics for resource allocation in dynamic distributed real-time heterogeneous computing systems. In: Proceedings of the international conference on parallel and distributed processing techniques and applications (PDPTA’02). CSREA Press, Las Vegas, pp 519–530
Li P, Ravindran B, Wang J, Konowicz G (2003) Choir: a real-time middleware architecture supporting benefit-based proactive resource allocation. In: Proceedings of the sixth IEEE international symposium on object-oriented real-time distributed computing (ISORC’03). IEEE Computer Society, Washington, DC, pp 292–299
Roy N, Shankaran N, Schmidt DC (2006) Bulls-Eye—a resource provisioning service for enterprise distributed real-time and embedded systems. In: OTM conferences, vol 2. pp 1843–1861
Shankaran N, Balasubramanian J, Schmidt D, Biswas G, Lardieri P, Mulholland E, Damiano T (2006) A framework for (re)deploying components in distributed real-time and embedded systems. In: Proceedings of the 2006 ACM symposium on applied computing (SAC’06). ACM, New York, pp 737–738
Rosu D, Schwan K, Yalamanchili S, Jha R (1997) On adaptive resource allocation for complex real-time applications. In: Proceedings of the 18th IEEE real-time systems symposium (RTSS ’97). IEEE Computer Society, Washington, DC, pp 320–329
Eide E, Stack T, Regehr J, Lepreau J (2004) Dynamic CPU management for real-time, middleware-based systems. In: Proceedings of 10th IEEE real-time and embedded technology and applications symposium. Toronto, pp 286–295
Abeni L, Cucinotta T, Lipari G, Marzario L, Palopoli L (2005) QoS management through adaptive reservations. Real-Time Syst 29(2-3): 131–155
Abdelwahed S, Neema S, Loyall JP, Shapiro R (2003) A hybrid control design for QoS management. In: IEEE real-time systems symposium (RTSS’03). Cancun, pp 366–369
Dean J, Ghemawat S (2008) MapReduce: simplified data processing on large clusters. Commun ACM 51(1): 107–113
Author information
Authors and Affiliations
Corresponding author
Additional information
This article is partially based on previously published papers by the authors. See references [1–3].
Rights and permissions
About this article
Cite this article
Rooney, S., Garcés-Erice, L., Dragičević, K. et al. Weighted fair share scheduling for loosely controlled concurrent event systems. SOCA 4, 45–62 (2010). https://doi.org/10.1007/s11761-010-0054-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11761-010-0054-7