Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in...

35
Distribuited Garbage Collection Pastorino Luca

Transcript of Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in...

Page 1: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Garbage Collection

Pastorino Luca

Page 2: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Garbage Collector garbage collection in ambiente

distribuito è basato sulle idee nate per lo studio dei garbage collectors in ambiente locale(single-address space collectors)

Page 3: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

single-address space garbage collector

Terminologia Mutator : un processo che modifica

lo stato dello heap.

Comprende operazioni come: Creazione di un nuovo oggetto Distruzione di un oggetto

Page 4: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Collector : il processo che recupera lo spazio “garbage”.

Questo può essere suddiviso in due sub-processi : Identification: identifica le celle irraggiungibili. Reclamation: recupera lo spazio

Garbage collectoridentification reclamation

Classificazione Garbage collector

Page 5: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Identification

Identification

Direct Indirect

Immediate Deferred Sequential Concurrent

Page 6: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Direct Identification of Garbage

L’identificazione diretta è effettuata tramite reference count.

Ogni cella ha uno spazio riservato per memorizzare un contatore.

Page 7: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Immediate Identification and Reclamation

Dopo ogni mutazione nello stato dello heap il contatore viene aggiornato e se diventa zero viene effettuato il recupero dello spazio.

Il collector recupera lo spazio ricorsivamente.

Problema: recursive freeing.

Page 8: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Deferred Reclamation

Usa un lista di celle libere.Quando un cella viene deallocata

viene messa alla fine della lista e il recupero dello spazio avviene solo quando questa è avanzata fino alla testa della lista.

Page 9: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Deferred Identification

Alcune operazione modificano il ref. Count di una cella solo momentaneamente. Ad es. quando aggiungo un riferimento come parametro di una procedura: il riferimento viene cancellato al termine di essa.

Page 10: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Space Overhead and Overflof Il reference count occupa spazio (di

solito è un valore basso). Il refence count potrebbe andare in

overflow

Page 11: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Indirect Identification of Garbage

Si basa sull’idea di scorrere tutti i riferimenti a partire dalla root e identificare tutte le celle raggiungibili (alive).

Di conseguenza, quelle non raggiunte sono garbage.

Page 12: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Mark and ScanNella sua versione più semplice, ritarda il

recupero dello spazio finchè lo heap non è saturo.

Il collector è composto da 2 fasi sequenziali: Vengono cercate tutte le celle accessibile

e segnate come “live”(basta 1 bit) Vengono recuperate quelle non raggiunte

e viene resettato il bit di mark in tutte le celle

Page 13: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Concurrent Mark-Scan (Dijkstra)

Il programma e il garbage collector possono operare concorrentemente (on-the-fly garbage collector).

Viene introdotto un terzo stato per una cella che vuol dire che la cella potrebbe essere raggiungibile.

Page 14: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Scavenging Collectors

La tecnica dello scan è inefficiente soprattutto se lo heap è grosso perché occorre scorrerlo tutto.

Soluzione: dividere lo heap in 2 parti: from-space e to-space.

Si alloca sempre nel from-space e quando è pieno si invertono le 2 parti.

Page 15: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Garbage Collectors

Per sistemi distribuiti intendiamo un insieme di host autonomi che comunicano fra loro scambiandosi messaggi.

Un riferimento ad una cella che sta nello stesso host viene detto locale, altrimenti è detto remoto.

Page 16: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Example of computation graph

p

b

c

d

e

s

t

u

o

h

qr

a

f

g

i

l

mn

z

v

x

Page 17: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Garbage subgraph Intrasite acyclic garbage (v,x,z) Intrasite cyclic garbage (s,t,u) Intersite acyclic garbage (l,m,n) Intersite cyclic garbage (o,p,q,r)

Page 18: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Remote access

L’accesso remoto avviene tramite la spedizione di messaggi

Page 19: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Transmission problem Perdita di messaggi Duplicazione di messaggi Ordine di arrivo dei messaggi

sbagliato Host fuori uso Latenza

Page 20: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Transmission

