Códigos, filtros Bloom y redes superpuestas Michael Mitzenmacher 1
Hoy... Códigos de borrado Fuente digital Filtros Bloom Caché de resumen, filtros Bloom comprimidos Entrega informada de contenido Combinando los dos Otrosstrabajos recientes 2
Códigos: una idea de alto nivel Todos piensan que los datos son un flujo ordenado. Necesito los paquetes del 1 al 1.000. Utilizando códigos, los datos son como el agua: No importa qué gotas se reciben. No importa si se derraman algunas. Sólo se desea que pasen por el tubo las necesarias. Necesito 1.000 paquetes. 3
Códigos de borrado n cn n n Mensaje Codificación Recibido Mensaje Algoritmo de codificación Transmisión Algoritmo de decodificación 4
Aplicación: problema de distribución de tráiler Millones de usuarios desean descargar el tráiler de una nueva película. Un archivo de 32 megabytes a 56 Kbits/segundo. El tiempo de descarga es de 75 minutos a toda velocidad. 5
Características de las soluciones Point-to-Point Ventajas: Los usuarios pueden iniciar la descarga cuando lo deseen. Los usuarios pueden continuar la descarga perfectamente después de una interrupción temporal. La pérdida moderada de paquetes no es un problema. Desventajas: Alta carga del servidor. Alta carga de la Red. No se gradua bien (sin recursos adicionales). 6
Características de las soluciones de difusión Desventajas: Los usuarios no pueden iniciar las descargas cuando lo deseen. Los usuarios no pueden continuar las descargas a la perfección después de una interrupción temporal. La pérdida de paquetes es un problema. Ventajas: Baja carga del servidor. Baja carga de la Red. Se gradua bien. 7
Una solución de codificación: suposiciones Podemos tomar un fichero de n paquetes y codificarlos en cn paquetes codificados. El mensaje original se puede decodificar desde cualquier conjunto de n paquetes codificados. 8
Solución de codificación 5 horas Codificación Copia 2 Codificación 4 horas 3 horas Archivo 2 horas Codificación Copia 1 1 hora Transmisión Recepción del usuario 1 Recepción del usuario 2 0 horas 9
Características de la solución de codificación Los usuarios pueden inicar la descarga cuando lo deseen. Los usuarios pueden continuar la descarga a la perfección después de una interrupción temporal. La pérdida moderada de paquetes no es un problema. Baja carga del servidor - protocolo simple. Se gradua bien. Baja carga de Red. 10
Entonces, por qué no se está utilizando esta opción? Los procesos de codificación y de decodificación son lentos cuando se trata de grandes archivos, especialmente la decodificación. Por lo tanto, se necesitan códigos rápidos para utilizar un esquema de codificación. Posiblemente haya que renunciar a algo para conseguir códigos rápidos... 11
Medidas de actuación Tiempo de overhead El tiempo que lleva codificar y decodificar, expresado como múltiplo de la longitud de codificación. Eficiencia de recepción El ratio de los paquetes del mensaje y de los paquetes para codificar. El óptimo es 1. 12
Recepción eficiente Óptimo Puede decodificar a partir de cualquier n palabras de codificación. La eficiencia de recepción es 1. Relajación Decodificar a partir de cualquier (1+ε) n palabras de codificación. La eficiencia de recepción es 1/(1+ε). 13
Parámetros del código Mensaje n cn Codificación (1+ε)n La eficiencia de recepción es 1/(1+ε) 14
Trabajo anterior La eficiencia de recepción es 1. Reed-Solomon estándar El tiempo de overhead es el número de paquetes redundantes. Utiliza operaciones de campo finitas. Basado en la transformación rápida de Fourier El tiempo de overhead es ln2 n operaciones de campo. La eficiencia de recepción es 1/(1+ε). Ecuaciones aleatorias de diferentes tamaños El tiempo de overhead es ln(1/ε)/ε. 15
Actuación del código Tornado La eficiencia de recepción es 1/(1+ε). El tiempo de overhead es ln(1/ε). Sencillo, rápido y práctico. 16
Códigos: otras aplicaciones? Utilizar códigos y datos es tan claro como el agua. Qué más se puede hacer con esta idea? Ejemplo -- descargas paralelas: Obtenga datos de varias fuentes, sin necesidad de coordinación. 17
Mejoras más recientes Problema práctico con el código Tornado: longitud de codificación Se debe decidir a priori qué es correcto. El tiempo/la memoria de codificación/decodificación son proporcionales a la longitud codificada. Transformada de Luby: Codificación producida instantáneamente -- sin longitud de codificación. El tiempo/la memoria de codificación/decodificación son proporcionales a la longitud del mensaje. 18
Solución de codificación 5 horas 4 horas 3 horas Archivo Codificación 2 horas 1 hora Transmisión Recepción del usuario 1 Recepción del usuario 2 19 0 horas
Filtros Bloom: una idea de alto nivel Todo el mundo piensa que necesita saber exactamente lo que tienen otros. Deme una lista de lo que posee. Las listas son largas y poco flexibles. Si se utilizan filtros Bloom, se pueden conseguir listas aproximadas. Deme información para que pueda averiguar qué posee. 20
Problema de búsqueda Dado un conjunto S = {x 1,x 2,x 3, x n } en un universo U, se quiere responder a preguntas del tipo: Is y S. Ejemplo: un conjunto de URLs del universo de todas las series de URL posibles. El filtro Bloom proporciona una respuesta en: Tiempo "constante" (tiempo para numerar). Cantidad pequeña de espacio. Pero con alguna probabilidad de error. 21
Filtros Bloom B Comience con una serie de m bits ocupados por ceros. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Numere cada elemento x j de S k veces. Si Hi(xj) = a, defina B[a] = 1. B 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 Para comprobar si y está en S, compruebe B en H i (y). Todos los valores k deben ser 1. B 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 Es posible tener un falso positivo; todos los valores k son 1, pero y no está en S. B 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 22
Errores Hipótesis: tenemos buenas funciones hash que parecen aleatorias. Dados m bits para el filtro y n elementos, elija un número k de funciones hash para minimizar los falsos positivos: kn kn / p= Pr[ celda vacía] = (1 1/ m) e Sea Sea Conforme va aumentando k existen más oportunidades de encontrar un 0, pero más de encontrar unos en la serie. Encuentre el óptimo en k = (ln 2)m/n por medio del cálculo. k m kn/ m f = Pr[falso positivo] = (1 p) (1 e ) 23 k
Ejemplo 0,1 Tasa de falso positivo 0,09 0,08 0,07 0,06 0,05 0,04 0,03 0,02 Opt k = 8ln2 = 5,45... m/n = 8 0,01 0 0 1 2 3 4 5 6 7 8 9 10 Funciones hash 24
Filtros Bloom: sistemas distribuidos Caché web 1 Caché web 2 Caché web 3 Caché web 4 Caché web 5 Caché web 6 Enviar filtros Bloom de las URL. Los falsos positivos no causan mucho problema. De todas formas, reciben errores de los cambios de caché. 25
Compensaciones Tres parámetros. Tamaño m/n : bits por elemento. Tiempo k : número de funciones hash. Error f : probabilidad de falso positivo. 26
Compresión Compresión: el filtro Bloom no es sólo una estructura de datos, también es un mensaje. Si el filtro Bloom es un mensaje, merece la pena comprimirlo. La compresión de vectores de bits es fácil. La codificación aritmética se aproxima a la entropía. Se pueden comprimir los filtros Bloom? 27
Optimización y, después, compresión Optimizar para minimizar el falso positivo. p = Pr[ celda vacía] En k = m (ln 2) /n, p = 1/2. El filtro Bloom parece una serie aleatoria. No se puede comprimir. = (1 1/ m) k kn e kn / m kn / m f = Pr[falso positivo] = (1 p) (1 e ) k = ( m ln 2) / n es óptimo k 28
Compensaciones Con la compresión, cuatro parámetros. Tamaño comprimido (de transmisión) z/n : bits por elemento Tamaño comprimido (de almacenamiento) m/n : bits por elemento Tiempo k : número de funciones hash. Error f : probabilidad de falso positivo. 29
Ayuda en algo la compresión? Afirmación: factor limitador del coste de la transmisión. Las actualizaciones tienen lugar frecuentemente. La memoria de la máquina es barata. Es posible reducir la tasa de falso positivo... aumentando el tamaño de descompresión (almacenamiento)? manteniendo constante el coste de la transmisión? 30
Errores: filtro comprimido Hipótesis: compresor óptimo, z = mh(p). H(p) es una función de entropía; obtenida de forma óptima. H(p) bits comprimidos por bit de la tabla original. Codificación aritmética cercana al óptimo. Optimización: dados z bits por filtro comprimido y n elementos, elija el tamaño de la tabla m y el número de funciones hash k para minimizar f. p e kn / m ; f (1 e kn / m Óptimo obtenido a partir del cálculo. ) k ; z mh ( p) 31
Ejemplo Tasa de falso positivo 0,1 0,09 0,08 0,07 0,06 0,05 0,04 0,03 0,02 Original Comprimido z/n = 8 0,01 0 0 1 2 3 4 5 6 7 8 9 10 Funciones hash 32
Resultados En k = m (ln 2) /n, los falsos positivos se maximizan con un filtro Bloom comprimido. El mejor caso sin compresión es el peor caso con compresión; la compresión es siempre de ayuda. Beneficio indirecto: se utilizan menos funciones hash con la compresión; posible aumento de la velocidad. 33
Bits de serie por elemento m/n 8 14 92 Bits de trans. por elemento z/n 8 7.923 7.923 Funciones hash k 6 2 1 Tasa de falso positivo f 0.0216 0.0177 0.0108 Bits de serie por elemento m/n 16 28 48 Bits de trans. por elemento z/n 16 15.846 15.829 Funciones hash k 11 4 3 Tasa de falso positivo f 4.59E-04 3.14E-04 2.22E-04 Ejemplos para tamaño de transmisión fijo. 20-50% de tasa de falso positivo. Simulaciones muy cercanas. Encabezado pequeño, variación en la compresión. 34
Bits de serie por elemento m/n 8 12.6 46 Bits de trans. por elemento z/n 8 7.582 6.891 Funciones hash k 6 2 1 Tasa de falso positivo f 0.0216 0.0216 0.0215 Bits de serie por elemento m/n 16 37.5 93 Bits de trans. por elemento z/n 16 14.666 13.815 Funciones hash k 11 3 2 Tasa de falso positivo f 4.59E-04 4.54E-04 4.53E-04 Ejemplos con tasa fija de probabilidad de falsos. 5-15% compresión por tamaño de transmisión. Se corresponde con las simulaciones. 35
Filtros Bloom: otras aplicaciones? Búsqueda de objetos Oceanstore: ubicación de objetos Resumen de servicios de la región geográfica Resúmenes de datos IP Traceback Métodos de reconciliación En breve... 36
Reuniendo toda la información: entrega informada de contenido en las redes superpuestas Para aparecer en SIGCOMM 2002. Trabajo conjunto con John Byers, Jeff Considine, Stan Rost. 37
Entrega informada: idea básica La multidifusión fiable utiliza redes en forma de árbol. En una red superpuesta/p2p, es posible que existan otras rutas de ancho de banda/comunicación disponibles. Pero se necesita coordinación para utilizarla inteligentemente. 38
Aplicación: el problema de la distribución de películas Millones de usuarios desean descargar una nueva película. O una CDN desea poblar miles de servidores con una nueva película para aquellos usuarios. Gran archivo: para personas con una gran cantidad de ancho de banda. La gente comenzará a utilizar redes P2P. 39
Ejemplo de motivación 40
Nuestro argumento En las CDN/P2P con un amplio ancho de banda, las conexiones adicionales favorecerán el rendimiento Si son inteligentes para colaborar en cómo utilizar el ancho de banda Si suponemos que un par de sistemas finales no han recibido exactamente el mismo contenido, podrían reconciliar las diferencias en el contenido recibido. 41
Es un mundo muy loco Retos Internet nativo Asincronía de conexiones y desconexiones Heterogeneidad de la velocidad y tasas de pérdida Población enorme de clientes Sesiones anticipables Fugacidad de hosts, routers y enlaces Superposiciones adaptativas A la hora de reconfigurar topologías, hacer énfasis en algunos de los puntos anteriores 42
La fluidez ambiental requiere paradigmas flexibles de contenido Hay que estar preparado para reconfigurar frecuentemente Es necesaria una migración escalable, un apoyo anticipado Fuente digital al rescate Sin estado: los servidores pueden producir codificados continuamente Invariable con el tiempo en la codificación sin memoria Tolerancia a las diferencias entre clientes Inclusión de fuentes 43
La fluidez ambiental genera oportunidades Oportunidades para la reconciliación Discrepancias significativas entre conjuntos de pares activos que reciben un contenido idéntico El receptor con la tasa de transferencia más alta o que haya llegado antes tendrá un mayor contenido Los receptores con pérdidas no correlativas tendrán espacios en blanco en las diferentes partes de sus conjuntos activos Descargas paralelas Conexiones efímeras de redes adaptativas superpuestas 44
Problema de la reconciliación Con la ordenación estándar de secuencias, la reconciliación no es (necesariamente) un problema. El empleo de la codificación, debe reconciliar más de un universo de símbolos desordenado y potencialmente amplio (empleando los códigos mejorados de Luby). Cómo se pueden reconciliar pares con contenido parcial de manera informada? 45
Reconciliación aproximada con filtros Bloom Envíe un filtro Bloom (comprimido) de paquetes codificados almacenados. El replicante puede comenzar a enviar paquetes codificados que no se tienen. Los falsos positivos no son tan importantes. La codificación ya produce redundancia. Se desea recibir paquetes útiles tan rápido como sea posible. Los filtros Bloom requieren un número reducido de paquetes. 46
Trabajo extra Basta estimación de una superposición en un paquete. Utilización de muestreo. Utilización de muestras independientes min-wise. Árboles de reconciliación aproximada. Estructura de datos mejorada para el caso en el que el número de discrepancias sea pequeño. Basado también en los filtros Bloom. Recodificación. Combinación de símbolos codificados. 47
Reconciliación: otras aplicaciones Reconciliación aproximada frente a reconciliación exacta Complejidad de la comunicación. Usos prácticos: Bases de datos, equipos portátiles, etc. 48
Relaciones públicas: investigaciones más recientes (1) Un modelo dinámico para el tamaño de los archivos y las distribuciones dobles de Pareto Un modelo generativo que explica la forma de los archivos en los sistemas de archivos que son observados de forma empírica. Cuerpo logarítmico normal, "cola" de Pareto. Combina modelos multiplicativos de la teoría de la probabilidad con modelos de grafos aleatorios similares a los trabajos recientes de grafos en la Red. 49
Relaciones públicas: investigaciones más recientes (2) Balance de carga con memoria Tire n bolas en n papeleras. De forma aleatoria: la carga máxima es log n / log log n La mejor de 2 opciones: log log n / log 2 Suponga que consigue "recordar" cuál fue la mejor posibilidad del último lanzamiento. Una elección aleatoria, una memoria: log log n / 2 log τ Las variaciones en cola también se analizan. 50
Relaciones públicas: investigación más reciente (3) Códigos de verificación Códigos de control de calidad de baja densidad para amplios alfabetos: ej., integrales de 32 bits y errores aleatorios. Códigos sencillos y eficientes. Tiempo lineal. Basado en los XO. Rendimiento: códigos Reed-Solomon mejores que en el peor caso. Extendido para modelos de error adicionales (aleatorización del código). 51
Conclusiones Estoy interesado en los problemas de la Red. Existen muchos problemas interesantes: Técnicas nuevas, algoritmos, estructuras de datos Nuevos análisis Buscando la forma correcta de aplicar las ideas que se conocen También me gustaría trabajar con estudiantes del MIT. 52