Il problema principale con l'utilizzo di Akka, in questo contesto è che il sistema Attore non dispone di un sistema di gestione di appartenenza in modo appropriato malleabile per tale calcolo distribuito decentrata.
avete bisogno di qualcosa in grado di gestire il tasso di abbandono del nodo che descrivi nel tuo scenario. In particolare, hai bisogno di qualcosa che possa monitorare quando i nodi si uniscono, partono, e sono presunti morti e scollegati a causa di guasti. Consiglierei di guardare Ibis: http://www.cs.vu.nl/ibis/ con un registro basato su gossip. Hai ancora bisogno di un nodo di bootstrap noto per portare il sistema in alto, ma altrimenti gli usi di Join, Elect, Leave del modello Ibis forniranno la scalabilità che stai cercando quando combinato con il registro basato su Gossip. Questo sistema è simile agli attori di Akka in un certo senso in quanto si basa su un sistema di chiamate verso l'alto o verso il basso e pipe unidirezionali su cui si passano messaggi. Molto facile da programmare materiale distribuito una volta ottenuto il Fu di esso.
In termini di consistenza finale, che è un problema difficile conosciuto in grandi ambienti distribuiti. Avrei bisogno di sapere di più sul tipo di transazioni che si desidera distribuire e sul livello di coerenza e conservazione della storia richieste per formulare più raccomandazioni. Alcuni lavori recenti hanno dimostrato che il meglio che si può ottenere in un ambiente così ostile è la coerenza causale delle forche, dove almeno tutti possono vedere che la storia ha biforcuto, se non determinare la forcella "vincente", senza qualche altra forchetta meccanismo di risoluzione.
Bitcoin è un esempio interessante in questo spazio, dove "vincere" è determinato dalla catena più lunga, ma ci sono altre soluzioni in questo spazio che possono o meno lavorare a seconda della semantica delle applicazioni. La tua domanda è un po 'vaga per dare consigli specifici in uno spazio di design così ampio.
fonte
2013-05-15 07:52:54
Quanti nodi? –
@Viktor Klang Idealmente il più possibile, sulla scala di cose come un singolo bittorrent, ma piuttosto grande. – barrymac
Penso che AKKA sia stato progettato avendo in mente sistemi altamente accoppiati (come i cluster) e non lo scenario che descrivi (come reti di sensori o reti sociali decentralizzate, sebbene queste siano ancora nell'area di calcolo distribuito ma nel campo eterogeneo/decentralizzato). Ma dal momento che io non sono un esperto permette di aspettare una risposta migliore: D – Filippos