Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
\section{Modélisation du Système}
\subsection{Architecture Générale}
\subsubsection{Description du Système}
Le système modélisé représente une base de données distribuée composée de:
\begin{itemize}
\item \textbf{Un coordinateur central}: Point d'entrée unique pour toutes les requêtes externes
\item \textbf{$N$ serveurs de base de données}: Traitent les requêtes complexes nécessitant un accès aux données
\item \textbf{Routage probabiliste}: Distribution des requêtes selon des probabilités configurables
\item \textbf{Boucle de feedback}: Les requêtes peuvent faire plusieurs passages par le coordinateur
\end{itemize}
\subsubsection{Diagramme d'Architecture}
\begin{figure}[H]
\centering
\begin{tikzpicture}[
node distance=2cm and 3cm,
queue/.style={rectangle, draw, minimum width=2cm, minimum height=1cm, text centered},
cloud/.style={ellipse, draw, minimum width=1.5cm, minimum height=0.8cm},
arrow/.style={->, >=stealth, thick}
]
% Arrivées externes
\node[cloud] (external) {Requêtes\\$\lambda$};
% Coordinateur
\node[queue, right=of external, fill=blue!20] (coord) {Coordinateur\\$\mu_c$};
% Sortie
\node[cloud, right=4cm of coord] (exit) {Sortie};
% Serveurs
\node[queue, below=of coord, fill=green!20, xshift=-1cm] (server1) {Serveur 1\\$\mu_1$};
\node[queue, right=1cm of server1, fill=green!20] (server2) {Serveur 2\\$\mu_2$};
\node[right=0.5cm of server2] (dots) {$\cdots$};
\node[queue, right=0.5cm of dots, fill=green!20] (serverN) {Serveur $N$\\$\mu_N$};
% Flèches
\draw[arrow] (external) -- (coord) node[midway, above] {$\lambda$};
\draw[arrow] (coord) -- (exit) node[midway, above] {$p$};
\draw[arrow] (coord) to[bend left=20] node[midway, left] {$q_1$} (server1);
\draw[arrow] (coord) to[bend left=10] node[midway, above] {$q_2$} (server2);
\draw[arrow] (coord) to[bend left=10] node[midway, above] {$q_N$} (serverN);
\draw[arrow] (server1) to[bend left=20] (coord);
\draw[arrow] (server2) to[bend left=10] (coord);
\draw[arrow] (serverN) to[bend left=10] (coord);
\end{tikzpicture}
\caption{Architecture du réseau de files d'attente modélisant la base de données distribuée}
\label{fig:architecture}
\end{figure}
\subsection{Hypothèses du Modèle}
\subsubsection{Hypothèses Structurelles}
\begin{enumerate}
\item \textbf{Topologie fixe}: Le nombre de serveurs $N$ est constant
\item \textbf{File unique par station}: Chaque entité (coordinateur, serveurs) possède une file d'attente FIFO
\item \textbf{Capacité illimitée}: Aucune limite sur la longueur des files
\item \textbf{Routage statique}: Les probabilités de routage $p$ et $q_i$ sont fixes
\item \textbf{Pas de pannes}: Le système fonctionne de manière continue
\end{enumerate}
\subsubsection{Hypothèses Stochastiques}
\begin{enumerate}
\item \textbf{Arrivées Poissoniennes}: Les requêtes externes arrivent selon un processus de Poisson de taux $\lambda$
\item \textbf{Temps de service exponentiels}: Les durées de traitement suivent des lois exponentielles
\begin{itemize}
\item Coordinateur: $S_c \sim \text{Exp}(\mu_c)$
\item Serveur $i$: $S_i \sim \text{Exp}(\mu_i)$
\end{itemize}
\item \textbf{Indépendance}: Les temps entre arrivées et les temps de service sont indépendants
\item \textbf{Pas de mémoire}: Propriété markovienne des distributions exponentielles
\end{enumerate}
\subsection{Paramètres du Modèle}
\subsubsection{Paramètres Externes}
\begin{table}[H]
\centering
\caption{Paramètres externes du système}
\label{tab:params-externes}
\begin{tabular}{lll}
\toprule
\textbf{Paramètre} & \textbf{Notation} & \textbf{Description} \\
\midrule
Taux d'arrivée & $\lambda$ & Requêtes par unité de temps \\
\bottomrule
\end{tabular}
\end{table}
\subsubsection{Paramètres du Coordinateur}
\begin{table}[H]
\centering
\caption{Paramètres du coordinateur}
\label{tab:params-coord}
\begin{tabular}{lll}
\toprule
\textbf{Paramètre} & \textbf{Notation} & \textbf{Description} \\
\midrule
Taux de service & $\mu_c$ & Requêtes traitées par unité de temps \\
Probabilité de sortie & $p$ & Prob. de terminer la requête \\
\bottomrule
\end{tabular}
\end{table}
\subsubsection{Paramètres des Serveurs}
\begin{table}[H]
\centering
\caption{Paramètres des serveurs}
\label{tab:params-serveurs}
\begin{tabular}{lll}
\toprule
\textbf{Paramètre} & \textbf{Notation} & \textbf{Description} \\
\midrule
Nombre de serveurs & $N$ & Cardinalité de l'ensemble des serveurs \\
Taux de service serveur $i$ & $\mu_i$ & Requêtes traitées par unité de temps \\
Prob. routage serveur $i$ & $q_i$ & Prob. d'envoi vers le serveur $i$ \\
\bottomrule
\end{tabular}
\end{table}
\subsubsection{Contraintes}
Les paramètres doivent satisfaire:
\begin{align}
\lambda &> 0 \\
\mu_c, \mu_i &> 0, \quad \forall i \in \{1, \ldots, N\} \\
p, q_i &\in [0, 1], \quad \forall i \in \{1, \ldots, N\} \\
p + \sum_{i=1}^{N} q_i &= 1 \quad \text{(Conservation des probabilités)}
\end{align}
\subsection{Métriques de Performance}
\subsubsection{Métriques par Station}
Pour chaque station (coordinateur et serveurs):
\begin{table}[H]
\centering
\caption{Métriques de performance par station}
\label{tab:metriques-station}
\begin{tabular}{llp{6cm}}
\toprule
\textbf{Métrique} & \textbf{Notation} & \textbf{Description} \\
\midrule
Utilisation & $\rho$ & Fraction du temps où le serveur est occupé \\
Nombre moyen & $L$ & Nombre moyen de requêtes dans la station (attente + service) \\
Nombre en attente & $L_q$ & Nombre moyen de requêtes en attente \\
Temps moyen & $W$ & Temps moyen total dans la station \\
Temps d'attente & $W_q$ & Temps moyen passé en attente \\
Temps de service & $W_s$ & Temps moyen de service \\
\bottomrule
\end{tabular}
\end{table}
\subsubsection{Métriques Globales}
Pour le système complet:
\begin{table}[H]
\centering
\caption{Métriques de performance globales}
\label{tab:metriques-globales}
\begin{tabular}{llp{6cm}}
\toprule
\textbf{Métrique} & \textbf{Notation} & \textbf{Description} \\
\midrule
Clients totaux & $L_{\text{total}}$ & Somme des clients dans toutes les stations \\
Temps total & $W_{\text{total}}$ & Temps moyen total dans le système \\
Débit & $\lambda_{\text{sortie}}$ & Taux de requêtes terminées \\
Stabilité & Booléen & Système stable si $\rho_i < 1$ partout \\
\bottomrule
\end{tabular}
\end{table}
\subsection{Conditions de Stabilité}
\subsubsection{Critère de Stabilité}
Le système est stable si et seulement si toutes les stations sont stables:
\begin{theorem}[Stabilité du Réseau]
Le réseau est stable $\Leftrightarrow$ $\rho_i < 1$ pour toute station $i$, où:
\begin{align}
\rho_{\text{coord}} &= \frac{\lambda_{\text{coord}}}{\mu_c} = \frac{\lambda}{p \mu_c} \\
\rho_i &= \frac{\lambda_i}{\mu_i} = \frac{\lambda q_i}{p \mu_i}, \quad i = 1, \ldots, N
\end{align}
\end{theorem}
\subsubsection{Implications Pratiques}
Pour garantir la stabilité:
\begin{enumerate}
\item \textbf{Coordinateur}: $\mu_c > \frac{\lambda}{p}$
\item \textbf{Serveur $i$}: $\mu_i > \frac{\lambda q_i}{p}$
\item \textbf{Impact de $p$}: Plus $p$ est petit, plus les requêtes circulent, augmentant la charge
\item \textbf{Équilibrage}: Les $q_i$ doivent être choisis pour équilibrer la charge entre serveurs
\end{enumerate}
\subsection{Formules Analytiques}
En appliquant le théorème de Jackson (équations \eqref{eq:L} et \eqref{eq:W}):
\subsubsection{Coordinateur}
\begin{align}
\lambda_{\text{coord}} &= \frac{\lambda}{p} \\
\rho_{\text{coord}} &= \frac{\lambda}{p \mu_c} \\
L_{\text{coord}} &= \frac{\rho_{\text{coord}}}{1 - \rho_{\text{coord}}} \\
W_{\text{coord}} &= \frac{1}{\mu_c - \lambda/p}
\end{align}
\subsubsection{Serveur $i$}
\begin{align}
\lambda_i &= \frac{\lambda q_i}{p} \\
\rho_i &= \frac{\lambda q_i}{p \mu_i} \\
L_i &= \frac{\rho_i}{1 - \rho_i} \\
W_i &= \frac{1}{\mu_i - \lambda q_i / p}
\end{align}
\subsubsection{Système Global}
\begin{align}
L_{\text{total}} &= L_{\text{coord}} + \sum_{i=1}^{N} L_i \\
W_{\text{total}} &= \frac{L_{\text{total}}}{\lambda}
\end{align}
Ces formules seront utilisées pour valider les résultats de simulation.