deletions | additions
diff --git a/bibliography/biblio.bib b/bibliography/biblio.bib
index 4b0842a..e6b744a 100644
--- a/bibliography/biblio.bib
+++ b/bibliography/biblio.bib
...
title = {{Phase Reconciliation for Contended In-Memory Transactions}},
booktitle = {11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)},
year = {2014},
month =
{Oct}, oct,
isbn = {978-1-931971-16-4},
address = {Broomfield, CO},
pages = {511--524},
url = {https://www.usenix.org/conference/osdi14/technical-sessions/presentation/narula},
publisher = {USENIX Association},
}
...
pages = {150--161},
author = {Junwhan Kim and Roberto Palmieri and Binoy Ravindran},
title = {{Enhancing Concurrency in Distributed Transactional Memory through Commutativity}},
booktitle =
{Euro-Par 2013 Parallel Processing}, {EuroPar 2013},
}
...
isbn = {0-8186-0842-0},
location = {Kailua-Kona, Hawaii, USA},
pages = {205--214},
numpages = {10},
url = {http://dl.acm.org/citation.cfm?id=54764.54787},
acmid = {54787},
publisher = {IEEE Computer Society Press},
address = {Los Alamitos, CA, USA},
}
...
url = {http://doi.acm.org/10.1145/2491956.2462172},
doi = {10.1145/2491956.2462172},
acmid = {2462172},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {automatic synchronization, composition, concurrency, data structures, transactions},
}
...
url = {http://dx.doi.org/10.1145/300979.300992},
doi = {10.1145/300979.300992},
acmid = {300992},
publisher = {IEEE Computer Society},
address = {Washington, DC, USA},
}
...
url = {http://doi.acm.org/10.1145/1345206.1345237},
doi = {10.1145/1345206.1345237},
acmid = {1345237},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {abstract locks, commutativity, non-blocking algorithms, transactional boosting, transactional memory},
}
...
title = {{Extracting More Concurrency from Distributed Transactions}},
booktitle = {11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)},
year = {2014},
month =
{Oct}, oct,
isbn = {978-1-931971-16-4},
address = {Broomfield, CO},
pages = {479--494},
url = {https://www.usenix.org/conference/osdi14/technical-sessions/presentation/mu},
publisher = {USENIX Association},
}
...
numpages = {15},
url = {http://dl.acm.org/citation.cfm?id=2050613.2050642},
acmid = {2050642},
publisher = {Springer-Verlag},
address = {Berlin, Heidelberg},
keywords = {eventual consistency, large-scale distributed systems, replicated shared objects},
}
...
@inproceedings{Li:OSDI12,
author = {Cheng Li and Daniel Porto and Allen Clement and Johannes Gehrke and Nuno Pregui{\c c}a and Rodrigo Rodrigues},
title = {{Making Geo-Replicated Systems Fast as Possible, Consistent when Necessary}},
booktitle =
{Presented as part of the 10th USENIX {USENIX Symposium on Operating Systems Design and Implementation (OSDI 12)},
year = {2012},
isbn = {978-1-931971-96-6},
address = {Hollywood, CA},
pages = {265--278},
url = {https://www.usenix.org/conference/osdi12/technical-sessions/presentation/li},
publisher = {USENIX},
}
...
url = {http://doi.acm.org/10.1145/2517349.2522729},
doi = {10.1145/2517349.2522729},
acmid = {2522729},
publisher = {ACM},
address = {New York, NY, USA},
}
@inproceedings{Kulkarni:PLDI11,
author = {Kulkarni, Milind and Nguyen, Donald and Prountzos, Dimitrios and Sui, Xin and Pingali, Keshav},
title = {{Exploiting the Commutativity Lattice}},
booktitle =
{Proceedings of the 32Nd ACM SIGPLAN Conference {Conference on Programming Language Design and Implementation},
series = {PLDI '11},
year = {2011},
isbn = {978-1-4503-0663-8},
...
url = {http://doi.acm.org/10.1145/1993498.1993562},
doi = {10.1145/1993498.1993562},
acmid = {1993562},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {commutativity lattice, optimistic parallelism, transactions},
}
...
url = {http://doi.acm.org/10.1145/2517349.2522729},
doi = {10.1145/2517349.2522729},
acmid = {2522729},
publisher = {ACM},
address = {New York, NY, USA},
}
...
number = {4},
pages = {388--395},
year = {1987},
publisher = {IEEE},
}
...
number = {11},
pages = {1355--1387},
year = {2000},
publisher = {Elsevier},
}
...
doi = {10.1016/0022-0000(90)90034-i},
url = {http://dx.doi.org/10.1016/0022-0000(90)90034-I},
year = {1990},
month =
{aug},
publisher = {Elsevier {BV}}, aug,
volume = {41},
number = {1},
pages = {65--156},
...
doi = {10.1016/0022-0000(90)90034-i},
url = {http://dx.doi.org/10.1016/0022-0000(90)90034-I},
year = {1990},
month =
{aug},
publisher = {Elsevier {BV}}, aug,
volume = {41},
number = {1},
pages = {65--156},
...
url = {http://doi.acm.org/10.1145/362686.362692},
doi = {10.1145/362686.362692},
acmid = {362692},
publisher = {ACM},
keywords = {hash addressing, hash coding, retrieval efficiency, retrieval trade-offs, scatter storage, searching, storage efficiency, storage layout},
}
...
number={1},
pages={58--75},
year={2005},
publisher={Elsevier}
}
@inproceedings{Spanner,
...
numpages = {14},
url = {http://dl.acm.org/citation.cfm?id=2387880.2387905},
acmid = {2387905},
publisher = {USENIX Association},
address = {Berkeley, CA, USA},
}
@MISC{graph500,
key={Graph500},
title = {Graph 500},
year = {2012},
month =
{July}, jul,
howpublished={\url{http://www.graph500.org/}}
}
@MISC{ellenselfie,
title = {{Ellen's Oscar 'selfie' crashes Twitter, breaks record}},
month =
{March}, mar,
year = {2014},
author = {Lisa Baertlein},
editor = {Reuters.com},
diff --git a/rmd/paper.Rmd b/rmd/paper.Rmd
index aa6cfd2..3f3d317 100644
--- a/rmd/paper.Rmd
+++ b/rmd/paper.Rmd
...
We first evaluate performance with a simple workload consisting of a raw mix of `Set` operations randomly distributed over 10,000 keys. We use both a uniform random distribution as well as a skewed Zipfian distribution with a coefficient of 0.6. In \autoref{stress_tput}, we see that commutative transactions perform strictly better, showing the most pronounced benefit over the more update-heavy, skewed workload.
## Case study: Retwis
To understand performance on a typical web workload, we
implemented a version of use *Retwis*, a simplified Twitter clone designed originally for Redis [@redis].
We use data Data structures such as sets
to are used track each user's followers and
posts, posts and keep a materialized up-to-date timeline for each user (represented as a sorted set). On top of Retwis's basic functionality, we added a "repost" action that behaves like Twitter's "retweet".
```{r}
df <- subset(db("
...
}
```
```{r followers, include=F, fig.width=2.5,
fig.height=2.5} fig.height=2.3}
d.follow <- histogram.facets(subset(df,
initusers == 4096 & mix == 'geom_repost'
), 'stat_follower_counts', 'grp')
...
\end{figure}
```{r reposts, include=F, fig.width=2.5,
fig.height=2.5} fig.height=2.3}
d.repost <- histogram.facets(
subset(df, initusers == 4096 & mix == 'geom_repost')
, 'stat_repost_counts', 'grp')