19
Model de les Actualitzacions d'openSUSE Daniel Massaguer Jordi Massaguer

Prediccio actualitzacions OpenSUSE

Embed Size (px)

DESCRIPTION

Prediccio actualitzacions OpenSUSE, Jordi Massaguer

Citation preview

Page 1: Prediccio actualitzacions OpenSUSE

Model de les Actualitzacions d'openSUSE

Daniel Massaguer Jordi Massaguer

Page 2: Prediccio actualitzacions OpenSUSE

El cost de mantenir software appliances i distribucionsLinux depèn de de les actualitzacions dels diferentscomponents.

Quan serà la següent actualització ?

Problema

??

Page 3: Prediccio actualitzacions OpenSUSE

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

Page 4: Prediccio actualitzacions OpenSUSE

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 ~ ?

Page 5: Prediccio actualitzacions OpenSUSE

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)'

Page 6: Prediccio actualitzacions OpenSUSE

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

Page 7: Prediccio actualitzacions OpenSUSE

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

Page 8: Prediccio actualitzacions OpenSUSE

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

Page 9: Prediccio actualitzacions OpenSUSE

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!

Page 10: Prediccio actualitzacions OpenSUSE

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

Page 11: Prediccio actualitzacions OpenSUSE

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

Page 12: Prediccio actualitzacions OpenSUSE

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

Page 13: Prediccio actualitzacions OpenSUSE

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)'

Page 14: Prediccio actualitzacions OpenSUSE

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)

Page 15: Prediccio actualitzacions OpenSUSE

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))

Page 16: Prediccio actualitzacions OpenSUSE

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))

Page 17: Prediccio actualitzacions OpenSUSE

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))

Page 18: Prediccio actualitzacions OpenSUSE

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)

Page 19: Prediccio actualitzacions OpenSUSE

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.