modified test.tex
authorMarius Sandu-Popa <sandupopamarius@gmail.com>
Thu, 11 Feb 2010 20:57:58 +0000 (22:57 +0200)
committerMarius Sandu-Popa <sandupopamarius@gmail.com>
Thu, 11 Feb 2010 20:57:58 +0000 (22:57 +0200)
report/img/general-arch.png [new file with mode: 0644]
report/test.tex

diff --git a/report/img/general-arch.png b/report/img/general-arch.png
new file mode 100644 (file)
index 0000000..7b245f9
Binary files /dev/null and b/report/img/general-arch.png differ
index 448d632..2f8adc3 100644 (file)
@@ -1,11 +1,27 @@
-\subsection{The old infrastructure}
-We emphasize the disadvantages (not scalable)
-\subsection{The new infrastructure}
+Figure \ref{genarch} presents a general overview of the old BitTorrent performance testing infrastructure. The infrastructure consists of commodity hard
+ware systems running GNU/Linux. Each system uses OpenVZ virtual machine implementation to run multiple virtual systems on the same hardware node.
 
-The new testing infrastructure is implemented as a client-server architecture, in which the 
-Commander application start the Server application and then acts as a client requesting the Server to start BitTorrent clients.
-This system is described in figure \ref{fig:test-arch}.\\
+\begin{figure}[h]
+\begin{center}
+\includegraphics[width = 6.0in, height = 3.5in]{img/general-arch.png}
+\end{center}
+\caption{Overall Architecture of BitTorrent Performance Evaluation Infrastructure}
+\label{genarh}
+\end{figure}
+
+Each virtual machine contains the basic tools for running and compiling BitTorrent clients. The used clients are instrumented which means that they output status and logging information required for subsequent analysis and result interpretation. As the infrastructure aims to be generic among different client implementations, the addition of a new type of BitTorrent client resumes only at adding the required scripts and instrumentation.
+
+Communication with the virtual machines is enabled through the use of DNAT and iptables. TC (trafic control) is used for controlling the virtual links between virtual systems.
 
+The old infrastructure also uses for each virtual machine a set of scripts to enable starting, configuration, stopping and result gathering for BitTorrent clients. A test/command system starts a series of clients automatically through the use of a scripted interface. The command system uses SSH to connect to the virtual machines (SSH is installed and communication is enabled through DNAT/iptables) and command the BitTorrent implementations. The SSH connection uses the virtual machine local scripts to configure and start the clients.
+
+As we can see the old infrastructure relies heavily on the scripted interface and static configurations. Although this works fairly well it has some major drawbacks: it is very hard to maintain and it doesn't scale well. To resolve this issues we proposed a new approach for the interaction between the command system and the virtual machines.
+
+\subsection{New approach}
+
+The new testing infrastructure is implemented as a client-server architecture, in which the command system starts a server daemon on the virtual machines  and then acts as a client making requests to the server daemon.
+
+\subsubsection{Communication protocol}
 The Commander communicates with the Server using the following types of messages:
 
 \begin{itemize}
@@ -25,8 +41,10 @@ The Commander communicates with the Server using the following types of messages
  \item ACK PID - contains $''ACK <PID>''$ sent by the server after starting a client, PID is the process id.
  \item ERROR - contains $"ERROR <error-message>``$ sent by the server when the parameters received are incorrect or the BT client can not be started.
 \end{itemize}
-We intend to extend this communication protocol with status messages sent by the Commander to check
-the BT client's progress.\\
+
+In figure \ref{fig:test-arch} we can see the usual messages exchanged between the command system and server daemon on the virtual machines.\\
+
+We intend to extend this communication protocol with status messages sent by the Commander to check the BT client's progress.\\
 
 The messages with information stored in data structures are transmitted serialized using \textit{pickle} module \cite{pickle}, Python's most common method to serialize/deserialize object data. 
 
@@ -37,7 +55,7 @@ The messages with information stored in data structures are transmitted serializ
 \caption{Client-Server architecture for interaction with BitTorrent clients.}
 \label{fig:test-arch}
 \end{figure}
-\subsection{Commander}\label{sec:comm}
+\subsubsection{Commander}\label{sec:comm}
 \input{test/comm.tex}
-\subsection{Server}\label{sec:server}
+\subsubsection{Server}\label{sec:server}
 \input{test/server.tex}
\ No newline at end of file