Catálogo de trabajos sobre tecnología de desarrollo de servicios web a gran escala.
Capítulo 1 Orientación al desarrollo de servicios web a gran escala: dominar el conjunto............2
Lección 0 El origen de este libro —— Alcance de este libro........................ 3
Comprometidos en el desarrollo de servicios web a gran escala: pasantías de Hatena para estudiantes universitarios ... 3
El contenido de este libro...................... ............ ................................................. ... 3
Lo que este libro no cubre................. ............. ................ 5
A aquellos que se dedicarán a servicios web a gran escala en el futuro ............ ................................... 5
Lección 1 A gran escala Servicios y Servicios de Pequeña Escala................................................ .... ....... 6
Escala de servicios de Hatena........................ ........ ........................................ 6
Hatena es una gran escala, Google y Facebook son muy grandes... 8
La diferencia entre servicios a pequeña escala y servicios a gran escala...... .......... ........ 9
Hacer frente a volúmenes de datos a gran escala.. ......................... ........................................ .......... .. 11
Lección 2 Servicios en crecimiento y barreras a la escala............ ............. 13
Dificultades con los servicios web.................... .................... ........................ 13
La experiencia de crecimiento de Hatena................. ......................... ............ 13
Estrategia de crecimiento sistemático— minimizando el inicio, gestionando y diseñando para anticipar el cambio... 17
Lección 3 Sitio de Desarrollo de Servicios........................ ................ .................. 18
Estructura del equipo técnico de Hatena.... ................................................. ................ ... 18
Estilo de comunicación de Hatena.................... .... .................. 19
La situación actual del desarrollo de servicios...... ........ ................................................. ....... ..... 19
>Herramientas utilizadas para el desarrollo................................. ..... ................... 21
Resumen...................... .. ................................................. ................. ........................ 23
Capítulo 2 Introducción al procesamiento de datos a gran escala
——Memoria y discos, aplicaciones web y cargas...24
Lección 4 Hatena Bookmark Escala de datos................................... 25
Tome Hatena Bookmark como un ejemplo para introducir datos a gran escala... ........................ 25
El tamaño de los datos de Hatena Bookmark... ........... ................................ 25
Consultas para datos a gran escala— —La sensación de procesar datos a gran escala... 26
Lección 5 Dificultades en el procesamiento de datos a gran escala: memoria y disco... .......28
¿Por qué es tan difícil procesar datos a gran escala? Porque no se pueden calcular en la memoria
...... ............ ................................................. ... ................................28
La diferencia de velocidad entre la memoria y el disco - la memoria es 105 veces más rápida ~106 veces......28
¿Por qué el disco es tan lento? ——Memoria y disco......................................29
Procesamiento acelerado en la capa del sistema operativo.................................... .. ..........31
La diferencia entre la velocidad de transmisión y la velocidad del autobús............. ........... .......31
Lección 6 Conceptos básicos de la escalabilidad.................. ................................................. ............. 37
Extensiones y escalabilidad........................ ................. .................................37 p>
Puntos clave de escalabilidad: carga de CPU y Carga de E/S................38
Relación entre aplicaciones web y cargas................. .................. .......38
La escalabilidad de la base de datos es difícil de garantizar..... ........ .................39
Lección 7 Conocimientos básicos del procesamiento de datos a gran escala.... ....... ........................44
>Conceptos básicos de datos a gran escala para programadores.................................... . ..44
Tres puntos clave en el procesamiento de datos a gran escala: habilidades para escribir programas......44
Tres conocimientos previos necesarios antes de procesar datos a gran escala: el fundamento fundamento del desarrollo del programa ................................. ................. ................................................ .. ...45
Capítulo 3 Almacenamiento en caché y distribución de sistemas operativos
——Principios del procesamiento eficiente de datos a gran escala... ........... ......50
Lección 8 Mecanismo de almacenamiento en caché de los sistemas operativos............ ................ .................................51 p>
Escribir aplicaciones basadas en la comprensión del almacenamiento en caché del sistema operativo - Página
Almacenamiento en caché.................................... ................................................. ............. 51
Mecanismo de memoria virtual........................ ................. ................................................. ..52
Principios del almacenamiento en caché de páginas de Linux................... ...... .......54
VFS............. .................... ................................................ ...... ......................56
Linux almacena en caché el disco en páginas....... ........ ....................57
Memoria caché cuando está inactiva - confirmar mediante sar............. ...........59
Aumentar la memoria y reducir la carga de E/S.................... ...... .................60
El almacenamiento en caché de páginas es transparente............. ...... ..........................................61
Lección 9 Estrategias para reducir la carga de E/S........................ 67 p>
Una estrategia basada en caché para reducir la carga de E/S...... 67
Extendido a múltiples servidores: situaciones en las que no todos los cachés se pueden almacenar en caché ............68
Simplemente aumentar el número no puede garantizar la escalabilidad.... ... ...............69
Lección 10 Distribución usando localidad.. .................... .
............................. 74
¿Qué es una distribución que explota el modo localidad? ................................................ 74
Partición——X distribuido considerando la localidad........................ 75
Dividido en "islas" según patrones de acceso - distribuido Y considerando la localidad... 78
Reglas básicas de aplicación basadas en el almacenamiento en caché de páginas............. .............. ................... 79
Capítulo 4 Estrategia de escalamiento horizontal de la base de datos
——Aplicación MySQL basada en fórmulas de distribución. ....................82
Lección 11 Aplicación correcta de índices
——La premisa principal de la aplicación MySQL distribuida ...................... 83
MySQL distribuido Tres puntos clave de aplicación............. ........................ 83 Aplicación flexible de la caché de los sistemas operativos.................. ................................. ... 83
El punto clave del índice - B- árbol...................... ........................ 86 p>
Efectos del índice.................... .................... ................................................. ..... ...... 89
Método para confirmar si el índice es válido - comando de explicación............. ...... 92
Lección 12 Distribución MySQL
——Diseño de sistemas basado en expansión........................ 95
Función de replicación de MySQL............. ......................... .... 95
Características de maestro/esclavo—— Ampliar el sistema de referencia y actualizar la clase
No se extiende............. ................ .................................. ................................. 96
Lección 13 Escalado horizontal y particionamiento de MySQL... .................... 99
Estrategia de escalado horizontal de MySQL................. ........................ ........... 99
Información complementaria sobre Particionamiento (particionamiento de tablas) ...................... ................. 99
Diseño basado en Particionado... .......... ........................ 99
Evita UNIRSE - usa donde...en... ……… .....
................................. 102
El costo de la partición....... ... ................................................. ... 103
Resumen de los Capítulos 2 a 4........................ ......... .................... 107
Capítulo 5 Introducción a la “práctica” del procesamiento de datos a gran escala
—— Enfoque del desarrollo de aplicaciones................................................ .....108
Lección 14 Índices de propósito especial: procesamiento de datos a gran escala.................... 109
Índices y arquitectura del sistema: cuando se exceden las capacidades de procesamiento del RDBMS... 109
Índices de propósito especial: utilizando estructuras de datos optimizadas ................. .111
Lección 15: Vincular la teoría con la práctica............. .................... ................................................ ...115 p>
Explorando las condiciones técnicas necesarias....................... ................. ......115
Resumen de los Capítulos 2 a 5............................. ................................................ ... ...117
Capítulo 6 Programación de compresión
—Considerando la relación entre el tamaño de los datos y la aceleración de E/S..... ...118
Lección 16 [Tema] Guardar datos enteros de forma compacta y concisa............119
De forma compacta Guardar datos enteros....... ................................. ...119
Intención de la pregunta - ¿Cuáles son las ¿Beneficios de resolver este problema? ........................119
Contenido de los documentos utilizados en el proyecto.......... . ................................................121
Lección 17 Código de bytes variable y la sensación de velocidad........................ .......122
Código de bytes variable: guardar datos enteros en un formato compacto............. .....122
Pseudocódigo de código de bytes variable...... ......................... ............123
Almacenamiento de números enteros ordenados usando "diferencia "..... ................................................. .126
(¿Suplemento?) Conceptos básicos de compresión................................. ...... ............126
(¿Suplemento?) El caso en el que el objeto comprimido es un número entero: teoría básica... .... .127
Lección 18
Explicaciones detalladas de preguntas y ejemplos de soluciones.................................... ....129
Explicación detallada del tema................................ .... ........................................129
( ¿Referencia?) Función pack() - salida de la estructura de datos interna de Perl en forma binaria
............ ................. ................................131
(¿Referencia?) Lectura/escritura de datos binarios. ......................133
(¿Referencia?)Análisis de rendimiento................. .......................... ............135
Ejemplos de respuestas y ideas.................................................... ............................ 136
Capítulo 7 Implementación práctica de algoritmos
— —Observando la inversión práctica en teoría e investigación a partir de ejemplos que nos rodean....142
Lección 19 Algoritmos y revisiones de algoritmos.................. ...................... .................143
Diferencias en tamaño y complejidad de los datos. ............ ............143
¿Qué es un algoritmo? ................................................. ................. ............144
La importancia de los algoritmos de aprendizaje: recursos informáticos limitados, comunes a los ingenieros p>
Idioma................................................ .... .................................145
Evaluación del algoritmo— —Complejidad Notación................................................ ......146 p>
¿Cuántas veces se puede doblar una toalla de papel? ——La brecha entre O(logn) y O(n)......148
Algoritmos y estructuras de datos: conexiones inextricablemente vinculadas.... ..........149
Complejidad y términos constantes: la evaluación importa ......................... ........150
Aplicación de algoritmos Situación real: la simplicidad es hermosa............. 151
Aplicación flexible de terceros implementación del partido ——CPAN, etc................................. 153
Profundizar a través ejemplos Sentimientos................................................ ........ .... 155
Lección 20 Cadena de palabras clave del diario Hatena
Recoger................................................ 156
¿Qué? ¿Es un enlace de palabra clave? ................................................. ............... ....... 156
Implementación inicial................. ...... ........................................ 156
¡Fuera Problema! ——El diccionario de palabras clave es cada vez más grande.................... 157
Uso de coincidencia de patrones Problemas al implementar enlaces de palabras clave ................................ 158
De expresión regular a Trie: cambiando la forma de coincidencia está implementado................. 158
Algoritmo Aho-Corasick............ ........... ................................................. .... 160
Reemplazar con Regexp::List................................. ... .................... 162
La implementación, cambios e investigación de enlaces de palabras clave..... ....... ........... 163
Lección 21 Clasificación de artículos de Hatena Bookmark ......................... ...... 164
¿Qué es la clasificación de artículos? ................................................. ............... ........ 164
Aprendizaje automático y datos a gran escala............. ............ ........................ 165
Datos y Web a gran escala servicios—El Camino de la Ciencia de Google .. 166
El principio del filtro bayesiano........................ ... .................... 167
El camino hacia el algoritmo práctico: un ejemplo de Hatena Bookmark...... ... ...... 170
Postura defensiva y postura ofensiva: comenzando desde la función de clasificación de documentos....... 171
Capítulo 8 Implementación del enlace de palabras clave Hatena p>
——Entendiendo el camino hacia la aplicación................................ .............. ..........176
Lección 22 [Tema] Crear enlace de palabra clave Hatena...... ................. ....... 177
Usando el algoritmo Aho-Corasick para crear enlaces de palabras clave Hatena..... .. 177
Pruebas de escritura....... ................................ ................. ................ 180
Lección 23 Ejemplos e ideas de respuestas.
................................................. ............... ........... 182
Ejemplos de respuestas.............. ......................................... ......... 182 p>
Capítulo 9 Desafíos de la tecnología de búsqueda de texto completo
-Varias experiencias y técnicas para el procesamiento de datos a gran escala...... 184
Lección 24 Alcance de la aplicación de la tecnología de búsqueda de texto completo................. ........ .. 185
Crear un motor de búsqueda utilizando datos de Hatena......................... .... ....... 185
Búsqueda de texto completo de Hatena Diray - búsqueda fuera del servicio de búsqueda
Sistema.......... .. ................................................. ................. .................. 185
Búsqueda de texto completo de Hatena Bookmark - un sistema que cumple con los requisitos detallados... 187
Lección 25 Arquitectura del sistema de búsqueda.................... ............. .............190
Pasos necesarios para buscar en el sistema.......... .. ........................................190
Varios motores de búsqueda................................................ ....... ......191
Tipos de búsqueda de texto completo........................ ...... .................................193
Lección 26 Estructura interna del buscador. ................................................. .......198
La estructura del índice inverso——Publicaciones del diccionario................................. ...198
Método de creación de diccionario: método de creación de índice inverso 1 .........200
Resumen...... ................. ................................................. ............................210
Cómo crear Publicaciones - Cómo crear un índice inverso 2... .........211
Información complementaria sobre la puntuación........................ ..... ........................213
Referencias... ................ ................................................. ............214
Capítulo 10 Creación de un motor de búsqueda de texto completo
—Parte básica, mejora, velocidad.
y requisitos de precisión...216
Lección 27 [Tema] Crear búsqueda de texto completo en Hatena Bookmark...217
Desarrollar un motor de búsqueda de texto completo... ........................................ ............ 217
Contenido principal........................ ................ ................................................. ...217
Ejemplo de formato y tamaño de datos........................ ......... ....218
Composición del diccionario——Diccionario, Publicaciones ............ ............219
Interfaz........................ ........................ ........................................ .......220
Mejoras básicas........................ .................. ...............220
Con velocidad y precisión es un enfrentamiento................. ......... ......221
Ejemplos e ideas de respuestas de la Lección 28.................. ..................223
Ejemplos de respuestas........................ ................................................. ....... ............223
Implementación del indexador pl............. ..... ................................................223 p>
Implementación del buscador pl....................................... ...... .......225
Áreas que se pueden mejorar............. ................. ................................................ .227
Capítulo 11 Introducción a servidores/infraestructura para soportar el procesamiento de datos a gran escala
——Backend de los servicios web.... ........................230
Lección 29 Software empresarial versus servicios web....... ........................................ ..231
Software empresarial versus servicios web: diferencias en el alcance de la aplicación......231
Infraestructura de servicios web: tres puntos clave..... ......233
Capítulo 30 Lecciones La nube frente a la construcción de su propia infraestructura.............
............................235
Computación en la nube...... ..... ................................................. .......... ............235
Ventajas y desventajas de la nube............ .. ................................................. ............. ........ 235
Servicios en la nube de aplicaciones Hatena................. ....... .................. 236
Ventajas de construir tu propia infraestructura..... ...... ........................................ 237
Construye tu propia infraestructura y modelo de integración vertical...................... 239
Escala de servicios de Hatena............. ........................... ............. 240
Marcapáginas Hatena Diagrama de arquitectura del sistema.................... 240
Capítulo 12 Ideas necesarias para garantizar la escalabilidad
——Expansión de escala y expansión del sistema................................242
Lección 31 Capas y Escalabilidad.................................... . ........................ 243
Requisitos de escalabilidad: el límite de tráfico que puede manejar un servidor. 243
Escalabilidad de cada capa........................ .............. .... 244
Lección 32: Domina la carga y afinala....................... .......................................... .... 245
Domina la carga - interfaz de gestión visual........................ ........... 245
Indicadores para medir la carga: carga promedio, memoria e información relacionada con la CPU.... 247
Ajuste según el propósito: para servidores de usuario y servidores orientados a rastreadores ............ ................. ................................. ....... 247
Estrategias de ajuste y número de servidores
para servidores de aplicaciones y servidores de bases de datos................. ........................................................ ......................... ..... 249
Escalado y ajuste del servicio.......... ................................................25
0
Escalabilidad garantizada................................ ........ .......... 251
Capítulo 13 Garantizar la redundancia y la estabilidad del sistema
——El principio de lograr una tasa de 100 en línea... ............. 252
Lección 33 Garantizar la redundancia........................ . ............................ 253
Garantizar la redundancia: servidor del programa de aplicaciones... ................ 253
Redundancia garantizada Redundancia - Servidor de base de datos.................... .... 254
Asegurar la redundancia - servidor de almacenamiento................................. .......... 257
Lección 34 Estabilización del sistema........................ .... ................................... 261
Compensaciones para mantener el sistema estable................................................ ........ .... 261
Factores de inestabilidad del sistema................................ .... ................................. 262
Lección 35 Contramedidas para la estabilidad del sistema.... ................................ ............ 267
Contramedidas reales para la estabilidad del sistema: mantener márgenes adecuados y eliminar factores inestables
................................. ................................. ................ .... 267
Capítulo 14 Mejorar la eficiencia
——Mejorar la utilización de los recursos de hardware....... .....270
Lección 36 Tecnología de virtualización................................. .................271
Introducción de la tecnología de virtualización....... ................ ................................................. ......271
El efecto de la tecnología de virtualización........................ ....... ......................272
Estrategias de construcción para servidores virtuales ................. ................................................. . ...273
Resumen de las ventajas de la virtualización............................. ... ..........................
.275
Virtualización y operaciones: aprovechar las ventajas de la virtualización en las operaciones a través de herramientas de administración de servidores................................ ................................................. ....276
Puntos a tener en cuenta sobre la virtualización........................ ........ ........................277
Lección 37 Hardware y mejora de la eficiencia
p>——Clave tecnologías para lograr un bajo costo................... ...280
Mejorar el rendimiento del procesador......... ............... .................280
Los costos de memoria y disco duro caen... ... ................................................. ................. ..281
Uso efectivo de hardware barato - aplicaciones de hardware basadas en virtualización.......282
SSD..... ........................................ ......................... ......................... ...284
Capítulo 15 Redes y servicios web
—— Vea el crecimiento de los servicios a través de Internet.................. ..............288
Lección 38 El punto divisorio de la red.................... .................... ..................289
El punto divisorio entre crecimiento de servicios y networking......................................289
El límite de 1 Gbps——El límite del enrutador de PC......................289
El límite de 500 hosts - el límite de subredes y tablas ARP......290
Las capas de la arquitectura de red... ........................ ........................................ .......291
Globalización.................... ................... ................................................ ..292
Lección 39 Desafiando los límites superiores........................ ................. ...295
Un mundo más allá de los 10Gbps...................................... .................................... 295
La infraestructura de Hatena—Resumen de capítulos 11 a 15.............296
Capítulo 16 Capítulo especial: Las tecnologías prácticas actuales necesarias para construir servicios web
——Instrucciones para tratar con servicios Web a gran escala...
.............298
Lección especial 1 Sistema de cola de tareas TheSchwartz, Gearman................299
Servicios Web y Solicitudes................................................ ..... ........299
Introducción al sistema de cola de trabajos.................... .. ............299
Sistema de cola de trabajos de Hatena...... ................. .300
Análisis mediante logs..... ................................. ............ 302
Lección especial 2: Elección del método de almacenamiento: RDBMS o
Almacenamiento clave-valor....... ............ ........................ 303
Cómo ahorrar aumentando datos... ........................ 303
Requisitos previos para seleccionar un sistema de almacenamiento....................... 304
Tipos de sistemas de almacenamiento...... ................................................ 305
RDBMS................................... ...... ........................ 305
Almacenamiento distribuido de valores-clave....... ...... ................. 308
Sistema de archivos distribuido..... .......... ......................................... 310
Otro almacenamiento. ......................................... ........... ............. 312
Estrategia de selección del sistema de almacenamiento............ ............. .................. 314
Lección especial 3 Sistema de almacenamiento en caché— —Calamares, barniz........ ............. 315
Cargas de aplicaciones web y sistemas proxy/caching.... ............. 315
Calamar——Estructura básica........................ ................. ............ 317
Barniz............ ................. ................................................ .. ...... 321
Lección especial 4 Clúster de computación - Hadoop........................ ..... ....... 323
Procesamiento paralelo de grandes cantidades de datos de registro.............
.................. 323
Modelo informático MapReduce............. ........ ................ 323
Hadoop ............. ............ ................................................. ... ...... 325
Índice........................ ........ ................................................. ....... ................327