<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aellebla</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aellebla"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Aellebla"/>
	<updated>2026-06-02T19:44:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6855</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6855"/>
		<updated>2010-12-03T06:18:31Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
well i added some more content... and some much needed references, we didn&#039;t even have a minimum of three.--[[User:Aellebla|Aaron Leblanc]] 06:18, 3 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Had a bit work on research questions  --[[User:xchen6|xchen6]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Added and made changes on the main page to Background Concepts! &lt;br /&gt;
: Added and made changes on the main page to Research Problem! &lt;br /&gt;
: Added and made changes on the main page to Contribution! &lt;br /&gt;
: Added and made changes on the main page to Critique! &lt;br /&gt;
: Please edit if you guys have more information or find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. --[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6854</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6854"/>
		<updated>2010-12-03T06:18:11Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
well i added some more content... and some much needed references, we didn&#039;t even have a minimum of three.--[[User:Aellebla|Aellebla]] 06:18, 3 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Had a bit work on research questions  --[[User:xchen6|xchen6]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Added and made changes on the main page to Background Concepts! &lt;br /&gt;
: Added and made changes on the main page to Research Problem! &lt;br /&gt;
: Added and made changes on the main page to Contribution! &lt;br /&gt;
: Added and made changes on the main page to Critique! &lt;br /&gt;
: Please edit if you guys have more information or find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. --[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6853</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6853"/>
		<updated>2010-12-03T06:15:09Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis and is used by everyone from large gaming firms to university students. One of the key issues with virtual machines is ensuring that all shared resources on the machine are shared equitably. In order to do this, and to provide the illusion that the virtual machine is running on its own hardware, a hypervisor is required. &lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used by the hypervisor are:  reservation, where the minimum bounds are set; limits, where the maximum upper bound on the allocation is set; and shares, which proportionally allocate the resources according to the weight of each VM. These three controls have been supported for CPU and memory resource allocation since 2003. However, the current issue is IO resource allocation. Currently, when more VMs are added to a host, the contention for input/output (I/O) resources can suddenly lower a VM’s allocation. Also, the available throughput can change with time, and adjustments to allocations must be made dynamically.&lt;br /&gt;
&lt;br /&gt;
SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly well for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
What mClock is basically trying to achieve is to combine a constraint-based scheduler and a weight-based scheduler. Making sure the minimum IO reservation limit is consistently met, yet not over the upper bound limit, would be handled by the constraint-based scheduler. All thats left is that the weight-based scheduler distribute the remaining IO throughput to the rest of the VMs equally.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
mClock was implemented on a modified version of VMware ESX server hypervisor  &amp;lt;sup&amp;gt;[[#Foot4|4]]&amp;lt;/sup&amp;gt;  &amp;lt;sup&amp;gt;[[#Foot5|5]]&amp;lt;/sup&amp;gt;. This modification only took around 200 of C code for the scheduling framework to use mClocks algorithms. This shows that it didn&#039;t take much to implement mClock effectively in a existing product, and improving its performance results. This seems like mClock can be very portable and easy to implement in other hypervisors as well. &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot4&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
VMware ESX Server User Manual, December 2007.&lt;br /&gt;
VMware Inc.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot5&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
VMware, Inc. Introduction to VMware Infrastructure.&lt;br /&gt;
2007. http://www.vmware.com/support/pubs/.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6852</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6852"/>
		<updated>2010-12-03T06:14:03Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis and is used by everyone from large gaming firms to university students. One of the key issues with virtual machines is ensuring that all shared resources on the machine are shared equitably. In order to do this, and to provide the illusion that the virtual machine is running on its own hardware, a hypervisor is required. &lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used by the hypervisor are:  reservation, where the minimum bounds are set; limits, where the maximum upper bound on the allocation is set; and shares, which proportionally allocate the resources according to the weight of each VM. These three controls have been supported for CPU and memory resource allocation since 2003. However, the current issue is IO resource allocation. Currently, when more VMs are added to a host, the contention for input/output (I/O) resources can suddenly lower a VM’s allocation. Also, the available throughput can change with time, and adjustments to allocations must be made dynamically.&lt;br /&gt;
&lt;br /&gt;
SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly well for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
What mClock is basically trying to achieve is to combine a constraint-based scheduler and a weight-based scheduler. Making sure the minimum IO reservation limit is consistently met, yet not over the upper bound limit, would be handled by the constraint-based scheduler. All thats left is that the weight-based scheduler distribute the remaining IO throughput to the rest of the VMs equally.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
mClock was implemented on a modified version of VMware ESX server hypervisor. This modification only took around 200 of C code for the scheduling framework to use mClocks algorithms. This shows that it didn&#039;t take much to implement mClock effectively in a existing product, and improving its performance results. This seems like mClock can be very portable and easy to implement in other hypervisors as well. &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot4&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
VMware ESX Server User Manual, December 2007.&lt;br /&gt;
VMware Inc.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot5&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
VMware, Inc. Introduction to VMware Infrastructure.&lt;br /&gt;
2007. http://www.vmware.com/support/pubs/.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6851</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6851"/>
		<updated>2010-12-03T06:12:36Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis and is used by everyone from large gaming firms to university students. One of the key issues with virtual machines is ensuring that all shared resources on the machine are shared equitably. In order to do this, and to provide the illusion that the virtual machine is running on its own hardware, a hypervisor is required. &lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used by the hypervisor are:  reservation, where the minimum bounds are set; limits, where the maximum upper bound on the allocation is set; and shares, which proportionally allocate the resources according to the weight of each VM. These three controls have been supported for CPU and memory resource allocation since 2003. However, the current issue is IO resource allocation. Currently, when more VMs are added to a host, the contention for input/output (I/O) resources can suddenly lower a VM’s allocation. Also, the available throughput can change with time, and adjustments to allocations must be made dynamically.&lt;br /&gt;
&lt;br /&gt;
SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly well for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
What mClock is basically trying to achieve is to combine a constraint-based scheduler and a weight-based scheduler. Making sure the minimum IO reservation limit is consistently met, yet not over the upper bound limit, would be handled by the constraint-based scheduler. All thats left is that the weight-based scheduler distribute the remaining IO throughput to the rest of the VMs equally.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
mClock was implemented on a modified version of VMware ESX server hypervisor. This modification only took around 200 of C code for the scheduling framework to use mClocks algorithms. This shows that it didn&#039;t take much to implement mClock effectively in a existing product, and improving its performance results. This seems like mClock can be very portable and easy to implement in other hypervisors as well. &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6842</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6842"/>
		<updated>2010-12-03T05:53:32Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
What mClock is basically trying to achieve is to combine a constraint-based scheduler and a weight-based scheduler. Making sure the minimum IO reservation limit is consistently met, yet not over the upper bound limit, would be handled by the constraint-based scheduler. All thats left is that the weight-based scheduler distribute the remaining IO throughput to the rest of the VMs equally.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6838</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6838"/>
		<updated>2010-12-03T05:47:35Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
Had a bit work on research questions  --[[User:xchen6|xchen6]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Added and made changes on the main page to Background Concepts! &lt;br /&gt;
: Added and made changes on the main page to Research Problem! &lt;br /&gt;
: Added and made changes on the main page to Contribution! &lt;br /&gt;
: Added and made changes on the main page to Critique! &lt;br /&gt;
: Please edit if you guys have more information or find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. --[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.--[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6837</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6837"/>
		<updated>2010-12-03T05:46:58Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
Had a bit work on research questions  --[[User:xchen6|xchen6]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Added and made changes on the main page to Background Concepts! &lt;br /&gt;
: Added and made changes on the main page to Research Problem! &lt;br /&gt;
: Added and made changes on the main page to Contribution! &lt;br /&gt;
: Added and made changes on the main page to Critique! &lt;br /&gt;
: Please edit if you guys have more information or find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. --[[User:Aellebla|Aaron Leblanc]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6835</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6835"/>
		<updated>2010-12-03T05:46:36Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
Had a bit work on research questions  --[[User:xchen6|xchen6]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Added and made changes on the main page to Background Concepts! &lt;br /&gt;
: Added and made changes on the main page to Research Problem! &lt;br /&gt;
: Added and made changes on the main page to Contribution! &lt;br /&gt;
: Added and made changes on the main page to Critique! &lt;br /&gt;
: Please edit if you guys have more information or find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. --[[User:Aellebla|Aellebla]] 05:46, 3 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6833</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6833"/>
		<updated>2010-12-03T05:45:18Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6832</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6832"/>
		<updated>2010-12-03T05:44:26Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing. mClock uses two main ideas: multiple real-time clocks and dynamic clock selection. Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6830</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6830"/>
		<updated>2010-12-03T05:36:46Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6829</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6829"/>
		<updated>2010-12-03T05:36:15Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ&amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt; because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6826</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6826"/>
		<updated>2010-12-03T05:35:12Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6825</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6825"/>
		<updated>2010-12-03T05:34:42Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ&amp;lt;sup&amp;gt;[[#Foot3|3]]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6823</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6823"/>
		<updated>2010-12-03T05:34:00Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6822</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6822"/>
		<updated>2010-12-03T05:33:49Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor I/O Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor I/O Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Virtual machine (VM) usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) (Start-time Fair Queuing)  performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a better resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for input/output (I/O) resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SFQ because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
&lt;br /&gt;
====Problem Facing====&lt;br /&gt;
Today, we use a very primitive kind of I/O resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate I/O resources to each VM running on a particular storage device. Unfortunately, the I/O resource allocation algorithm of the hosts use a fair-scheduler called SFQ &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates I/O resources to VMs proportional to the number of I/O shares on the host, but each host uses a fair scheduler which divides the I/O shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
We need an algorithm which can handle all kinds of controls and properly allocate resources for each request. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of I/O resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate I/O resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of I/O resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
Older methods of I/O resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable I/O management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of I/O resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all I/O requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles (I/O resource allocation on) multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be (more efficient compare to existing methods) efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
&lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference I/O size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot3&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
[18] P. Goyal, H. M. Vin, and H. Cheng. Start-Time Fair&lt;br /&gt;
Queuing: A scheduling algorithm for integrated services&lt;br /&gt;
packet switching networks. Technical Report CS-TR-96-&lt;br /&gt;
02, UT Austin, January 1996.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5851</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5851"/>
		<updated>2010-11-30T22:55:52Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] (Proportional Allocation of Resources in Distributed storage Access) is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2] (Start-time Fair Queuing). What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5850</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5850"/>
		<updated>2010-11-30T22:55:17Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
k ill move everything to the main page&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] (Proportional Allocation of Resources in Distributed storage Access) is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2] (Start-time Fair Queuing). What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5849</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5849"/>
		<updated>2010-11-30T22:52:49Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] (Proportional Allocation of Resources in Distributed storage Access) is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2] (Start-time Fair Queuing). What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5847</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5847"/>
		<updated>2010-11-30T22:50:09Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] (Proportional Allocation of Resources in Distributed storage Access) is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2] (Start-time Fair Queuing). What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5845</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5845"/>
		<updated>2010-11-30T22:48:28Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] (Proportional Allocation of Resources in Distributed storage Access) is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5843</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5843"/>
		<updated>2010-11-30T22:47:54Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5842</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5842"/>
		<updated>2010-11-30T22:47:26Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aellebla]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5838</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5838"/>
		<updated>2010-11-30T22:39:25Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5833</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5833"/>
		<updated>2010-11-30T22:35:36Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5832</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5832"/>
		<updated>2010-11-30T22:35:06Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5829</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5829"/>
		<updated>2010-11-30T22:31:41Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5828</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5828"/>
		<updated>2010-11-30T22:31:31Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5827</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5827"/>
		<updated>2010-11-30T22:31:14Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aellebla]] 22:31, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5824</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5824"/>
		<updated>2010-11-30T22:30:27Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. Older methods of IO resource allocation had a terrible performance lose whenever a background process was initiated on a VM, or whenever another VM was added. More specifically whenever the load on the shared storage device was increased. Older methods provided unreliable IO management of hypervisors. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5823</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5823"/>
		<updated>2010-11-30T22:21:11Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5822</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5822"/>
		<updated>2010-11-30T22:20:58Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
