Estudio de rendimiento en MongoDB sobre arquitecturas centralizadas y distribuidas

Detalles Bibliográficos
Autor Principal: Soldi, Pablo José
Otros autores o Colaboradores: Tinetti, Fernando Gustavo (Director/a), Terruzzi, Franco Agustín (Asesor/a profesional)
Formato: Tesis
Lengua:español
Datos de publicación: 2017
Temas:
Acceso en línea:Consultar en el Cátalogo
Descripción Física:92 p. : il. col. + 1 CD-ROM
Tabla de Contenidos:
  • 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