Progress-based regulation of low-importance processes
Proceedings of the seventeenth ACM symposium on Operating systems principles
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Building adaptive distributed applications with middleware and aspects
Proceedings of the 3rd international conference on Aspect-oriented software development
A method for transparent admission control and request scheduling in e-commerce web sites
Proceedings of the 13th international conference on World Wide Web
A User-Level Framework for Scheduling within Service Execution Environments
SCC '04 Proceedings of the 2004 IEEE International Conference on Services Computing
Empowering configurable QoS management in real-time systems
Proceedings of the 4th international conference on Aspect-oriented software development
Aspect-oriented application-level scheduling for J2EE servers
Proceedings of the 6th international conference on Aspect-oriented software development
Adaptive overload control for busy internet servers
USITS'03 Proceedings of the 4th conference on USENIX Symposium on Internet Technologies and Systems - Volume 4
User-level resource-constrained sandboxing
WSS'00 Proceedings of the 4th conference on USENIX Windows Systems Symposium - Volume 4
Aspect-oriented programming beyond dependency injection
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Application-specific thread schedulers for internet server applications
Concurrency and Computation: Practice & Experience
Application-specific thread schedulers for distributed applications
Concurrency and Computation: Practice & Experience
Hi-index | 0.00 |
Achieving sufficient execution performance is a challenging goal of software development. Unfortunately, violating performance requirements is often revealed at a late stage of the development. Fixing a performance problem at such a late stage is difficult in terms of cost and time. To solve this problem, this paper presents QoSWeaver , which is a tool suite for developing application-level scheduling using aspects. QoSWeaver weaves scheduling code written in an aspect into web application code. The scheduling code gets an application thread to voluntarily yield its execution to implement a custom scheduling policy. The idea of scheduling at the application level is not new, but aspect-oriented programming (AOP) makes it more realistic by separation of scheduling code. For fine-grained scheduling, QoSWeaver provides a profile-based pointcut generator , which automatically generates appropriate pointcuts. To investigate the ability of QoSWeaver for implementing practical scheduling policies, we used QoSWeaver for tuning the performance of a river monitoring system named Kasendas , which is a web application system. For reliable examination, Kasendas was originally developed by an outside corporation and then it was tuned by the authors with QoSWeaver. The authors could successfully improve the performance of Kasendas under heavy workload. The cost of the performance tuning was reasonably small. Furthermore, our approach achieved better performance than other techniques such as admission control and priority scheduling provided by the JVM or Linux. We could implement various policies such as deadlock-aware or adaptive scheduling.