07514nam a22001697a 4500003000400000005001700004008004100021020002200062040001400084041000800098245016100106250001300267260003400280300002500314505697800339650002707317OSt20250403140217.0230418b |||||||| |||| 00| 0 eng d a978-958-778-850-1 aB-ISTTENA aEsp aDiseño de aplicaciones mediante el uso intensivo de datosbLos grandes conceptos sobre los sistemas confiables escalables y manteniblescMartin Kleppmann a1ra Ed.  aColombiabMARCOMBO S.L c2020 a599 P.c24 x 17 cm . aCONTENIDOS -Prefacio. -Parte I. -Fundamentos de los sistemas de datos 1. Aplicaciones confiables, escalables y mantenibles. -Reflexiones sobre los sistemas de datos. -Confiabilidad. -Fallos de hardware.. -Errores de software -Errores humanos -¿Cuál es la importancia de la confiabilidad? -Escalabilidad.. -Descripción de la carga. -Descripción del rendimiento -Enfoques para hacer frente a la carga -Mantenimiento -Operatividad: facilitar la vida a las operaciones. -Simplicidad: gestión de la complejidad -Evolución: facilitar el cambio. -Resumen -Referencias. 2. Modelos de datos y lenguajes de consulta. -El modelo relacional frente al modelo de documentos -El nacimiento de NoSQL -El desajuste objeto-relacional. -Relaciones de muchos a uno y muchos a muchos. -¿Están las bases de datos de documentos repitiendo la historia? -Bases de datos relacionales frente a las de documentos en la actualidad -Lenguajes de consulta de datos. -Consultas declarativas en la web. -Consultas de MapReduce -Modelos de datos de tipo grafo. -Grafos de propiedades. -Lenguaje de consulta Cypher. -Consulta de gráficos en SQL. -Almacenes triples y SPARQL -Los fundamentos: Datalog. -Resumen. -Referencias. 3. Almacenamiento y recuperación. -Estructuras de datos que potencian la base de datos -Indices hash.... -SSTables y árboles LSM.. -Árboles B. -Comparación de los árboles B con los árboles LSM -Otras estructuras de indexación -¿Procesamiento de transacciones o análisis?. -Almacén de datos. -Estrellas y copos de nieve: esquemas para el análisis -Almacenamiento orientado a columnas.. -Compresión de columnas. -Orden de clasificación en el almacenamiento por columnas -Escritura en el almacenamiento orientado a columnas. -Agregación: cubos de datos y vistas materializadas -Resumen -Referencias.. 4. Codificación y evolución. -Formatos de codificación de datos -Formatos específicos para cada lenguaje JSON, XML y variantes binarias. -Thrift y Protocol Buffers. -Avro -Méritos de los esquemas -Modos de flujo de datos. -Flujo de datos a través de bases de datos. -Flujo de datos a través de servicios: REST y RPC. -Flujo de datos por paso de mensajes. -Resumen. -Referencias.. 5. Replicación. -Líderes y seguidores. -Replicación sincrona frente a asincrona. -Cómo configurar nuevos seguidores. -Gestión de las interrupciones de los nodos. -Implementación de logs de replicación -Problemas de retardo en la replicación. -Lectura de nuestras propias escrituras -Lecturas monotónicas -Lecturas de prefijos coherentes. -Soluciones para el retardo en la replicación. -Replicación multilider. -Casos de uso de la replicación multilíder -Gestión de conflictos de escritura... -Topologias de replicación multilíder -Replicación sin lider. -Escritura en la base de datos cuando un nodo no funciona.. -Limitaciones de la coherencia del quorum. -Quorum descuidados y transferencias indirectas -Detección de escrituras simultáneas -Resumen. -Referencias.. 6. Particionado -Particionado y replicación. -Particionado de datos clave-valor... -Particionado por rangos de claves. -Particionado por hash de claves. -Cargas de trabajo desbalanceadas y mitigación de puntos calientes -Particionado e índices secundarios -Particionado de índices secundarios por documento. -Particionado de indices secundarios por término. -Rebalanceo de particiones. -Estrategias de rebalanceo -Operaciones: rebalanceo automático o manual. -Enrutamiento de solicitudes. -Ejecución de consultas en paralelo -Resumen -Referencias.. 7. Transacciones. -El resbaladizo concepto de transacción» -El significado de ACID. -Operaciones con un solo objeto y con varios objetos -Niveles de aislamiento débil. -Lectura confirmada. -Aislamiento de instantáneas y lectura repetitiva -Cómo evitar que se pierdan las actualizaciones. -Escritura desviada y fantasmas -Serializabilidad. -Ejecución en serie -Bloqueo en dos fases (2PL). -Aislamiento de instantáneas serializable (SSI). -Resumen.. -Referencias... 8. El problema de los sistemas distribuidos. -Fallos y averías parciales. -Computación en la nube y supercomputación. -Redes poco fiables. -Fallos de red en la práctica. -Detección de fallos... -Tiempos de espera y retardos ilimitados. -Redes sincronas frente a asincronas. -Relojes poco fiables.. -Relojes monotónicos frente a relojes en tiempo real -Sincronización y precisión del reloj -Confianza en los relojes sincronizados. -Pausas del proceso -Conocimiento, verdades y mentiras.. -La verdad la define la mayoría -Fallos bizantinos... -Modelos de sistemas y realidad. -Resumen.. -Referencias. 9. Coherencia y consenso. -Garantías de coherencia. -Linealizabilidad ¿Qué hace que un sistema sea linealizable? -Confianza en la linealizabilidad -Implementación de sistemas linealizables.. -El coste de la linealizabilidad. -Garantías del ordenamiento. -Ordenamiento y causalidad. -Ordenamiento por números de secuencia -Difusión de orden total -Transacciones distribuidas y consenso. -Confirmación atómica y confirmación en dos fases (2PC) -Transacciones distribuidas en la práctica.. -Consenso tolerante a fallos -Servicios de afiliación y coordinación. -Resumen -Referencias.. -Parte III. Datos derivados 10. Procesamiento por lotes. -Procesamiento por lotes con herramientas Unix. -Análisis de un log sencillo. -La filosofia Unix -MapReduce y sistemas de archivos distribuidos. -Ejecución de trabajos MapReduce.. -Agrupaciones y uniones de lados reducidos. -Uniones del lado del mapa Resultado de los flujos de trabajo por lotes -Comparación de Hadoop con las bases de datos distribuidas. -Más allá de MapReduce Materialización del estado intermedio. -Grafos y procesamiento iterativo. -API y lenguajes de alto nivel. -Resumen. -Referencias.. 11. Procesamiento de flujos. -Transmisión de flujos de eventos. -Sistemas de mensajería. -Logs particionados -Bases de datos y flujos. -Necesidad de mantener los sistemas sincronizados. -Captura de datos de cambios -Aprovisionamiento de eventos -Estado, flujos e inmutabilidad.. -Procesamiento de flujos... -Usos del procesamiento de flujos -Razonamiento sobre el tiempo.. -Uniones de flujos -Tolerancia a fallos. -Resumen... -Referencias. 12. El futuro de los sistemas de datos -Integración de datos. Combinación de herramientas especializadas mediante la derivación de datos -Procesamiento por lotes y procesamiento de flujos -Desagregación de bases de datos Composición de las tecnologías de almacenamiento de datos. -Diseño de aplicaciones en torno al flujo de datos -Observación del estado derivado. -En busca de la corrección Argumento de las bases de datos de extremo a extremo -Aplicación de restricciones. -Puntualidad e integridad -Confie, pero verifique.. -Hacer lo correcto -Análisis predictivo -Privacidad y seguimiento.. -Resumen. -Referencias. -Glosario.  bBASE DE DATOS AVANZADA