• Nenhum resultado encontrado

ach 2147 desenvolvimento de sistemas de informação distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "ach 2147 desenvolvimento de sistemas de informação distribuídos"

Copied!
33
0
0

Texto

(1)

ach 2147 — desenvolvimento de sistemas de

informação distribuídos

comunicação orientada a fluxo de dados

Daniel Cordeiro 2 de maio e

“May the 4thbe with you ” de 2017

(2)

conexão orientada a fluxo de dados

• Apoia a distribuição de mídia contínua • Fluxos em sistemas distribuídos • Gerenciamento de fluxo

(3)

mídia contínua

Observação

Todas as ferramentas de comunicação discutidas até agora são essencialmentediscretas, isso é, úteis para trocas de informação de formaindependente do tempo

Mídia contínua

É caracterizada pela dependência temporal de seus valores: • Áudio

• Vídeo • Animações

(4)

mídia contínua

Modos de transmissão

Diferentes garantias temporais relacionadas à transferência de dados:

Assíncrono: sem restrições sobre quando o dado deve ser entregue Síncrono: define um atraso máximo para a entrega de cada um

dos pacotes

Isócrono: define um máximo e um mínimo para o atraso (o jitter é limitado).

(5)

fluxos (stream)

Definição

Um fluxo (contínuo) de dados é uma ferramenta de comunicação orientada a conexão que oferece transmissão isócrona de dados. Características comuns de fluxos

• Fluxos são unidirecionais

• Geralmente há uma únicaorigeme um ou mais destinos (sinks) • Frequentemente o destino e/ou origem encapsulam algum

hardware (ex: câmera, monitor, etc.)

