Skip to content

Commit

Permalink
update plots and performance metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
teobag committed Jan 24, 2025
1 parent d17068a commit b75f634
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 68 deletions.
11 changes: 5 additions & 6 deletions ACE/background.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,10 @@ <h2> What is ACE and why do we need it? </h2>
<div class="row">
<p>
<img class="img-responsive img-centered" src="./img/compactionary-lsm-everywhere.png" alt="" align="left" width=20% style="margin-left:10%;margin-right:10%" />
<b>ACE</b> is a new bufferpool manager that adresses two challenged of state-of-the-art bufferpool managers.
First, existing bufferpool managers often assume that the underlying devices have no concurrency.
When writing dirty pages to disk, state-of-the-art bufferpool managers write(evict) one page at a time,
missing the opputinity to exploit the device's concurrency. Second, page replacement policies generally do not consider the device asymmetry,
instead, they treat read and write request equally.
<b>ACE</b> is a new bufferpool manager that addresses two challenges of the state-of-the-art bufferpool managers.
First, existing bufferpool managers often assume that the underlying devices have no concurrency. As a result,
they write (evict) one page at a time, missing the opportunity to exploit the device's ability to handle parallel writes.
Second, page replacement policies generally do not consider the device asymmetry, instead, they treat read and write requests equally.
</p>
</div>
<hr >
Expand All @@ -141,7 +140,7 @@ <h3> ACE </h3>
<div>
<br>
<p>
To adress these issues, we propose ACE, a bufferpool manager that utilizes the underlying device concurrency to bridge the device assymetry.
To address these issues, we propose ACE, a bufferpool manager that utilizes the underlying device concurrency and assymetry.
Our approach uses asymmetry/concurrency-aware write-back and eviction policies.
The write-back policy always writes multiple pages concurrently, hence amortizing the write cost.
The eviction policy evicts one or multiple pages at the same time from the bufferpool to enable prefetching.
Expand Down
26 changes: 13 additions & 13 deletions ACE/js/workloadGenerator.js
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ function RWgraph(){
x: LRUx2,
y: LRUy2,
mode:"scatter",
name:"ACELRU",
name:"ACE-LRU",
marker: {
size: 12,
symbol: 'diamond-open'
Expand All @@ -268,7 +268,7 @@ function RWgraph(){
x: CFLRUx2,
y: CFLRUy2,
mode:"scatter",
name:"ACECFLRU",
name:"ACE-CFLRU",
marker: {
size: 12,
symbol: 'x-open'
Expand All @@ -280,7 +280,7 @@ function RWgraph(){
x: LRUWSRx1,
y: LRUWSRy1,
mode:"scatter",
name:"LRUWSR",
name:"LRU-WSR",
marker: {
size: 12,
symbol: 'triangle-up-open'
Expand All @@ -292,7 +292,7 @@ function RWgraph(){
x: LRUWSRx2,
y: LRUWSRy2,
mode:"scatter",
name:"ACELRUWSR",
name:"ACE-LRU-WSR",
marker: {
size: 12,
symbol: 'triangle-down-open'
Expand Down Expand Up @@ -332,7 +332,7 @@ function RWgraph(){

//generate graph for varying Buffer size
function Bgraph(){

var diskSize = parseInt($('#n').val()); // Disk size
var ops = parseInt($('#x').val());
var a = parseInt($("#alpha").val());

Expand Down Expand Up @@ -365,19 +365,19 @@ function Bgraph(){
(function myLoop(i) {
setTimeout(function() {
progress++;
LRUstats = IOcalc(generateWorkload(),ops*(i/100), a, 0);
LRUstats = IOcalc(generateWorkload(),diskSize*(i/100), a, 0);
LRUx1.push(i);
LRUy1.push(LRUstats[0] * .4);
LRUx2.push(i);
LRUy2.push(LRUstats[1] * .4);

CFLRUstats = IOcalc(generateWorkload(),ops*(i/100), a, 1);
CFLRUstats = IOcalc(generateWorkload(),diskSize*(i/100), a, 1);
CFLRUx1.push(i);
CFLRUy1.push(CFLRUstats[0] * .4);
CFLRUx2.push(i);
CFLRUy2.push(CFLRUstats[1] * .4);

LRUWSRstats = IOcalc(generateWorkload(),ops*(i/100), a, 2);
LRUWSRstats = IOcalc(generateWorkload(),diskSize*(i/100), a, 2);
LRUWSRx1.push(i);
LRUWSRy1.push(LRUWSRstats[0] * .4);
LRUWSRx2.push(i);
Expand Down Expand Up @@ -407,7 +407,7 @@ function Bgraph(){
x: LRUx2,
y: LRUy2,
mode:"scatter",
name:"ACELRU",
name:"ACE-LRU",
marker: {
size: 12,
symbol: 'diamond-open'
Expand All @@ -431,7 +431,7 @@ function Bgraph(){
x: CFLRUx2,
y: CFLRUy2,
mode:"scatter",
name:"ACECFLRU",
name:"ACE-CFLRU",
marker: {
size: 12,
symbol: 'x-open'
Expand All @@ -443,7 +443,7 @@ function Bgraph(){
x: LRUWSRx1,
y: LRUWSRy1,
mode:"scatter",
name:"LRWSR",
name:"LRU-WSR",
marker: {
size: 12,
symbol: 'triangle-up-open'
Expand All @@ -455,7 +455,7 @@ function Bgraph(){
x: LRUWSRx2,
y: LRUWSRy2,
mode:"scatter",
name:"ACELRUWSR",
name:"ACE-LRU-WSR",
marker: {
size: 12,
symbol: 'triangle-down-open'
Expand All @@ -470,7 +470,7 @@ function Bgraph(){
showgrid: false,
zeroline: false,
showline: true,
title: "Bufferpool size (% of Workload)"
title: "Bufferpool size (% of disk size)"
},
yaxis: {
autorange: true,
Expand Down
81 changes: 32 additions & 49 deletions ACE/research.html
Original file line number Diff line number Diff line change
Expand Up @@ -310,103 +310,86 @@ <h2>

<br>

<!-- Cost result starts here -->
<div id="cost-result" class="container">

<!-- #Buffer Misses -->
<!-- # Write Batches -->
<div class="row">
<div class="col text-center">
<span id="base-alg-buffer-misses" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="write-batches" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of times a requested page is not found in the bufferpool.">#Buffer Misses</span>
</div>
<div class="col text-center">
<span id="ace-alg-buffer-misses" class="cost uncertain">0</span>
title="Number of write batches processed by the bufferpool."># Write Batches</span>
</div>
</div>
<!-- #Buffer Hits-->
<div class="row">

<!-- # Total Write Latency -->
<!-- <div class="row">
<div class="col text-center">
<span id="base-alg-buffer-hits" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="total-write-latency" class="cost uncertain" data-toggle="tooltip" data-placement="right">0 ms</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of times a requested page is in the bufferpool.">#Buffer Hits</span>
title="The total latency of all write batches (calculated as # Write Batches x Latency per Batch)."># Total Write Latency</span>
</div>
</div> -->

<!-- # Total Read Latency -->
<!-- <div class="row">
<div class="col text-center">
<span id="ace-alg-buffer-hits" class="cost uncertain">0</span>
</div>
</div>
<!-- #Disk Pages Read-->
<div class="row">
<div class="col text-center">
<span id="base-alg-pages-read" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="total-read-latency" class="cost uncertain" data-toggle="tooltip" data-placement="right">0 ms</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of pages processed from a workload.">#Disk Pages Read</span>
</div>
<div class="col text-center">
<span id="ace-alg-pages-read" class="cost uncertain">0</span>
title="The total latency of all read pages (calculated as # Read Pages x Latency per Page)."># Total Read Latency</span>
</div>
</div>
<!-- #Disk Pages Written-->
</div> -->

<!-- # Disk Pages Written -->
<div class="row">
<div class="col text-center">
<span id="base-alg-pages-written" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="disk-pages-written" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of dirty pages written.">#Disk Pages Written</span>
</div>
<div class="col text-center">
<span id="ace-alg-pages-written" class="cost uncertain">0</span>
title="The number of dirty pages written to disk."># Disk Pages Written</span>
</div>
</div>
<!-- #Read I/O-->

<!-- # Disk Pages Read -->
<div class="row">
<div class="col text-center">
<span id="base-alg-read-IO" class="cost uncertain">0</span>
<span id="disk-pages-read" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of times pages were added to the bufferpool.">#Read I/O</span>
</div>
<div class="col text-center">
<span id="ace-alg-read-IO" class="cost uncertain">0</span>
title="The number of pages read from disk."># Disk Pages Read</span>
</div>
</div>
<!-- #Write I/O -->

<!-- # Buffer Misses -->
<div class="row">
<div class="col text-center">
<span id="base-alg-write-IO" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="buffer-misses" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of times dirty pages were written.">#Write I/O</span>
</div>
<div class="col text-center">
<span id="ace-alg-write-IO" class="cost uncertain">0</span>
title="The number of times a requested page is not found in the bufferpool."># Buffer Misses</span>
</div>
</div>
<!-- #Pages Evicted -->

<!-- # Buffer Hits -->
<div class="row">
<div class="col text-center">
<span id="base-alg-pages-evicted" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
<span id="buffer-hits" class="cost uncertain" data-toggle="tooltip" data-placement="right">0</span>
</div>
<div class="col-2 text-center">
<span class="metric-title" data-toggle="tooltip" data-placement="left"
title="The number of pages evicted from the bufferpool.">#Pages Evicted</span>
</div>
<div class="col text-center">
<span id="ace-alg-pages-evicted" class="cost uncertain">0</span>
title="The number of times a requested page is in the bufferpool."># Buffer Hits</span>
</div>
</div>

</div>
<!-- END of all cost results -->
</div>

<br>
<hr>
Expand Down

0 comments on commit b75f634

Please sign in to comment.