Struttura dei dati way corretta per i peer pubblicitari in una rete p2p

0

Problema sottostante

In un caso di un protocollo di scoperta peer-to-peer, supponiamo di dover pubblicizzare i peer in modo che il grafico di rete cresca in modo tale da evitare casi di aree troppo densi (per esempio clique) e aree troppo debolmente connesse (ad es. nodi bridge). Un nodo può anche fallire, disconnettere, riconnettere e aggiornare l'elenco dei peer che conserva a determinati intervalli.

Un approccio per risolvere ciò sarebbe pubblicizzare i colleghi con una probabilità inversamente proporzionale ai tempi già pubblicizzati.

Ho ottenuto i seguenti requisiti per l'utilizzo di una struttura dati al servizio del nostro scopo:

  1. Mantieni i nodi ordinati in base a un punteggio pertinente ai tempi già pubblicizzati, preferibilmente l'ordinamento che si aggiusta automaticamente all'inserimento di nuovi nodi
  2. Selezione rapida dei primi k elementi in base al punteggio
  3. Aggiornamento facile del punteggio e della posizione dei nodi in ogni azione pubblicitaria
  4. Controllo semplice dei nodi duplicati al momento dell'inserimento, ad es. causato da un errore del nodo e ricollegamento.
  5. Sincronizzazione per accesso concorrente, modifica

La lingua utilizzata per l'implementazione è java.

Domande

  1. Sto affrontando correttamente il problema utilizzando un punteggio e una struttura dati simili con i requisiti sopra menzionati, oppure esiste un approccio migliore?
  2. Se la risposta a 1 è sì, quale sarebbe una buona scelta di una struttura dati? Penso che b-trees sembra soddisfare la maggior parte se non tutte, ma non ne sono del tutto convinto, quindi ho bisogno di una guida e di soluzioni giustificate in materia.

Grazie in anticipo.

    
posta ichantz 27.01.2018 - 19:59
fonte

0 risposte

Leggi altre domande sui tag