wpaisb-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Wpaisb-devel] [WPAISB] Propagazione delle eccezioni dal server al clien


From: Luca Saiu
Subject: [Wpaisb-devel] [WPAISB] Propagazione delle eccezioni dal server al client, nuovo commit, persistenza ortogonale
Date: Fri, 20 Oct 2006 01:42:42 +0200
User-agent: Thunderbird 1.5.0.7 (X11/20060928)

  Ciao Matteo.
  Scusami se ti rispondo cosi` in ritardo; tra l'altro anch'io ho avuto
diversi problemi di hard disk. Quello principale e` risolto: il mio buon
vecchio iBook ha un disco nuovo da 100Gb.

  Tra l'altro ho perso l'email che mi avevi mandato; non mi sembra che
sia neanche negli archivi della lista, devi averla mandata solo a me.
Ricordo di aver visto il tuo codice e ricordo che era corretto, per
quanto (mi pare) non riproducesse l'eccezione ricevuta sul lato client:
ma quello e` facile, basta una throw.
  In ogni caso l'avevo rifatto anch'io, in un momento di ozio :-). Ho
committato solo adesso perche` volevo ripulire un po'. Guarda un po' se
quello che ho fatto io va bene; se la tua versione e` superiore
rimandala pure, che installiamo quella.

  Per tutti gli altri:

  Nuovo commit, con tante belle modifiche. Manca ancora qualche
commento, ma c'e` gia` da divertirsi.

  Date un'occhiata alla persistenza ortogonale: e` una versione piu`
debole di quella basata sulle continuazioni che avevo improvvisato
qualche giorno fa, ma non condivide con essa un problema di
implementazione molto grave: richiedere il marshalling delle
continuazioni, per salvarle su disco. Per come sono implementate le
continuazioni in Guile mi sembra decisamente troppo difficile.

  Con la nuova soluzione si puo` fare il checkpointing automatico delle
variabili globali di un servizio; lo stato degli ambienti locale e
non-locale, e il "program-counter", vanno persi.

  L'idea di fondo, non ancora implementata anche se semplice, e` quella
di avere un thread che fa il checkpointing che gira in mutua esclusione
con tutte le istanze della procedura che esegue una richiesta: ossia, lo
stato globale di un servizio si salva *solo* ogni tot secondi *e* quando
non c'e` nessuna richiesta attiva. Questo evita di dover usare
esplicitamente la sincronizzazione col thread di checkpointing, che
sarebbe molto scomodo; ho provato.

  Sono problemi, ma non problemi fatali. Il sistema cosi` com'e` ora e`
usabilissimo (in termini relativi :-)), e decisamente divertente.

  Comunque vorrei separare l'idea del checkpointing da quella della
persistenza ortogonale. Il checkpointing manuale e` utile anche da solo.
 Vedremo.

  Scusate, sono un po' di fretta.
  Ciao a tutti,

--
Luca Saiu, maintainer of GNU epsilon
http://www.gnu.org/software/epsilon
http://www.di.unipi.it/~saiu




reply via email to

[Prev in Thread] Current Thread [Next in Thread]