• Fluxo simples: um único fluxo de dados (ex: áudio ou vídeo) • Fluxo complexo: múltiplos fluxos de dados (ex: áudio estéreo,

(6)

fluxos e qos

Como especificarQualidade de Serviço(QoS) em fluxos de dados, que precisam ser entregues no tempo certo? Métricas comuns:

• obit rateno qual os dados devem ser transportados

• oatraso máximoaté que a sessão tenha sido configurada (i.e., quando a aplicação pode começar a enviar os dados)

• oatraso máximo de ponta a ponta(i.e., quanto tempo até que o dado chegue ao seu destinatário)

• Oatraso máximo de ida e volta(round-trip delay) • A variação máxima do atraso de ida e volta, ojitter

(7)

cumprindo o qos

Existem algumas ferramentas do nível de rede, tais como osserviços diferenciadospelos quais alguns pacotes podem ser priorizados. Além disso:

Usebufferspara reduzir o jitter.

0 5 1 2 3 4 5 6 7 8 10 Time (sec) Time in buffer 15 20 Gap in playback Packet removed from buffer

1 2 3 4 5 6 7 8

Packet arrives at buffer

1 2 3 4 5 6 7 8 Packet departs source

(8)

cumprindo o qos

Problema

Como reduzir os efeitos de perdas de pacotes (quando múltiplas amostras são enviadas em um único pacote)?

(9)

cumprindo o qos

1 2 3 4 5 6 7 8 9 10 11 12 1 5 9 13 2 6 10 14 3 7 11 15 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 8 12 16 Lost packet Lost packet Gap of lost frames

Lost frames (a) (b) Sent Delivered Sent Delivered

(10)

sincronização de fluxo

Problema

Em um fluxo complexo, como manter seus diferentes fluxos sincronizados?

Exemplo

Imagine tocar dois canais, que juntos formam um som estéreo. Diferença deve ser menor do que 20–30 µ segundos!

(11)

sincronização de fluxo

Network

Incoming stream

Application Receiver's machine

Procedure that reads two audio data units for each video data unit

OS

Alternativa

Multiplexar todos os fluxos em um único fluxo, e depois demultiplexá-los no destinatário. Sincronização é tratada nos pontos de multiplexação e demultiplexação (MPEG).

(12)
(13)

comunicação multicast

• Transmissão de mensagens multicast no nível da aplicação • Disseminação de dados com métodos de gossiping

(14)

multicast no nível da aplicação

Ideia geral

Organizar os nós de um sistema distribuído em umarede overlaye usar a rede para disseminar os dados.

Construção de árvores pelo protocolo Chord

1. O iniciador gera umidentificador multicastmid

2. Lookup porsucc(mid), o nó responsável por mid

3. Requisição é roteada para succ(mid), que será designadoroot

4. Se P quiser se juntar, ele envia uma requisição do tipo join ao root.

5. Quando uma requisição chegar em Q:

se Q não viu nenhuma requisição join antes, ele se torna um

forwarder; P se torna filho de Q ea requisição de join continua a ser repassada

se Q sabe sobre a existência da árvore, P se torna filho de Q (como antes), masnão é mais necessário repassar a requisição de join

(15)

multicast no nível da aplicação: alguns custos

Ra Rb Rc Re A B D C Internet Router End host Overlay network 7 5 1 1 1 1 1 30 20 40 E Rd

• Stress nos links: com que frequência uma mensagem de multicast será enviada pelo mesmo enlace físico?Exemplo:uma mensagem de A para D precisa atravessar⟨Ra, Rb⟩ duas vezes

• Stretch: razão entre o atraso da comunicação usando o caminho multicast e usando a rede.Exemplo: mensagens de B para C seguem o caminho de tamanho 73 no multicast, mas um de 47 existe no nível da

(16)

protocolos epidêmicos

• Contexto

• Modelos de atualização • Remoção de objetos

(17)

princípios

Ideia básica: assuma que não existem conflitos de write–write (má ideia) • atualizações são realizadas em um único servidor

• uma réplica passa o estado atualizado para alguns vizinhos • propagação da atualização é lazy, i.e., não é imediata

• eventualmente, todo update deveria alcançar todas as réplicas

Duas formas de epidemias:

Anti-entropy: cada réplica regularmente escolhe outra réplica ao acaso e uniformiza seus estados

Gossiping: uma réplica que acaba de ser atualizada (contaminada) repassa a atualização a alguns vizinhos (contaminando elas)

(18)

anti-entropy

• um nó P seleciona aleatoriamente outro nó Q do sistema • Push: P só envia suas atualizações para Q

• Pull: P só recebe informações de Q

• Push–Pull: P e Qtrocamatualizações entre si (e terminam com as mesmas informações)

Observação:

Cada push–pull levaO(log(N)) rodadas de comunicação para disseminar as atualizações para todos os N nós

(19)

desempenho de anti-entropy

push

pull

push-pull

25

0

5

10

15

20

1.0

0.8

0.6

0.4

0.2

Probability not yet updated

Round

(20)

gossiping

Um servidor S com uma atualização a reportar contacta outros servidores. Se o servidor contactado já compartilhou essa

atualização, S para de conectar outros servidores com probabilidade 1/k

Observação:

Se s for a fração de servidores que desconhecem a atualização, pode-se mostrar que, com muitos servidores,

s = e−(k+1)(1−s)

(21)

gossiping

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -15.0 -12.5 -10.0 -7.5 -5.0 -2.5 k ln(s) Considere 10.000 nós k s Ns 1 0.203188 2032 2 0.059520 595 3 0.019827 198 4 0.006977 70 5 0.002516 25 6 0.000918 9 7 0.000336 3 Note que:

se você realmente quiser se assegurar de que todos os servidores serão atualizados eventualmente, gossiping sozinho não é suficiente

(22)

remoção de valores

Problema intrínseco:

Nós não podemos remover um valor antigo do servidor e esperar que a remoção se propague. Pior, uma remoção simples pode ser desfeita rapidamente se um protocolo epidêmico estiver sendo utilizado.

Solução

A remoção precisa ser registrada com um tipo especial de atualização: umatestado de óbito.

(23)

remoção de valores

Problema seguinte: como remover um atestado de óbito? (ele não pode ficar lá pra sempre)

• execute um algoritmo global para detectar se a remoção foi percebida por todos os nós e então remova os atestados • assuma que os atestados não serão propagados para sempre e

associe um tempo de vida máximo para o atestado Observação:

É preciso que a remoção realmente alcance todos os servidores.

Problema de escalabilidade:

(24)
(25)

nomeação de entidades

• Nomes, identificadores e endereços • Resolução de nomes

(26)

nomes

Essencialmente

Nomes são usados para denotar entidades em um sistema

distribuído. Para realizar operações em uma entidade, é preciso ter acesso a ela usando umponto de acesso. Pontos de acessos são entidades que são identificadas por umendereço.

(27)

identificadores

Nomes “puros”

são nomes que não tem significado próprio; são apenas strings aleatórias. Nomes puros podem ser usados apenas para comparação.

Identificador

Um nome que possui as seguintes propriedades:

1. Cada identificador se refere a, no máximo, uma entidade 2. Cada entidade é referenciada por, no máximo, um identificador 3. Um identificador sempre se refere à mesma entidade

(28)

espaço de nomes plano

Problema

Dado um nomenão estruturado(ex: um identificador), como localizar seuponto de acesso?

• Solução simples (broadcasting)

• Abordagens baseadas em um local pré-determinado (home-based)

• Tabelas de hash distribuídas (P2P estruturado)

• Serviço hierárquico de nomes

(29)

soluções simples

Broadcasting

Solução: fazer o broadcast do ID, requisitando que a entidade devolva seu endereço

• Não escala para além de redes locais

• Requer que todos os processos escutem e processem os pedidos de localização

Address Resolution Protocol (ARP)

Para encontrar o endereço MAC associado a um endereço IP, faz o broadcast da consulta “quem tem esse endereço IP?”

(30)

soluções simples

Ponteiros de redirecionamento

Solução: quando uma entidade se mover, ela deixa para trás um ponteiro para sua nova localização

• Dereferenciamento pode ser automático e invisível para o cliente, basta seguir a sequência de ponteiros

• Atualize a referência do ponteiro quando o local atual for encontrado

• Problemas de escalabilidade geográfica (que podem requerer um mecanismo separado para redução da sequência)

• Sequencias longas não são tolerantes à falhas

• Maior latência de rede devido ao processo de dereferenciamento

(31)

abordagens baseadas em local pré-determinado

Faça com que um local fixo (sua “casa”) sempre saiba onde a entidade está:

• O endereço pré-determinado é registrado em um serviço de nomes

• O endereço mantém um registro doendereço externoda entidade

• O cliente primeiro contacta o endereço pré-determinado e depois continua para seu endereço externo

(32)

abordagens baseadas em local pré-determinado

Princípio do endereçamento IP móvel:

Host's present location

Client's location 1. Send packet to host at its home

2. Return address of current location

3. Tunnel packet to current location

4. Send successive packets to current location Host's home

location

(33)

abordagens baseadas em local pré-determinado

Abordagem em dois níveis

Mantenha um registro das entidades que foram “visitadas”: • Verifique o endereço local primeiro

• Se falhar, só então vá para o endereço pré-determinado Problemas

• O endereço pré-determinado deve existir enquanto a entidade existir

• O endereço éfixoe pode se tornar desnecessário se a entidade se mover permanentemente

• Escalabilidade geográfica ruim (a entidade pode estar do lado do cliente)

Pergunta: como resolver o problema da mudança permanente? (talvez com outro nível de endereçamento (DNS))

Referências

Documentos relacionados

Comunicação transiente: remetente descarta a mensagem se ela não puder ser encaminhada para o destinatário Comunicação persistente: uma mensagem é guardada no. remetente pelo tempo

kroyeri from Anchieta Municipality, Espírito Santo State, during the period from January to December 2008, monthly samplings with one-hour-long were conducted to verify the number of

Almanya'da olduğu gibi, burada da bu terimin hiçbir ayrım gütmeden, modern eğilimleri simgeleyen tüm sanatçılar için geçerli olduğu anlaşılıyor.. SSCB'de ilk halk

In this sense, the challenges towards promoting sustainable livestock in Brazil, which has the recovery of degraded pas- tures, comprising intensification and the increase

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Para identificar quais treinamentos serão necessários para cada trabalhador ou equipe dentro de uma organização desenvolver um programa eficaz de T&D, pode-se buscar

O servidor original mantém um home address, mas repassa as conexões para o endereço para um servidor colaborador.. servidores

rpc na prática C compiler Uuidgen IDL compiler C compiler C compiler Linker Linker C compiler Server stub object file Server object file Runtime library Runtime library Client