nikolaos vasiliou and hanan lutfiyya the university of western ontario london, ontario, canada...
TRANSCRIPT
![Page 1: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/1.jpg)
Introduction
Consumers do not want to be kept waiting when browsing, selecting, or paying for products on-line.
Consumers are annoyed by delays and failures.
Consumers expect a high-level of quality of service and are sometimes willing to pay for it.
![Page 2: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/2.jpg)
Architecture
client
AcceptRequest
Read
Request
Register Request
Send
Response
Log
Request
Deregister
Request
Request
Complete
Registration
Deregistration
QoSBoard
Module
Scheduler
Module
Resource
Manager
Normal
Request
Processing
Web Server
QoS
Addition
![Page 3: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/3.jpg)
Architecture
A request is assigned to a process. Register Request occurs when a
request arrives and before any processing begins.
Registration suspends processing of the request until the SchedulerScheduler decides processing should be resumed.
The request is put on a queue based on the categorization taking place (e.g., by type of request or by type of requestor). The queue is in the QoSBoard.
![Page 4: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/4.jpg)
Scheduling Algorithm (Version 1)
Two queues: A and B. The Scheduler always runs class
A requests and only runs class B requests when there are no class A requests.
This can starve out class B requests if there is always a request in the A queue. Obviously, not a good solution.
![Page 5: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/5.jpg)
Scheduling Algorithm (Version 2)
Two queues: A and B Two variables (also stored in
QoSBoard):• max_proc_A :The maximum number
of A processes allowed to run.• max_proc_B : The maximum
number of B processes allowed to run.
Similar to Version 1, except there is now a limit on the number of A processes allowed to run at any one time.
![Page 6: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/6.jpg)
Scheduling Algorithm (Version 2)
Our experimental results show that this works best when max_proc_B is relatively small.
However, by keeping max_proc_B small (and static) means that we may waste computing resources if there aren’t that many A requests.
These resources could have gone to B requests.
![Page 7: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/7.jpg)
Scheduling Algorithm (Version 3)
The difference between this algorithm and the second is that the scheduler doesn’t distinguish between A processes and B processes unless an A process complains that it is waiting too long
If the number of complaints is equal to max_complaints then max_proc_B is reduced.
The variable representing the number of complaints is set to 0. If it again exceeds max_complaints, max_proc_B is reduced.
![Page 8: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/8.jpg)
Scheduling Algorithm (Version 3)
max_proc_A and max_proc_B are initially set to the same value.
As long as A processes aren’t complaining then B processes can be run.
This is a more effective use of resources.
![Page 9: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/9.jpg)
Implementation
We use the Apache Web Server The QoSmodule is implemented
as shared memory between request processes and the Scheduler (which is a separate process).
![Page 10: Nikolaos Vasiliou and Hanan Lutfiyya The University of Western Ontario London, Ontario, Canada Differentiated Quality of Service for Web Servers for Electronic](https://reader036.vdocuments.mx/reader036/viewer/2022082612/56649f4e5503460f94c7002d/html5/thumbnails/10.jpg)
Results and Future Research
Initial results are promising, but they show that there are many factors to take into account.
We are especially interested in architecting out a solution that makes it easy for developers to implement different scheduling algorithms tailored for their sites.
We will also look at other ways of differentiating between users.• Example: If a user is idle for more than
n time units then the process associated with the request is given a lower priority.