Códigos, Filtros Bloom e Redes Sobrepostas. Michael Mitzenmacher



Documentos relacionados
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

ESTRUTURAS DE DADOS II

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

3 Qualidade de serviço na Internet

O que é RAID? Tipos de RAID:

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Arquitetura de Rede de Computadores

Prof. Manuel A Rendón M

Admistração de Redes de Computadores (ARC)

Unidade 2. Largura de Banda e Throughput

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

Rede de Computadores

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Bom pessoal, há muito tempo tenho o interesse em criar esse tutorial. Me sobrou um tempinho então fui a batalha para ajudar os amigos.

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

Como medir a velocidade da Internet?

Roteador Load-Balance / Mikrotik RB750

Entendendo como funciona o NAT

Dadas a base e a altura de um triangulo, determinar sua área.

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Computadores de Programação (MAB353)


Arquitetura dos Sistemas de Informação Distribuídos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Arquitetura de Rede de Computadores

CAMADA DE TRANSPORTE

3. Comunicação em Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Operacionais

UNIVERSIDADE. Sistemas Distribuídos

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Lista de Exercícios. Vetores

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

SISTEMAS DISTRIBUÍDOS

RAID 1. RAID 0 2. RAID 1

Organização de Computadores 1

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Cap 01 - Conceitos Básicos de Rede (Kurose)

Introdução ao Modelos de Duas Camadas Cliente Servidor

Quando se fala em ponto eletrônico, a primeira coisa que vem à sua cabeça ainda é dor?

PROJETO DE REDES

Módulo 4. Construindo uma solução OLAP

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

A Camada de Transporte

2 Atualidade de uma base de dados

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

EA960 Redundância e Confiabilidade: RAID

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Prefixo a ser comparado Interface Senão 3

Prof. Wilton O. Ferreira Universidade Federal Rural de Pernambuco UFRPE 1º Semestre / 2012

TRABALHO COM GRANDES MONTAGENS

REDES DE COMPUTADORES - I UNI-ANHANGUERA. CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROF. MARCIO BALIAN

RC e a Internet: noções gerais. Prof. Eduardo

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

Cap 03 - Camada de Aplicação Internet (Kurose)

Política de privacidade do Norton Community Watch

Redes de Comunicações Capítulo 6.1

Fox Gerenciador de Sistemas

Redes de Computadores Aula 3

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

Redes de Computadores. Protocolos de comunicação: TCP, UDP

ENDEREÇO CLASSFULL E CLASSLESS

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

É CLOUD. É ON-DEMAND.

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Redes de Computadores

Desenvolvendo Websites com PHP

INTRODUÇÃO A REDES DE COMPUTADORES (DEFINIÇÕES) Prof. Msc. Hélio Esperidião

Márcio Leandro Moraes Rodrigues. Frame Relay

GUIA DE INSTALAÇÃO TOOLBOX.

Redes de Computadores

SHA(SECURE HASH ALGORITHM - ALGORITMO HASH SEGURO) BRUNO KAMINO YAMAMOTO ALEXANDRE FLEURY

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Hashing Letícia Rodrigues Bueno

Prof. Marcelo Machado Cunha Parte 3

Equipamentos de Rede. Prof. Sérgio Furgeri 1

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Transcrição:

Códigos, Filtros Bloom e Redes Sobrepostas Michael Mitzenmacher 1

Hoje... Códigos de apagamento Fonte Digital Filtros Bloom Cache de Resumo, Filtros Bloom Compactados Entrega Informada de Conteúdo Combinando os dois Outros Trabalhos Recentes 2

Códigos: Uma Idéia de Alto Nível Todos encaram os dados como um fluxo ordenado. Preciso dos pacotes de 1 a 1.000. Com os códigos, os dados são como água: Você não se preocupa com a gota que recebe. Você não se preocupa se uma porção entornar. Você quer apenas que o volume seja suficiente para passar pelo cano. Preciso de 1.000 pacotes. 3

Códigos de Apagamento n cn n n Mensagem Codificação Recebida Mensagem Algoritmo de Codificação Transmissão Algoritmo de Decodificação 4

Aplicação: Problema de Distribuição de Trailers Milhões de usuários querem baixar o trailer de um novo filme. Arquivo de 32 MB a 56 Kbits/segundo. O download leva 75 minutos a plena velocidade. 5

Vantagens Características da Solução Pointto-Point Usuários podem começar o download quando quiserem. Usuários podem continuar o download de modo integrado depois de uma interrupção temporária. A perda moderada de pacotes não é um problema. Desvantagens Alta carga de servidor. Alta carga de rede. Não se ajusta bem (sem recursos adicionais). 6

