INTERROGAZIONE DATABASE DISTRIBUITO

  

 

Si considerano solo query di ricerca di informazioni dalle varie tabelle del database distribuito e non di modifica delle tabelle stesse.

  

- UNICO AGENTE.

- AGENTI PARALLELI. 

Si sceglie di utilizzare un unico agente per evitare un elevato traffico e il problema di coordinamento tra agenti che agiscono in parallelo (rischio di visita degli stessi siti e interferenza reciproca).

 

All'inizio l'agente ricerca i riferimenti a tutte le tabelle interessate (senza però eseguire alcuna query). Solo dopo aver recuperato tutti i riferimenti, l'agente inizierà ad eseguire le query.

Le due fasi di ricerca ed esecuzione delle query sono separate al fine di evitare spostamenti più lenti, che sarebbero dovuti ad un maggior carico di dati da trasportare.

 

 

a) Unico agente che fa la query intera e si sposta con i dati parziali sui vari nodi:

si deve portare dietro tutti i dati man mano raccolti, ma complessivamente ci sarà un costo di comunicazione più accettabile in quanto i dati da trasferire saranno minori anche se la soluzione parallela sarebbe più veloce.

 

b) Agente iniziale che fa una query parziale, poi si duplica agendo in parallelo:

ogni singolo agente viaggia più "leggero" e ha un compito più limitato da svolgere, ma il traffico aumenterà ed inoltre sarà necessario un coordinamento finale: si dovrà fare un merge dei risultati ottenuti sulle singole tabelle interrogate. E' quindi necessario attendere tutti gli agenti prima di ottenere il risultato finale e questo tempo potrebbe risultare eccessivo in caso di problemi.

 

Nel contesto del nostro sistema, considerando il costo globale della query, ci sembra più accettabile la prima ipotesi (a).

 

Due possibili comportamenti:

  1. Il nuovo agente cerca il riferimento alla tabella, si accerta della sua presenza fisica sul nodo e passa il riferimento corretto all'agente che lo ha inviato, che si recherà sul nodo e farà la query relativa alla tabella.
  2. Il nuovo agente cerca il riferimento alla tabella, migra sul nodo che la contiene e fa localmente la query; successivamente passa all'agente che lo ha inviato i dati risultanti.

  

Le due proposte sono per lo più equivalenti per quanto riguarda i costi di comunicazione e il traffico generato; si sceglie di implementare la proposta a) per coerenza col comportamento generale dell'agente.

 

 

 

 

  

    SCHEMA GENERALE DEL PROGETTO