Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    34

    variabili condivise in distribuito

    Salve a tutti,
    dovrei realizzare un'applicazione da far girare in distribuito su diversi calcolatori.
    Per quanto riguarda la gestione dei processi e la loro comunicazione è tutto sistemato.

    Però mi servirebbe un modo di rendere un oggetto condiviso:
    si tratta di una lista con elementi assegnati ad uno specifico calcolatore (ogni pc gestisce un sottoinsieme di elementi della lista). Gli altri pc non possono scrivere o modificare tale elemento ma è FONDAMENTALE che possano leggere le sue caratteristiche.

    Non posso usare var statiche perchè siccome lavoro su diverse JVM.
    Avete qualche suggerimento?

  2. #2
    Ma questa lista inizialmente dove sta? Dove viene creata? Chi la crea la potrebbe serializzare e mandare a tutti (in multicast ad esempio). Il problema e' piu' se questa lista viene aggiornata durante l'esecuzione dell'applicazione dai vari nodi, allora va ridistribuita ogni volta, che non e' un grosso problema, dipende sempre da cosa devi fare. Oppure se tutti i nodi non devono per forza essere peer, uno (o piu', per ridondanza) potrebbe essere un super-peer che mantiene questa lista, quindi la lista non e' passata in giro ma questo super-nodo ha un servizio che puo' essere interrogato per recuperare le entry della lista specifiche per ogni nodo.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    34
    La lista può stare da qualsiasi parte, l'importante è che sia condivisa da tutti. Viene creata in un super-peer e viene aggiornata durante l'esecuzione.

    1) Se faccio che viene mantenuta per tutti i nodi:
    Supponendo di avere 4 nodi : ogni nodo che aggiorna i suoi elementi della lista li deve
    riinviare agli altri e in pratica il numero di messaggi totali sarebbero (12 = 3 * 4) e siccome le
    operazioni devono essere ripetute parecchie volte diventa un casino.

    2) Se invece la salvo nel superpeer:
    Dovrei aspettare le richieste dei nodi e mandargli la lista. Anche in questo caso il numero di messaggi da inviare sono tanti.

    Però se ci fosse il modo di mantenere in memoria condivisa la lista, ogni nodo ce l'avrebbe sempre aggiornata perfettamente...

  4. #4
    Ma scusa, se sei in un ambiente distribuito, cosa intendi esattamente per shared memory?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    34
    Intendo un modo che permetta ai nodi di accedere facilmente all'indirizzo in memoria in cui è contenuta la lista evitando continui scambi di messaggi tra peer.

    Per esempio, ho sentito parlare di cjvm: una unica java virtual machine per tutti i nodi del sistema distribuito in cui lo steak viene spezzato in segmenti gestiti dal singolo nodo ma una parte dello steak resta condiviso.
    Sembra particolarmente complesso.. quindi avevo pensato che c'era un modo molto più semplice (magari attraverso un middleware ad hoc) per rendere questa lista "globale"...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.