Estudio de rendimiento en MongoDB sobre arquitecturas centralizadas y distribuidas - Soldi, Pablo José; Tinetti, Fernando Gustavo; Terruzzi, Franco Agustín (2017)
1. Introducción -- 1.1 Uso de bases de datos distribuidas -- 1.1.1 Camino hacia NOSQL -- 1.2 NoSQL -- 1.2.1 Tipos de bases de datos NoSQL -- 1.2.1.1 Clave-Valor -- 1.2.1.2 Familia de Columnas -- 1.2.1.3 Documentos -- 1.2.1.4 Grafos -- 1.2.2 Distribución de las bases de datos en clusters -- 1.2.2.1 Réplica -- 1.2.2.2 Sharding -- 1.3 Elección de MongoDB -- 1.4 Organización del contenido -- 2. Trabajos realizados -- 2.1 Diseño de bases de datos relacionales distribuidas -- 2.1.1Replicación y consistencia -- 2.1.2 Estrategias para el manejo de actualizaciones -- 2.1.3 Fragmentación -- 2.1.4 Problema de asignación -- 2.2 Alternativas a MongoDB -- 2.2.1 Apache Casandra -- 2.2.2 Apache CouchDB -- 3. Mongo DB -- 3.1 Características de Mongo DB -- 3.1.1 Documentos -- 3.1.2 Colecciones -- 3.1.2.1 Objectid -- 3.1.2.1 Índices -- 3.2 Aspectos de bases de datos distribuidas abordados desde Mongo DB -- 3.2.1 Sharding -- 3.2.1.1 Shard Key -- 3.2.1.2 Distribución de Chunks -- 3.2.2 Sharded Cluster -- 3.2.2.1 Shard -- 3.2.2.2 Config Server -- 3.2.2.3 Mongos o Router -- 3.2.3. Réplica Set -- 3.2.3.1 Nodo primario -- 3.2.3.2 Nodos secundarios -- 3.2.3.3 Árbitro -- 4. Sucesión de experimentos, validaciones y análisis de resultados -- 4.1 Esquema centralizado -- 4.2 Esquema centralizado con réplicas -- 4.3 Esquema distribuido sobre 2 shards con réplicas -- 4.4 Esquema distribuido sobre 3 shards con réplicas -- 4.5 Carga de datos -- 4.6 Evaluar el tiempo de respuesta -- 4.7 Elección de clave en estructuras distribuidas -- 5. Implementación -- 5.2 Estructuras de prueba en un entorno local -- 5.2.1 Desarrollo de funcionalidades -- 5.2.2 Inserción de archivos -- 5.2.3 Validación de consistencia -- Consultas para evaluar el tiempo de respuesta -- Obtener todos los archivos que son de un tipo particular -- Obtener un archivo específico por nombre -- Obtener todos los archivos mayores a X bytes -- Obtener todos los archivos que pertenezcan a un shard determinado -- 5.2.4 Registrar los tiempos de ejecución -- 5.2.5 Registrar el tamaño de las bases de datos -- 5.3 Periodicidad en la ejecución de consultas -- 5.4 Unificar funcionalidades en una única interfaz -- 5.5 Recopilación de datos para los estudios -- 5.6 Sobre arquitectura del cluster -- 5.6 Resumen de las herramientas desarrolladas y utilizadas -- 6. Resultados obtenidos y conclusiones -- 6.1 Estructura centralizada sin réplicas -- 6.2 Estructura centralizada con réplicas -- 6.2.1 Comparación entre estructuras centralizadas -- 6.3 Estructura distribuida con dos shards -- 6.4 Estructura distribuida con tres shards -- 6.4.1 Comparación entre estructuras distribuidas -- 6.5 Comparación entre estructuras centralizadas y distribuidas -- 6.5.1 Tiempos de consultas agrupados en subconjuntos -- 6.5.2 Peor rendimiento de búsqueda -- 6.5.3 Enfoque centralizado sin réplicas y distribuido sobre dos shards -- 6.5.4 Mejor rendimiento de búsqueda -- 6.5.5 Resultados sobre un único shard -- 7. Conclusiones y trabajos futuros -- 7.1 Conclusiones -- 7.2 Trabajos futuros -- 8. Bibliografía
Tesina (Licenciatura en Sistemas) - Universidad Nacional de La Plata. Facultad de Informática, 2017.
Keywords: BASES DE DATOS DISTRIBUIDAS; ARQUITECTURAS DISTRIBUIDAS; fragmentación; tiempos de respuesta