From 5ca25a7f7f330df42688e4f7754bb6ac3b2af9df Mon Sep 17 00:00:00 2001 From: taivop Date: Fri, 25 Nov 2016 11:31:27 +0100 Subject: [PATCH] #166 exp2 --- report/milestone2.pdf | Bin 522278 -> 521745 bytes report/milestone2.tex | 37 +++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/report/milestone2.pdf b/report/milestone2.pdf index 681992d19e6a0e8ef2f776517c26cd68cf0e10ff..9acf7ba1b65f808886236bc7635ef52d2412b67e 100644 GIT binary patch delta 41416 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 delta 41860 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 MPDdxBDvSQV04h8du>b%7 diff --git a/report/milestone2.tex b/report/milestone2.tex index 791dab2..0fac938 100644 --- a/report/milestone2.tex +++ b/report/milestone2.tex @@ -209,20 +209,13 @@ \subsection{Experimental question} In this section, I will run experiments to find out how the response time of SUT depends on the number of servers $S$ and replication factor $R$. Additionally, I will investigate whether \get{}s and \set{}s are differently affected by these parameters. Finally, I will find out which operations become more time-consuming as these parameters change. -To this end, I will measure response time (middleware) for every 10th request as a function of $S$ and $R$, and measure how long requests spend in each part of the SUT (based on the timestamps defined in Milestone 1). For each parameter combination, I will run experiments until the 95\% confidence interval (calculated using a two-sided t-test) lies within 5\% of the mean response time, but not less than 3 repetitions. +To this end, I will measure response time (middleware) for every 10th request as a function of $S$ and $R$, and measure how long requests spend in each part of the SUT (based on the timestamps defined in Milestone 1). For each parameter combination, I will run experiments until the 95\% confidence interval of the response time (calculated using a two-sided t-test) lies within 5\% of the mean, but not less than 3 repetitions. \subsection{Hypothesis} I predict the following. \subsubsection{\get{} and \set{} requests} -\get{} and \set{} requests will not be impacted the same way by different setups. - -\get{} requests will be processed faster as we increase $S$ because the same load will be distributed across more threads. Increasing $R$ will have no effect on \get{} requests because replication is only done for \set{} requests (there may be secondary effects due to e.g. write threads requiring more CPU time, but this should be negligible). - -\set{} requests will be strongly affected by $R$. If $R=1$, \set{} requests will be processed faster for higher $S$ because each request is only written to one server, and for a higher $S$ the same load is distirbuted across more write threads. However, if $R>1$, response time of \set{}s increases due to two factors: a) the request is written serially to $R$ servers, and b) not all $R$ responses are received at the same time. Assuming a) is negligible compared to b), we will observe an increase in the mean response time. - -All of this is summarised in Figure~\ref{fig:exp2:hyp:replication}. For \get{} requests, response time will be independent of $R$ for any fixed $S$. For \set{} requests, response time increases linearly with increasing $R$, and the slope increases with $S$. \begin{figure}[h] \centering @@ -231,9 +224,17 @@ \subsubsection{\get{} and \set{} requests} \label{fig:exp2:hyp:replication} \end{figure} +\get{} and \set{} requests will not be impacted the same way by different setups. + +\get{} requests will be processed faster as we increase $S$ because the same load will be distributed across more threads. Increasing $R$ will have no effect on \get{} requests because replication is only done for \set{} requests (there may be secondary effects due to e.g. write threads requiring more CPU time, but this should be negligible). + +\set{} requests will be strongly affected by $R$. If $R=1$, \set{} requests will be processed faster for higher $S$ because each request is only written to one server, and for a higher $S$ the same load is distirbuted across more write threads. However, if $R>1$, response time of \set{}s increases due to two factors: a) the request is written serially to $R$ servers, and b) not all $R$ responses are received at the same time. + +All of this is summarised in Figure~\ref{fig:exp2:hyp:replication}. For \get{} requests, response time will be independent of $R$ for any fixed $S$. For \set{} requests, response time increases linearly with increasing $R$, and the slope increases with $S$. + \subsubsection{Throughput} -I also predict the total throughput will decrease as $R$ increases because the servers will need to do additional work (communicating more with memcached servers). +I predict the total throughput will decrease as $R$ increases because the servers will need to do additional work (communicating more with memcached servers for each \set{}). \subsubsection{Relative cost of operations} As explained previously, more replication means that the middleware needs to send each \set{} request to more servers and wait for more answers. Thus, as $R$ increases, $tMemcached$ will increase. Since each \set{} request takes longer to process, this means that $tQueue$ will increase as well. I also predict that the relative cost of \get{} operations will not change. @@ -243,9 +244,9 @@ \subsubsection{Scalability} In an ideal system, a) there would be enough resources to concurrently run all threads; b) all memcached servers would take an equal and constant amount of time to respond; c) there would be no network latencies; d) dequeueing would take constant time. -For \get{} requests, the ideal system would have linear speed-up (assuming the load balancer does not become a bottleneck). I predict that the SUT will have sublinear speed-up for \get{}s because the response time also includes network latency -- a term that is not dependent on $S$: $response \; time = const. + \frac{const.}{S}$. In addition, since threads compete for resources in the SUT, the speed-up will be even lower than what's predicted by the formula above. +For \get{} requests, the ideal system would have linear speed-up (until the load balancer becomes the bottleneck). I predict that the SUT will have sublinear speed-up for \get{}s because the response time also includes network latency -- a term that is not dependent on $S$: $response \; time = const. + \frac{const.}{S}$. In addition, since threads compete for resources in the SUT, the speed-up will be even lower than what's predicted by the formula above. -For \set{}s, the ideal system would have linear speed-up if $R=const.$ because in that case, adding servers does not increase the amount of work done \emph{per \linkmain{MiddlewareComponent}} (again assuming the load balancer does not become a bottleneck). For full replication the ideal system would have sublinear speed-up because each \set{} will be serially written to $S$ servers so the response time would have a component that linearly depends on $S$. +For \set{}s, the ideal system would have linear speed-up if $R=const.$ because in that case, adding servers does not increase the amount of work done per \linkmain{MiddlewareComponent} (again assuming the load balancer does not become a bottleneck). For full replication the ideal system would have sublinear speed-up because each \set{} is serially written to $S$ servers so the response time would have a component that linearly depends on $S$. \subsection{Experiments} \begin{center} @@ -285,22 +286,22 @@ \subsection{Results} \subsubsection{\get{} requests} -From Figure~\ref{fig:exp2:res:replication} we can see that increasing $R$ from 1 to $S$ does have an impact on the mean response time of \get{} requests (contrary to the hypothesis) and this effect is amplified as $S$ grows. However, the 25\%, 50\%, and 75\% percentiles stay constant, implying that most of the requests aren't affected (in accordance with the hypothesis) -- only the response time of outliers (\get{}s with high response times) increases. Figure~\ref{fig:exp2:res:breakdown} shows that queue time is constant and the increase in response time comes almost entirely from waiting for memcached's response; this means the increase is caused by either increased network latency (due to more traffic at a higher value of $R$) or increased memcached response time. +From Figure~\ref{fig:exp2:res:replication} we can see that increasing $R$ from 1 to $S$ does have an impact on the mean response time of \get{} requests (contrary to the hypothesis) and this effect is amplified as $S$ grows. However, the 25\%, 50\%, and 75\% percentiles stay constant, implying that most requests aren't affected (in accordance with the hypothesis) -- only the response time of outliers increases. Figure~\ref{fig:exp2:res:breakdown} shows that $tQueue$ is constant and the increase in response time comes almost entirely from waiting for memcached's response ($tMemcached$); this means the increase is caused by either increased network latency (due to more traffic at a higher value of $R$) or increased memcached response time. I predicted that increasing $S$ while keeping $R$ constant would decrease the response time of \get{} requests. In fact I was only partly right: the 25\%, 50\%, and 75\% percentiles stay constant, but the mean decreases with $S$ at $R=1$ and increases at $R>1$. Investigating the breakdown of time spent inside the middleware (Figure~\ref{fig:exp2:res:breakdown}) gives an answer: queueing time does decrease with $S$ for all replication levels, but this gain is offset by the increase in time spent waiting for memcached's response. -Given that $tMemcached$ increased with $S$ even when $R$ was constant, we can conclude that the performance degradation was mostly due to networking -- if it had been caused by memcached's slower responses, $tMemcached$ would not have changed with $S$. +Given that $tMemcached$ increased with $S$ even when $R$ was constant, we can conclude that the performance degradation was mostly due to network delays -- if it had been caused by memcached's slower responses, $tMemcached$ would not have changed with $S$. \subsubsection{\set{} requests} \label{sec:exp2:res:set} Figure~\ref{fig:exp2:res:replication} shows that increasing $R$ does increase response time for $S=7$ but unexpectedly, decreases response time for $S=3$. This is counterintuitive: how can a system that is under a higher load also be faster? -From Figure~\ref{fig:exp2:res:breakdown} we see that queueing time actually decreases with $R$ at all values of $S$ and the increase in $tMemcached$ offsets the decrease at $S=5$ and $S=7$. Why, then, do \set{} requests spend less time in the queue as $R$ increases? We can explain this by looking at the architecture of \linkmain{WriteWorker}. Two steps are done in the same loop: first, if the write queue has any elements, one is taken and sent to all $R$ servers. The second step is checking for responses from memcached (waiting up to 1ms using the function \verb+Selector.select(long timeout)+). This means that if there were no responses from memcached servers, the thread just sleeps 1ms. +From Figure~\ref{fig:exp2:res:breakdown} we see that queueing time actually decreases with $R$ at all values of $S$ and the increase in $tMemcached$ offsets the decrease at $S=5$ and $S=7$. Why, then, do \set{} requests spend less time in the queue as $R$ increases? We can explain this by looking at the architecture of \linkmain{WriteWorker}. Two steps are done in the same loop: first, if the write queue has any elements, one is taken and sent to all $R$ servers. The second step is checking for responses from memcached (waiting up to 1ms using the function \verb+Selector.select(long timeout)+). This means that if there were no responses from memcached servers, the thread sleeps at least 1ms. The result of this design is that a system with a larger replication factor -- which means more responses from memcached servers -- sleeps less at \verb+Selector.select()+ and thus can faster go back to processing elements from the queue. -Adding servers at $R=1$ decreases response time to \set{} requests -- this is in line with the hypothesis. For $R>1$ adding servers does not have a linear effect on response time: for 50\% replication, response time (and the time spent in each component) is constant and at full replication response time increases slightly with $S$ because of increased $tMemcached$. +Adding servers at $R=1$ decreases response time to \set{} requests -- this is in line with the hypothesis (see Figure~\ref{fig:exp2:res:servers}). For $R>1$ adding servers does not have a linear effect on response time: for 50\% replication, response time (and the time spent in each component) is constant and at full replication response time increases slightly with $S$ because of increased $tMemcached$. $tMemcached$ is almost constant at 50\% replication because the difference between values of $R$ is small: $R \in \{2,3,4\}$. At full replication tMemcached has a larger effect because the difference is larger: $R \in \{3,5,7\}$. (The slowest response determines $tMemcached$; it can be modelled as the maximum of $R$ samples where each sample is the response time to one request from the middleware to a memcached server.). @@ -313,10 +314,10 @@ \subsubsection{Throughput} \label{fig:exp2:res:throughput} \end{figure} -From Figure~\ref{fig:exp2:res:throughput} we can see that throughput does indeed decrease with $R$ -- which is in line with the hypothesis --, and higher $S$ amplifies this effect. At $S=3$ throughput is almost constant; this is because the value of $R \in \{1,2,3\}$ does not change enough to make a significant difference, similarly to the previous section. Maximum throughput is achieved at $S=5, R=1$ which is likely because in Section~\ref{sec:exp1} we picked the values of $C$ and $T$ that maximised throughput under exactly those parameters. +From Figure~\ref{fig:exp2:res:throughput} we can see that throughput does indeed decrease with $R$ -- which is in line with the hypothesis --, and higher $S$ amplifies this effect. At $S=3$ throughput is almost constant; this is because the value of $R \in \{1,2,3\}$ does not change enough to make a significant difference, similarly to the previous section. Maximum throughput is achieved at $S=5, R=1$ because in Section~\ref{sec:exp1} we picked the values of $C$ and $T$ that maximised throughput under exactly those parameters. \subsubsection{Relative cost of operations} -As hypothesized, increasing $R$ also increases $tMemcached$ for \set{} requests (see Figure~\ref{fig:exp2:res:breakdown}). Unexpected though was the decrease in $tQueue$ for \set{} requests as $R$ increased, and the increase in $tMemcached$ for \get{}s. Both are explained in previous sections of this chapter. +As hypothesized, increasing $R$ also increases $tMemcached$ for \set{} requests (see Figure~\ref{fig:exp2:res:breakdown}). Unexpected though was the decrease in $tQueue$ for \set{} requests as $R$ increased, and the increase in $tMemcached$ for \get{}s. Both are explained in previous sections of this experiment. \subsubsection{Scalability} \begin{figure}[h] @@ -327,7 +328,7 @@ \subsubsection{Scalability} \label{fig:exp2:res:servers} \end{figure} -As Figure~\ref{fig:exp2:res:servers} shows, there is no speed-up for \get{} requests when we add servers, and there is even a slight increase the mean response time. Increasing $S$ does decrease mean response time to \set{} requests, but only at $R=1$ -- as hypothesized -- and sublinearly. At $R>1$ there is no speed-up. In summary, SUT performs significantly worse than the ideal system described in Section~\ref{sec:exp2:hyp:scalability}, and worse than expected. +As Figure~\ref{fig:exp2:res:servers} shows, there is no speed-up for \get{} requests when we add servers, and there is even a slight increase the mean response time. Increasing $S$ does decrease mean response time to \set{} requests, but only at $R=1$ -- as hypothesized -- and sublinearly. At $R>1$ there is no speed-up. In summary, SUT performs significantly worse than the ideal system described in Section~\ref{sec:exp2:hyp:scalability}, and worse than expected. The reasons are laid out in previous sections of this experiment. \clearpage % --------------------------------------------------------------------------------