Recurso para Solução Broadcast Desvantagens Usuários não podem começar o download quando bem entenderem. Usuáriosnão podem continuar o download de modo integrado após uma interrupção temporária. A perda de pacotes é um problema. Vantagens Baixa carga de servidor. Baixa carga de rede. Ajusta-se bem. 7

Uma Solução de Codificação: Suposições Podemos obter um arquivo que contenha n pacotes e codificá-lo em cn pacotes codificados. A partir de qualquer conjunto de n pacotes codificados, a mensagem original pode ser decodificada. 8

Solução de Codificação 5 horas Codificando Codificando Cópia 2 4 horas 3 horas Arquivo 2 horas Codificando Cópia 1 1 hora Transmissão Usuário 1 Recepção Usuário 2 Recepção 9 0 hora

Recursos da Solução de Codificação Usuários podem começar o download quando quiserem. Usuários podem continuar o download de modo integrado depois de uma interrupção temporária. A perda moderada de pacotes não é um problema. Baixa carga de servidor protocolo simples. Ajusta-se bem. Baixa carga de rede. 10

Então, Por Que Não Estamos Utilizando Esta Opção?... A codificação e a decodificação são lentas para arquivos grandes, principalmente a decodificação. Por isso, precisamos de códigos rápidos para usar um esquema de codificação. Talvez tenhamos que abrir mão de algo para usarmos códigos rápidos... 11

Medições de Desempenho Overhead de Tempo O tempo gasto com a codificação e a decodificação expresso como múltiplo da duração da codificação. Eficiência de recepção Proporção de pacotes da mensagem em relação aos pacotes que precisam ser decodificados. O valor ótimo é 1. 12

Eficiência de recepção Ótima Pode decodificar a partir de quaisquer n palavras de codificação. A eficiência de recepção é 1. Margem de relaxamento Decodificar a partir de quaisquer (1+ε) n palavras de codificação A eficiência de recepção é 1/(1+ε). 13

Parâmetros do Código Mensagem n cn Codificação (1+ε)n Eficiência de recepção é 1/(1+ε) 14

Trabalho Anterior A eficiência de recepção é 1. Reed-Solomon padrão O overhead de tempo é o número de pacotes redundantes. Uso de operações finitas de campo. Baseado em transformação rápida de Fourier O overhead de tempo é ln 2 n operações de campo. A eficiência de recepção é 1/(1+ε). Equações lineares aleatórias de vários tamanhos O overhead de tempo é ln(1/ε)/ε. 15

Desempenho do Código Tornado A eficiência de recepção é 1/(1+ε). O overhead de tempo é ln(1/ε). Simples, rápido e prático. 16

Códigos: Outras Aplicações? Com os códigos, os dados são como água. O que mais se pode fazer com esta idéia? Exemplo Downloads paralelos: Obter dados de várias origens sem precisar de coordenação. 17

Aprimoramentos Mais Recentes Problema prático com o código Tornado: comprimento da codificação Deve-se decidir antes o que está correto? Tempo de codificação/decodificação/memória proporcional ao comprimento codificado. Transformação Luby: Codificação produzida instantaneamente sem comprimento de codificação. Tempo de codificação/decodificação/memória proporcional ao tamanho da mensagem. 18

Solução de Codificação 5 horas 4 horas 3 horas Arquivo Codificando 2 horas 1 hora Transmissão Usuário 1 Recepção Usuário 2 Recepção 19 0 hora

Filtros Bloom: Uma Idéia de Alto Nível Todas as pessoas pensam que precisam saber exatamente o que todos os outros têm. Dê-me uma lista do que você tem. As listas são longas e pesadas. Com os filtros Bloom, você pode obter listas pequenas e concisas. Forneça informações para que eu possa estimar o que você tem. 20

Problema de Pesquisa Dado um conjunto S = {x 1,x 2,x 3, x n } em um universo U, deseja-se responder consultas do seguinte formato: Is y S. Exemplo: um conjunto de URLs do universo de todas as seqüências de caracteres de URL possíveis. O filtro Bloom fornece uma resposta em Tempo constante (tempo para hash). Pouco espaço. Mas com alguma probabilidade de erro. 21

Filtros Bloom B Comece com uma matriz de bits m preenchidos com 0s. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Aplique o hash a cada item x em S k vezes. Se H i (x j ) = a, defina B[a] = 1. B 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 Para verificar se y está em S, verifique B em H i (y). Todososvaloresk devem ser 1. B 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 B Pode haver um falso positivo; todos os valores k são 1, mas y nãoestáems. 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 22

Erros Hipótese: Temos boas funções; dê uma olhada. Dados bits m para filtrar e n elementos, escolha um número k de funções hash para minimizar falsos positivos: Let Let f p = = Pr[false pos] = (1 Pr[cellis empty] (1 1/ m) À medida que k aumentar, também aumentam as chances se encontrar um 0 e mais números 1 na matriz. Encontrar o ideal em k = (ln 2)m/n por cálculo. = p) k (1 e kn / m kn ) e k kn / m 23

