Prediccio actualitzacions OpenSUSE
-
Upload
servei-de-noves-tecnologies-del-consell-comarcal-de-la-garrotxa -
Category
Technology
-
view
482 -
download
2
description
Transcript of Prediccio actualitzacions OpenSUSE
Model de les Actualitzacions d'openSUSE
Daniel Massaguer Jordi Massaguer
El cost de mantenir software appliances i distribucionsLinux depèn de de les actualitzacions dels diferentscomponents.
Quan serà la següent actualització ?
Problema
??
Les actualitzacions depenen de factors no observables i quecanvien al llarg del temps com ara: - Dedicació dels autors:
- Temps complert- Temps parcial- Temps lliure
- Experiència (software + area) - Metodologies i eines (e.g., junit, Metodologies àgils) - Nombre de programadors - Motivació La relació entre actualitzacions i altres factors observableses desconeguda: - Quan va ser la última actualització - Actualització d'altres components - Maduresa del projecte - Tipus d'actualització (e.g., de seguretat) - Lineas de Codi
Dificultats
Dos Models
1.- Model de cues
x : variable aleatòria = 'temps entre actualitzacions d'un component'
Model Parametric: Process Poissonx es comporta com una distribucio estadistica (exponencial):
x ~ exp(λ=1/x)
Model no parametricx no es comporta com una distribucio estadistica, pero podem mesurarpropietats basiques d'x (mitjana, desviacio standard).
x ~ ?
Dos Models
*un exemple tipic de series temporals es el preu de les accions d'una companyia al llarg del temps
1.- Model de cues
x : variable aleatòria = 'temps entre actualitzacions d'un component'
Model Parametric: Process Poissonx es comporta com una distribucio estadistica (exponencial):
x ~ exp(λ=1/x)
Model no parametricx no es comporta com una distribucio estadistica, pero podem mesurarpropietats basiques d'x (mitjana, desviacio standard).
x ~ ?
2.- Time Series (series temporals)
y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
quinzena de Gener)'
Dos Models
1.- Model de cues
x : variable aleatòria = 'temps entre actualitzacions d'un component'
Model Parametric: Process Poissonx es comporta com una distribucio estadistica (exponencial):
x ~ exp(λ=1/x)
Model no parametricx no es comporta com una distribucio estadistica, pero podem mesurarpropietats basiques d'x (mitjana, desviacio standard).
x ~ ?
2.- Time Series (series temporals)
y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
quinzena de Gener)'
Quin model es mes appropriat?
→ Estudi preliminar amb 1 any d'actualitzacions per 11.0 - i586
Quin model es mes appropriat?
→ Estudi preliminar amb 1 any d'actualitzacions per 11.0 - i586
Process Poisson xi ~ exp(λ=1/x)
x ~ exp(λ=1/x)** → No és un procés Poisson
*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%).
**segons els tests d'Anderson-Darling, Kolmogoronov-Smirnov, i Chi-squared.
***segons els mateixos tests, x no es comporta com una distribucio normal o altres distribucions conegudes.
x = 'temps entre actualitzacions d'un component'*
0 28 56 84 112 140 168 196 224 252 280 308 336 364 3920
50
100
150
200
250
Time between updatesi586 - openSUSE 11.0
time [days] (bins of 28 days)
Freq
uenc
y
Model No Parametric xi ~?
*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%).
x = 'temps entre actualitzacions d'un component'*
x = 73,5 diesstdev(x) = 53,19 dies
0 28 56 84 112 140 168 196 224 252 280 308 336 364 3920
50
100
150
200
250
Time between updatesi586 - openSUSE 11.0
time [days] (bins of 28 days)
Freq
uenc
y
Model No Parametric x ~?
*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%).
0 28 56 84 112 140 168 196 224 252 280 308 336 364 3920
50
100
150
200
250
Time between updatesi586 - openSUSE 11.0
time [days] (bins of 28 days)
Freq
uenc
y
x = 'temps entre actualitzacions d'un component'*
x = 73,5 diesstdev(x) = 53,19 dies75% : [21,4 dies , 4,6 mesos] → massa variabilitat!
Summer (July-Sep)Winter (Jan-Mar)
00.10.20.30.4
Updates per quarteri586 - openSUSE 11.0
Academic quarter
(Nor
mal
ized
) fre
quen
cyTime Series
Summer (July-Sep)Fall (Oct-Dec)
Winter (Jan-Mar)Spring(Apr-June)
00.05
0.10.15
0.20.25
0.30.35
Frequency of updates per quarteri586 security updates - openSUSE 11.0
Actualitzacions de Seguretat : tot l'anya slight increase in Winter and decrease in Spring.
Actualitzacions Recomenades: La majoria al principi
Summer (July-Sep)Fall (Oct-Dec)
Winter (Jan-Mar)Spring(Apr-June)
0
0.1
0.2
0.3
0.4
0.5
0.6
Frequency of updates per quarteri586 recommended updates - openSUSE 11.0
May
15,
08
Jun
15, 0
8
Jul 1
5, 0
8
Aug
15,
08
Sep
15,
08
Oct
15,
08
Nov
15,
08
Dec
15,
08
Jan
7, 0
9
Jan
31, 0
9
Feb
28, 0
9
Mar
31,
09
Apr
30,
09
May
31,
09
020406080
100120
Num ber of updat es per 1/2 a m ont hi586 secur it y updat es - openSUSE 11.0
hmax
hmin
Actualitzacions de Seguretat:hmax(t) = max(y) = 109 hmin(t) = min (y) = 14
hsin(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
Es poden aproximar amb una funcio sinusoidal !!!
Time Series
May
15,
08
May
31,
08
Jun
15, 0
8Ju
n 30
, 08
Jul 1
5, 0
8Ju
l 31,
08
Aug
15,
08
Aug
31,
08
Sep
15,
08
Sep
30,
08
Oct
15,
08
Oct
31,
08
Nov
15,
08
Nov
30,
08
Dec
15,
08
Dec
21,
08
Jan
7, 0
9Ja
n 15
, 09
Jan
31, 0
9Fe
b 15
, 09
Feb
28, 0
9M
ar 1
5, 0
9M
ar 3
1, 0
9A
pr 1
5, 0
9A
pr 3
0, 0
9M
ay 1
5, 0
9M
ay 3
1, 0
9Ju
n 20
, 09
020406080
Num ber of updat es per 1/2 a m ont hi586 secur it y updat es - openSUSE 11.0hmax
hmin
Actualitzacions Recomenades :hmax(t) = max(y) = 74 hmin(t) = min (y) = 0hsin(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
Es poden aproximar amb una funcio sinusoidal !!!
Time Series
Dos Models
Model de cues
x : variable aleatòria = 'temps entre actualitzacions d'un component'
Model Parametric: Process Poissonx es comporta com una distribucio estadistica (exponencial):
x ~ exp(λ=1/x)
Model no parametricx no es comporta com una distribucio estadistica, pero podem mesurarpropietats basiques d'x (mitjana, desviacio standard).
Time Series (series temporals)
y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
quinzena de Gener)'
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
*(amb diferents valors per A(t), B(t), C(t), i D(t))
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
11.0 i 11.1 , rec. i seg i586, es poden modelar amb funcions sinusoidals*
h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
*(amb diferents valors per A(t), B(t), C(t), i D(t))
La Majoria de les actualitzacions recomenades es publiquen abans que surti la seguent distribucio (>70%)
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
Conclusions i feina futura
• Un model basat en time series es apropriat.• La majoria d'actualitzacions recomenades es publiquen abans
que surti la seguent distribucio.• El numero d'actualitzacions de seguretat es mante
aproximadament constant al llarg de la vida d'una actualitzacio.
• Feina futura:• Proposar i estudiar model predictiu de les actualitzacions de
diferents software appliances
• http://updateforecast.appspot.com → estadistiques, time series, i prediccions actualitzades
automaticament.
• Estudiar models que tinguin en compte actualitzacions compartides i relacions entre diferents distros.
• Estudiar relacio entre bugs publicats a Bugzilla i actualitzacions.