: [1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
: [2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5821</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5821"/>
		<updated>2010-11-30T22:20:34Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5820</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5820"/>
		<updated>2010-11-30T22:19:58Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aaron Leblanc]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5819</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5819"/>
		<updated>2010-11-30T22:19:35Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aaron Leblanc]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance. --[[User:Aellebla|Aellebla]] 22:19, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5818</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5818"/>
		<updated>2010-11-30T22:08:50Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aellebla]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5817</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5817"/>
		<updated>2010-11-30T22:08:34Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation. --[[User:Aellebla|Aellebla]] 22:08, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5816</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5816"/>
		<updated>2010-11-30T21:50:11Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5815</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5815"/>
		<updated>2010-11-30T21:49:49Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ [2]. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09)Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5814</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5814"/>
		<updated>2010-11-30T21:49:35Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09)Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;br /&gt;
&lt;br /&gt;
[2] W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5813</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5813"/>
		<updated>2010-11-30T21:49:03Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA [1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09)Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5812</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5812"/>
		<updated>2010-11-30T21:48:41Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA[1] is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09)Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5811</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5811"/>
		<updated>2010-11-30T21:47:55Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;br /&gt;
&lt;br /&gt;
[1] A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09)Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5810</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5810"/>
		<updated>2010-11-30T21:44:19Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Paper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5809</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5809"/>
		<updated>2010-11-30T21:44:00Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Paper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5808</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5808"/>
		<updated>2010-11-30T21:40:26Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5807</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5807"/>
		<updated>2010-11-30T21:40:11Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5805</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5805"/>
		<updated>2010-11-30T21:34:14Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aaron Leblanc]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5804</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5804"/>
		<updated>2010-11-30T21:30:42Z</updated>

		<summary type="html">&lt;p&gt;Aellebla: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: We use today, a very primitive kind of IO resource allocation in modern hypervisors.   Currently a algorithm called PARDA is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.--[[User:Aellebla|Aellebla]] 21:30, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Aellebla</name></author>
	</entry>
</feed>