Exemplo 0.1 Taxa de falsos positivos 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 Ótimo k = 8ln2 = 5,45... m/n = 8 0.01 0 0 1 2 3 4 5 6 7 8 9 10 Funções hash 24

Filtros Bloom: Sistemas Distribuídos Web Cache 1 Web Cache 2 Web Cache 3 Web Cache 4 Web Cache 5 Web Cache 6 Enviar filtros Bloom de URLs. Falsos positivos não são um problema tão grande assim. Recebe erros de mudanças de cache mesmo assim. 25

Compensações Três parâmetros. Tamanho m/n : bits por item. Tempo k : número de funções hash. Erro f : probabilidade de falsos positivos. 26

Compactação Insight: o filtro Bloom não é apenas uma estrutura de dados; ele também é uma mensagem. Se o filtro Bloom é uma mensagem, vale a pena compactá-lo. A compactação de vetores de bits é uma tarefa fácil. A codificação aritmética se aproxima da entropia. É possível compactar filtros Bloom? 27

Optimização e, depois, Compactação Optimizar é minimizar o número de falsos positivos. kn p = Pr[cell is empty] = (1 1/ m) e kn / m kn / m f = Pr[false pos] = (1 p) (1 e ) k = ( m ln 2) / n é ótimo Emk = m (ln 2) /n, p = 1/2. O filtro Bloom assemelha-se a uma seqüência de caracteres aleatória. Não é possível compactá-lo. k k 28

Compensações Com a compactação, quatro parâmetros. Tamanho compactado (transmissão) z/n : bits por item. Tamanho descompactado (armazenado) m/n : bits por item. Tempo k : número de funções hash. Erro f : probabilidade de falsos positivos. 29

A Compactação Ajuda? Afirmação: custo de transmissão como fator limitador. Atualizações ocorrem com freqüência. Custo reduzido da memória da máquina. É possível reduzir a taxa de falsos positivos Aumentando o tamanho descompactado (armazenamento). Mantendo um custo de transmissão constante. 30

Erros: Filtro Compactado Hipótese: compactador ótimo, z = mh(p). H(p) é uma função de entropia; obtida otimamente H(p) bits compactados por bit da tabela original. Codificação aritmética próxima do ótimo. Otimização: dados z bits para filtro compactado e n elementos, escolha o tamanho da tabela m e o número de funções hash k para minimizar f. Resultado ideal obtido através de cálculo. p e kn / m ; f (1 e kn / m ) k ; z mh ( p) 31

Exemplo Taxa de falsos positivos 0.1 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 Original Compactado z/n = 8 0 1 2 3 4 5 6 7 8 9 10 Funções hash 32

Resultados Emk = m (ln 2) /n, os falsos positivos são aumentados com um filtro Bloom compactado. Melhor caso sem compactação é o pior caso com compactação; a compactação sempre ajuda. Vantagem resultante: Use menos funções hash com compactação; possível aumento da velocidade. 33

Exemplos Bits de matriz por elemento m/n 8 14 92 Bits trans. por elemento z/n 8 7.923 7.923 Funções hash k 6 2 1 Tx de falsos positivos f 0,0216 0,0177 0,0108 Bits de matriz por elemento m/n 16 28 48 Bits trans. por elemento z/n 16 15.846 15.829 Funções hash k 11 4 3 Tx de falsos positivos f 4,59E-04 3,14E-04 2,22E-04 Exemplos com taxa de probabilidade fixa de falsos. 5-15% de compactação para tamanho de transmissão. Corresponde a simulações. 34

Filtros Bloom: Outras Aplicações? Localizando objetos Oceanstore: Localização de Objetos GRSS (Geographical Region Summary Service) Resumos de dados IP Traceback Métodos de reconciliação Em breve... 35

Exemplos Bits de matriz por elemento m/n 8 14 92 Bits trans. por elemento z/n 8 7.923 7.923 Funções hash k 6 2 1 Tx de falsos positivos f 0,0216 0,0177 0,0108 Bits de matriz por elemento m/n 16 28 48 Bits trans. por elemento z/n 16 15.846 15.829 Funções hash k 11 4 3 Tx de falsos positivos f 4,59E-04 3,14E-04 2,22E-04 Exemplos para tamanho de transmissão vinculado. 20-50% de taxa de falsos positivos. Simulações muito próximas. Pequeno overhead, variação na compactação. 36

Juntando Tudo: Entrega Informada de Conteúdo em Redes Sobrepostas Para aparecer em SIGCOMM 2002. Trabalho em conjunto com John Byers, Jeff Considine e Stan Rost. 37

