Tuplestore

267 views
215 views

Published on

A tuple store implemented with distributed servers.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
267
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tuplestore

  1. 1. Tuple Store<br />SistemasDistribuídos – MEI<br />Luís Ferreira, Fábio Silva, Tiago Sá<br />11/29/09<br />
  2. 2. Apresentação<br />Arquitecturado Sistema<br />Geral<br />Servidor central<br />Servidorsecundário<br />Cliente<br />Tratamento de Dados<br />Comunicação<br />Persistência<br />Concorrência<br />Operações<br />PUT<br />GET<br />Interface do Sistema<br />Conclusão<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />2<br />
  3. 3. Arquitectura - Geral<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />3<br />
  4. 4. Arquitectura - Geral<br />Servidor Central<br />Atende/Responde a pedidos do cliente<br />Distribui/Balanceiaosblocospelosservidoressecundários<br />Indica a localização dos dados associadosàschaves<br />ServidorSecundário<br />Armazena/Retornaosblocos de dados<br />Enviainformação de controloaoservidor central<br />Cliente<br />API quedisponibilizaoperações de PUT/GET<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />4<br />
  5. 5. Arquitectura – Servidor Central<br />Recebepedidos de localização de dados associados a chaves<br />Atribuiservidoressecundáriosparaguardar dados associados a chaves<br />Balanceia a carga dos servidoressecundários<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />5<br />
  6. 6. Arquitectura – ServidorSecundário<br />Lança Dispatcher porcadacliente<br />Armazena dados de forma persistente<br />Synchronizer enviainformação de controloaoservidor central<br />Mensagens Dispatcher-Syncrhonizerenviadasatravés de queue<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />6<br />
  7. 7. Arquitectura - Cliente<br />2 threads porconexão a Slave<br />Umatrata das leituras<br />Outra tem um buffer de escritas<br />Quandonãosãoutilizadas, as ligaçõessãoterminadaspelocliente<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />7<br />
  8. 8. Tratamento de Dados -Comunicação<br />Java.nio<br />Selector<br />ByteBuffer<br />Pacotes<br />Estruturafixa do cabeçalho<br />Indicartamanho dos camposvariáveis<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />8<br />
  9. 9. Tratamento de Dados - Persistência<br />Central:<br />Informação dos váriossecundários<br />Secundário:<br />Persisteestado de espaçousado<br />Ficheiros com dados dos blocos<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />9<br />
  10. 10. Tratamento de Dados - Concorrência<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />10<br />
  11. 11. Operações - PUT<br />Envia as chaves dos blocos a escreverao central<br />Liga-se a secundáriosdeterminadospelo central<br />Envia N pacotes a cadaservidorsecundário<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />11<br />
  12. 12. Operações - GET<br />Enviaas chaves dos blocosquequerrecuperar<br />Liga-se a secundáriosdeterminadospelo central<br />Envia a cadasecundárioas chaves dos blocosquequerrecuperar<br />Recebe N blocos<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />12<br />
  13. 13. Conclusão<br />Dúvidas?<br />Obrigado!<br />11/29/09<br />TriviUM - Sistemas Distribuídos<br />13<br />

×