[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Wpaisb-devel] [WPAISB] Propagazione delle eccezioni dal server al client, nuovo commit, persistenza ortogonale,
Luca Saiu <=