Entrega Informada: Idéia Básica A multitransmissão confiável usa três redes. Em uma rede sobreposta/p2p, pode haver outros caminhos de comunicação/largura de banda disponíveis. Mas é preciso coordenação para usá-los de modo produtivo. 38

Aplicação: Problema de Distribuição de Filmes Milhões de usuários querem baixar um novo filme. Ou a CDN quer sobrecarregar milhares de servidores com um novo filme para esses usuários. Arquivo grande para pessoas com muita largura de banda. As pessoas estarão usando redes P2P. 39

Exemplo Motivacional 40

Nosso Argumento Em CDNs/P2Ps com ampla largura de banda, conexões adicionais favorecerão ao desempenho Se houver inteligência na colaboração de como utilizar a largura de banda Caso um par de sistemas finais não receba exatamente o mesmo conteúdo, ele deve reconciliar (sincronizar) as diferenças no conteúdo recebido 41

É um Mundo Muito Louco Desafios Internet Nativa Assincronia de conexões, desconexões Heterogeneidade de velocidade e taxas de perda População de clientes muito grande Sessões que podem ser antecipadas Transitoriedade de hosts, roteadores e links Sobreposições adaptativas Ao reconfigurar topologias, enfatize alguns dos itens acima 42

Fluidez Ambiental Requer Paradigmas Flexíveis de Conteúdo Esteja preparado para freqüente reconfiguração São necessários migração escalável e suporte à antecipação Fonte digital para o resgate Sem informações de estado: servidores podem produzir codificação ininterruptamente Tempo constante na codificação sem uso de memória Tolerância a diferenças entre clientes Inclusão de fontes 43

Fludez Ambiental Gera Oportunidades Oportunidades de reconciliação Discrepâncias significativas entre conjuntos de pares de trabalho que estão recebendo conteúdo idêntico O receptor que tiver uma taxa de transferência superior ou tiver chegado antes terá mais conteúdo Os receptores com perdas não correlacionadas apresentará lacunas em partes diferentes de seus conjuntos de trabalho Downloads paralelos Conexões efêmeras de redes sobrepostas adaptáveis 44

Problema de Reconciliação Com a ordenação seqüencial padrão, a reconciliação não é (necessariamente) um problema. Com a codificação, deve-se promover a reconciliação em um universo potencialmente grande e desordenado de símbolos (usando código avançados Luby). Como reconciliar pares com conteúdo parcial de uma maneira informada? 45

Reconciliação com Filtros Bloom Envie um filtro Bloom (compactado) de pacotes codificados armazenados. O replicante pode começar enviando pacotes codificados que você não tenha. Falsos positivos não são tão importantes. Codificação já produz redundância. Você deseja receber pacotes úteis o mais rapidamente possível. Filtros Bloom requerem um número reduzido de pacotes. 46

Trabalho Adicional Estimativa superficial de sobreposição em 1 pacote. Usando amostragem. Usando amostras independentes min-wise. Árvores de reconciliação aproximada. Estrutura aprimorada de dados para quando o número de discrepâncias for pequeno. Também baseia-se em filtros Bloom. Recodificação. Combinando símbolos codificados. 47

Reconciliação: Outras Aplicações Reconciliação Aproximada x Reconciliação Exata Complexidade de comunicação. Usos práticos: Bancos de dados, portáteis, etc. 48

Relações Públicas: Pesquisa Mais Recente (1) Um Modelo Dinâmico para Tamanhos de Arquivo e Distribuições Double Pareto Um modelo produtivo que explica a forma observada empiricamente de tamanhos de arquivo em sistemas de arquivo. Corpo lognormal, cauda de Pareto. Combina modelos multiplicativos de teoria de probabilidade com modelos de gráficos aleatórios semelhantes a trabalho recente em gráficos da Web. 49

Relações Públicas: Pesquisa Mais Recente (2) Equilíbrio de Carga com Memória Jogue n bolas em n bins. Aleatoriamente: a carga máxima é log n / log log n Melhor de 2 escolhas: log log n / log 2 Suponha que você precise lembrar a melhor possibilidade do último lance. 1 escolha aleatória, 1 memória: log log n / 2 log τ Variações na fila também analisadas. 50

Relações Públicas: Pesquisa Mais Recente (3) Códigos de Verificação Códigos de Verificação de Paridade de Baixa Densidade para grandes alfabetos (ex.: números inteiros de 32 bits e erros aleatórios). Códigos simples e eficientes. Tempo linear. Baseado em XORs. Desempenho: códigos Reed-Solomon melhores que o pior caso. Estendido para modelos de erros adicionais (mistura de códigos). 51

Conclusões Estou interessado em problemas de rede. Existem muitos problemas interessantes. Novas técnicas, algoritmos, estruturas de dados Novas análises Encontrando a maneira certa para aplicar idéias conhecidas Também adoraria trabalhar com alunos do MIT. 52