Il protocollo TCP/IP è lo standard de facto. Esso dovrebbe occuparsi di far rispedire i pacchetti persi, cancellare quelli duplicati e riassemblarli nell’ordine corretto(FOFI)

Page 21: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Direct Identification of Distribuited Garbage

Deriva dalla tecnica del reference counter applicata in locale.

Però insorgono problemi legati alla latenza nelle trasmissioni.

Page 22: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Reference Counting

A B C

cp(@b)

inc(@b) del(@b)

•Race condition

Page 23: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Reference Counting Lermer and Maurer protocol per

prevenire race conditions.

A B C

Ack_req(@b,@C)

Cp(@b)

ack(@b)

Page 24: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Reference Counting

Per il corretto funzionamento di questo metodo è necessario che i messaggi arrivino nello stesso ordine di partenza (FOFI)

Page 25: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Weighted Reference Count E’ un estensione del reference

counting che risolve il problema dell’ordine casuale di arrivo dei messaggi

L’idea è di associare un peso ad ogni riferimento, quindi il contatore viene solo decrementato e non ci sono race conditions.

Page 26: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Weighted Reference Count La somma di tutti i pesi dei riferimenti è

uguale al valore del counter. Quando un riferimento viene duplicato, il

peso viene diviso tra lui e la copia (non è necessario accedere alla cella).

Quando un riferimento viene eliminato il suo peso viene sottratto dal counter.

Page 27: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Indirect Identification of Distribuited Garbage

E’ basato sulla tecnica del mark e scan in locale, rivista per l’ambiente distribuito.

Page 28: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Mark-Scan

E’ la versione più semplice e richiede che mentre è in esecuzione il garbage collector ogni altra operazione sia sospesa in tutti gli host.

Page 29: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Mark-Scan

Quando un host ha lo heap saturo decide di chiamare il garbage collector, mandano un messaggio ad un host master. Il master può essere deciso sia staticamente che dinamicamente. Il master si occupa di mandare un messaggio a tutti i siti per sospendere l’esecuzione.

Page 30: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Mark e Scan

Il master ordina l’inizio della fase di mark e aspetta che sia terminata in tutti gli host.

A questo punto il master manda un messaggio per iniziare la fase di recupero dello spazio, e quando è terminata in ogni host, il master permette di riprendere a ognuno di riprendere il proprio lavoro.

Page 31: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Problem with Distribuited Mark-Scan L’esecuzione del programma rimane

sospesa per tutto il tempo che impiega il garbage collector a terminare.

Se un host è più lento rallenta l’esecuzione in tutto l’ambiente.

Difficile distinguere un guasto da un semplice rallentemento.

Page 32: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Concurrent Mark-Scan

Identification e Mutation possono avvenire concorrentemente in ogni host.

Ogni host ha 2 stack, uno per le operazioni del programma e uno per quelle del garbage collector.

Site A (mutator): MMM . . . Site A (collector): I I I . . . | R R R . . . | I I I . . .Site B (mutator): MMM . . . Site B (collector): I I I . . . | R R R . . . | I I I . . .

Page 33: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Concurrent Mark-Scan

Durante la fase di mark, una cella può assumere 3 diversi stati:

White: non ancora visitata (le celle vengono inizializzate così)

Gray: visitata e sono stati avviati dei mark task sui suoi riferimenti.

Black: 2 tipi: una cella nuova oppure una che era gray di cui sono stati visitati tutti i suoi riferimenti.

Page 34: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Distribuited Concurrent Mark-Scan

La fase di reclamation (scan) recupera tutte le celle white.

Questa fase avviene mentre le altre operazioni sono sospese, quindi non c’è bisogno di bloccare le celle, che è invece necessario durante la fase di identification e mutation poiché potrebbero modificare contemporaneamente la stessa cella.

Page 35: Distribuited Garbage Collection Pastorino Luca. Distribuited Garbage Collector garbage collection in ambiente distribuito è basato sulle idee nate per.

Altre tecniche Mantenere un area dati locale in cui

effettuare garbage collection locale. Cell migration: se ho un ciclo di

riferimenti tra più siti posso spostare quelle celle tutte nello stesso host e poi effettuare garbage collection locale.