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