Scalable multiversion handling for geo replicated storage - Alvarez Colombo, Santiago Javier (2017)
Antidote, una base de datos Geo-Replicada, implementa estructuras de datos replicadas multiversión. Este tipo de bases de datos, proporciona un módulo que da soporte a la multiversión, manejando todas las lecturas y escrituras al almacenar en caché y persistir las distintas versiones de los objetos. Este módulo es crítico para la performance y tolerancia a fallas de Antidote. La implementación actual de este módulo en Antidote tiene algunas desventajas. Por ejemplo, no es tolerante a fallas, se realiza garbage collection de forma sincrónica (afectando el throughput) y la base de código está fuertemente acoplada, por lo que introducir un cambio en este módulo conlleva una gran complejidad. Para solucionar estos problemas, diseñamos un nuevo módulo de caché y persistencia basado en LevelDB, llamado Antidote-LevelDB. LevelDB está diseñado para datos no versionados, y solo admite operaciones de lectura y escritura. Adaptarlo para soportar múltiples versiones de objetos, actualizaciones concurrentes y estructuras de datos replicadas multiversión de alto nivel, como las que se soportan en Antidote, plantea muchos desafíos nuevos. Esta tesis discute estos problemas, nuestro diseño e implementación. Nuestros experimentos muestran que Antidote-LevelDB corrige muchos de los problemas del modelo anterior, aumentando el throughput en la mayoría de los escenarios, al mismo tiempo que proporciona tolerancia a fallas y modularidad. Antidote-LevelDB es un primer paso hacia proveer una solución completa para el manejo de multiversión de las estructuras de datos replicadas provistas por Antidote. Este es un enfoque nuevo e innovador para resolver este tipo de problemas, por lo que puede ser considerado el primero en su tipo.