<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-09-17 15:41 GMT+02:00 Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>L'esempio di Glyph è molto complesso e non so nemmeno se è possibile sviluppare  una libreria generica</div><div>per risolvere quel genere di problemi. Ad esempio STM (software transactional memory) non aiuta in questo caso, perchè lo</div><div>stato potrebbe essere su un server remoto, e non in memoria.</div></blockquote></div><div class="gmail_extra"><br></div><div><div class="gmail_signature"><div>io direi che è un esempio classico nella vita reale, </div><div>se apri il portafogli e prelevi i soldi, lo fai uno per volta. Se infili 2 mani, va a finire che i soldi si strappano.</div><div><br></div><div>un altro portafogli può andare in parallelo.</div><div><br></div><div>ora se questo lo vuoi risolvere con i thread o con i processi ti poni sempre limiti di scalabilità.</div><div><br></div><div>il problema si deve risolvere alla fonte, ossia nel punto dove sta il portafogli.</div><div>se è in un DB relazionale, in un DB relazionale.</div><div><br></div><div>Il problema si pone complicato quando i portafogli si trovano su due componenti lontane tra loro. E via con le XA transactions.</div><div><br></div><div>A livello di design si risolve serializzando i task, non con costrutti dei linguaggi o delle magie architetturali.</div><div><br></div><div>Vuoi spostare i soldi, bene comincia a chiedere di farlo, e poi deleghi il tesoriere del conto che fa i conti uno per volta. Se sei smart riesci ad avere anche un pool di banchieri.</div><div><br></div><div>Per risolvere i problemi di database diversi il politico deve assoldare i controllori che dopo le registrazioni dei tesorieri e le magagne dei banchieri vanno a pizzicare gli errori.</div><div><br></div><div>Insomma niente di nuovo... tutto irregolare come nella vita reale</div></div></div>
</div></div>