Bases de datos en HighLoad ++ 2019

Trabajar con una base de datos es lo que afecta significativamente el rendimiento de cualquier servicio web. Si lo intenta , puede organizar una carga alta sin ninguna carga.

Y si lo hace todo sabiamente, resultar谩 procesar las solicitudes de muchos miles de usuarios. Por lo tanto, la programaci贸n de HighLoad ++ tradicionalmente tiene muchos informes sobre bases de datos. Tenemos pistas en PostgreSQL, MySQL y ClickHouse, hay varios informes sobre MongoDB (en la mejor tradici贸n, el orador es un ingeniero de rendimiento en MongoDB). Adem谩s, hay discursos sobre la comparaci贸n de diferentes enfoques o la consideraci贸n de soluciones especializadas. Y en general, agreguemos Tarantool y en memoria aqu铆. Un total de 33 informes est谩n directamente relacionados con la secci贸n "Bases de datos y sistemas de almacenamiento" y al menos 10 indirectamente. Y esto no cuenta los mitaps , que no son menos de diez, y se agregar谩n nuevos a lo largo del camino.

Intentaremos ayudarlo a navegar en toda su diversidad y no perderse informes verdaderamente 煤nicos. Para mayor confiabilidad, solicitamos la opini贸n del miembro del Comit茅 del Programa responsable de esta secci贸n, Nikolay Samokhvalov. Y no parezca que Nikolai es el fundador de Postgres.ai y, en general, postgresmen: est谩 bien versado en el mundo de las bases de datos, conoce interesantes historias y tendencias entre bastidores.

La revisi贸n est谩 organizada de la manera m谩s simple posible: abrimos la lista de informes y fuimos de arriba a abajo, haciendo hincapi茅 en aquellos temas a los que se debe prestar atenci贸n.

ClickHouse Query Profiler


El generador de perfiles de consulta en bases de datos anal铆ticas es algo muy interesante. El enfoque debe ser muy diferente de las bases de datos OLTP, porque, por regla general, las consultas se realizan en bases de datos anal铆ticas durante mucho tiempo. Si en PostgreSQL el plan de ejecuci贸n de la consulta es est谩tico, entonces tiene sentido monitorear casi una consulta.

En este informe, Nikita Lapkov hablar谩 sobre el dispositivo de dicho generador de perfiles para las solicitudes de ClickHouse, lo que le permite determinar qu茅 secci贸n del c贸digo se ralentiza para una solicitud en particular . Y tome las medidas adecuadas para implementar el famoso "ClickHouse no se ralentiza".

Respaldo en infraestructura moderna


Este informe es solo de la serie "al lado de la base de datos", que considera el problema del sistema, pero la mayor parte est谩 dedicado al tema de las copias de seguridad en MySQL. La historia de Anton Turetsky ciertamente ser谩 interesante, porque es la experiencia de Badoo, es decir, se trata de una gran cantidad de servidores . En tal escala, hacer copias de seguridad y, lo m谩s importante, verificar todo es una tarea no trivial. Adem谩s, lograron hacerse amigos de las tendencias y paradigmas modernos de dise帽o de sistemas con respaldo para no perder la confianza de que se pueden obtener los datos necesarios en cualquier caso, incluso en el m谩s cr铆tico.

NB: las copias de seguridad sin verificaci贸n autom谩tica no son copias de seguridad.

Mudarse a ClickHouse: 3 a帽os despu茅s


ClickHouse conquista con confianza su posici贸n, pero pocos desarrolladores externos lograron acumular una s贸lida experiencia trabajando con 茅l. Alexander Zaitsev y Altinity son pioneros en el uso de ClickHouse; ya hace 3 a帽os en HighLoad ++ hablaron acerca de mover un sistema anal铆tico de m煤ltiples petabytes a ClickHouse.

驴Qu茅 ha cambiado desde entonces? Alexander compartir谩 su experiencia y conocimientos, que no se pueden encontrar en la documentaci贸n.

MongoDB vs. Puntos de referencia de Postgres


Dos invitados hablar谩n sobre MongoDB en HighLoad ++. El informe 脕lvaro Hern谩ndez tiene un fondo interesante, incluso escandaloso. Cuando Alvaro hizo e introdujo puntos de referencia que comparaban MongoDB y PostgreSQL, estall贸 una escaramuza en Internet. MongoDB m谩s tarde present贸 sus puntos de referencia.

Como resultado, cada uno de los mundos simplemente tiene su propia filosof铆a. Los adherentes a PostgreSQL tienen dificultades para aceptar una actitud tan difusa hacia los datos, pero las soluciones de MongoDB tienen demanda en el mercado. Compararlos directamente es casi imposible, y esto hace que el informe de Alvaro sea muy emocionante. Es f谩cil adherirse ciegamente a un punto de vista, pero es mucho mejor conocer y comprender ambos.

Este es un hecho divertido para todos: Michael Stonebreaker particip贸. Llam贸 la atenci贸n sobre la disputa entre Postgres y Mongo y public贸 varios art铆culos sobre los problemas de este modelo. Es decir, el fundador de Postgres, que en un momento dijo que un tama帽o no es adecuado para todos, y como resultado lanz贸 la creaci贸n de bases de datos especializadas, incluido NoSQL, ahora est谩 volviendo esencialmente a Postgres. Escribe qu茅 problemas hay, sugiere casarse con modelos de datos y, en general, dice que todo est谩 bien con Postgres. Es muy interesante ver este ciclo de veinte a帽os.

MongoDB distribuy贸 transacciones de arriba a abajo


El segundo informe sobre MongoDB ser谩 realizado por Henrik Ingo, el arquitecto de soluciones de MongoDB, especializado en mejorar el rendimiento de MongoDB y proporcionar alta disponibilidad. Pero Henrik, antes de MongoDB, trabaj贸 en el mundo MySQL durante muchos a帽os, por lo que conoce exactamente los argumentos de varios campos.

En HighLoad ++, Henrik le dir谩 c贸mo hacer que las transacciones en una base de datos NoSQL distribuida satisfagan ACID, y por qu茅 podr铆a necesitarlo.

Hoja de ruta de Odyssey: 驴qu茅 m谩s queremos del extractor de conexiones?


Hace tres semanas, se elimin贸 la principal limitaci贸n de PgBouncer, con la que a menudo se enfrentan las empresas, pero ya logr贸 molestar a todos. Por ejemplo, debido a que era imposible realizar mejoras en el c贸digo abierto, los parches Yandex y Avito no se han aceptado durante a帽os.

Yandex no esper贸 estos cambios e hizo su extractor de conexiones: Odyssey. Es multihilo, tiene chips adicionales, y Andrei Borodin lo contar谩 con m谩s detalle en su informe . Adem谩s, ser谩 posible discutir la hoja de ruta: qu茅 caracter铆sticas del extractor le gustar铆a ver en las nuevas versiones de la comunidad.

DBA bot Joe. Alivie el dolor del desarrollo del backend


Con este informe, Postgres.ai propone cambiar fundamentalmente el enfoque del desarrollo de backend. En lugar de verificar el c贸digo y las consultas en bases de datos peque帽as, verifique en bases de datos grandes e inmediatamente vea el resultado. Suena l贸gico: si la solicitud es lenta, se detectar谩 de inmediato. Otra cosa es qu茅 hacer para esto, por ejemplo, las copias completas de la base de datos de combate son muy inconvenientes. Aqu铆 es donde el bot artificial de DBA Joe viene al rescate

Joe puede escribir una solicitud o pedir crear un 铆ndice, y realizar谩 todas las acciones en una copia de tama帽o completo de la base de datos de combate. En cualquier momento, puede comenzar de nuevo, cancelar todos los cambios en unos segundos y soltar los cach茅s del sistema operativo y del DBMS. Y para el trabajo de diez desarrolladores no necesitan espacio en disco x10. Anatoly Stansler le dir谩 c贸mo funciona esta magia y desde qu茅 componentes de c贸digo abierto puede intentar recopilarla.

Estimado BORRAR. Errores t铆picos al realizar operaciones masivas en bases de datos PostgreSQL altamente cargadas


Y si a alguien le parece que no hay nada de malo en eliminar varios millones de filas con un DELETE, cuando se conoce la condici贸n y hay un 铆ndice adecuado, debe escuchar el informe de Nikolay Samokhvalov. Si intenta realizar una operaci贸n en tales condiciones, lo m谩s probable es que el servicio se caiga, y hay muchas razones para ello de inmediato: DBA no funcion贸, los desarrolladores no se comportaron correctamente y el enfoque organizativo era incorrecto.

Nikolay mostrar谩 c贸mo Postgres.ai ayuda a resolver estos problemas y c贸mo configurar la protecci贸n sin usarla y siempre act煤a de manera confiable sin perder el producto. Todo esto se basa en una experiencia real de dolor y enormes p茅rdidas financieras . Porque parece claro que no puede eliminar de inmediato, pero, por ejemplo, marcar los datos para eliminar primero, pero se encuentran operaciones de bloqueo en un mill贸n de l铆neas.

Patroni en GitLab.com


GitLab utiliza PostgreSQL para MySQL completo, recientemente abandonado, y para garantizar que HA cambie de REPMGR a Patroni. Patroni fue desarrollado por Zalando, su tarea es cambiar autom谩ticamente si algo le sucedi贸 al asistente y garantizar la disponibilidad del servicio.

Ahora Patroni es el est谩ndar de facto , y GitLab lo ha implementado en su soluci贸n en la nube, por un segundo, 25,000,000 de operaciones de extracci贸n de git por d铆a, y est谩 preparando una soluci贸n para verificar las instalaciones. Jose Cores Finotto compartir谩 esta experiencia s煤per interesante en HighLoad ++ el 7 de noviembre.

StackGres: PostgreSQL nativo de la nube en Kubernetes


脕lvaro Hern谩ndez, en comparaci贸n con PostgreSQL y MongoDB, tambi茅n presentar谩 el producto StackGres, esencialmente un reemplazo para RDS. Pero hace posible implementar RDS en Kubernetes mucho m谩s barato, configurar copias de seguridad con un m铆nimo de esfuerzo con un trailer, Patroni para conmutaci贸n por error autom谩tica, verificaci贸n de estado y un mont贸n de herramientas diferentes.

Esta es una empresa prometedora en una direcci贸n similar a la historia de Linux. Hay un kernel de Linux y muchos ensambles diferentes a su alrededor. Vemos lo mismo con respecto a PostgreSQL, que puede considerarse el n煤cleo de un DBMS, y aparecer谩n ensamblajes a su alrededor. StackGres tiene buenas posibilidades de ganar popularidad, porque hay un equipo animado y clientes donde puede tomar sus decisiones.

Cerraduras PostgreSQL


Los bloqueos son b谩sicamente un tema que todos los que trabajan con PostgreSQL deber铆an escuchar. Adem谩s, Yegor Rogov, quien se ha establecido como un profesor ca铆do muerto, hablar谩 sobre ellos. 脡l conoce profundamente el material y lo ayudar谩 a comprender los tipos de bloqueos y comprender c贸mo leer pg_locks y pg_stat_activity y evitar una serie de errores en el dise帽o del sistema. El informe de Egor sobre HighLoad ++ es una gran oportunidad no solo para escuchar, sino para hablar con un experto, hacerle sus preguntas y posiblemente discutir problemas completamente diferentes.

Copia de seguridad de DBMS cargado


Andrey Borodin y Georgy Rylov trabajan en Yandex y est谩n desarrollando WAL-G, una herramienta de respaldo de c贸digo abierto.

Inicialmente, WAL-G es una herramienta para PostgreSQL desarrollada por Citus (es curioso que Microsoft haya absorbido recientemente Citus, es decir, de hecho, compr贸 una pieza de PostgreSQL). Pero result贸 que la idea de organizar el trabajo con WAL-G se adapta bien a otras bases de datos. Andrew y George solo hablar谩n sobre la funcionalidad de MySQL, Redis, MongoDB y las perspectivas que se abren en relaci贸n con esto.

Vitess: escalando sin miedo en la nube


Sugu Sougoumarane es el fundador de PlanetScale. Es posible que a煤n no haya o铆do hablar de esta compa帽铆a, pero recientemente recibi贸 fondos de $ 25 millones para desarrollar su producto abierto Vitess. Es posible que tampoco hayas o铆do hablar de Vitess. Por lo tanto, Vitess es un sistema de fragmentaci贸n de MySQL , y definitivamente conoce a m谩s de una gran empresa que utiliza Vitess para bases de datos altamente cargadas.

Todo comenz贸 con YouTube. Fue all铆 donde Sugu y su equipo crearon lo que m谩s tarde se convirti贸 en el sistema de c贸digo abierto Vitess. Por cierto, eligieron Go, un idioma muy joven en ese momento. Sugu puede contar muchas historias interesantes sobre los primeros a帽os de Go y sobre su desarrollo en general: en Google, su equipo se convirti贸 en el primer usuario importante del idioma.

Bueno, ahora, adem谩s de YouTube, Vitess es utilizado por compa帽铆as como GitHub, Pinterest, Slack, Square. Despu茅s de dejar Google, Sugu fund贸 PlanetScale y contin煤a desarrollando Vitess, manteniendo el c贸digo abierto. Venga a escuchar sobre fragmentaci贸n a escala planetaria y sobre el uso de Go en Highload real. Y no olvide preguntar sobre los planes para la versi贸n Postgres de Vitess: Sugu ama mucho esta pregunta.

Historias de fallas de Patroni o c贸mo bloquear su cl煤ster PostgreSQL


Es curioso que escuchemos al responsable principal de Patroni sobre un tema diferente , porque ya nos habl贸 de Patroni. Pero Aleksey Lesovsky puede decir c贸mo se explota a Patroni fuera de Zalando y qu茅 conos se rellenan. Debido a que estos conos pueden ser muy diferentes, y Alex promete compartir los detalles de casos reales de accidentes . Aprenderemos del informe qu茅 problemas hay, qu茅 lecciones se han aprendido en Data Egret y c贸mo configurar Patroni (y, posiblemente, PostgreSQL) correctamente. Y, por supuesto, tenemos una idea de c贸mo identificar r谩pidamente los problemas emergentes y solucionarlos r谩pidamente.

SQL / JSON: implementamos el est谩ndar y no nos detenemos all铆


Recientemente, la frontera entre DBMS relacionales y orientados a documentos se ha desdibujado. El est谩ndar SQL tiene funciones para trabajar con JSON, y PostgreSQL es el pionero del soporte efectivo de JSON entre DBMS relacionales . En gran parte gracias a Postgres Professional, el est谩ndar ya se ha implementado parcialmente.

El informe de Alexander Korotkov es una cuenta de primera mano de la implementaci贸n de SQL / JSON y su jsonpath "heart" en PostgreSQL. Esa es una oportunidad para conocer las caracter铆sticas internas, la experiencia operativa y los planes para el futuro.

PostgreSQL en K8s en Zalando: dos a帽os en batalla


Alexander Kukushkin es coautor de Patroni, pero este a帽o hablar谩 sobre otro desarrollo interesante de Zalando. Hace dos a帽os, comenzaron a desarrollar Postgres-Operator, y en este momento, con su ayuda, los operadores de DBA prestan servicio a m谩s de 1000 cl煤steres de Postgres que se ejecutan en Kubernetes.

Si bien algunos a煤n dudan de si las bases de datos son posibles en Kubernetes, las grandes empresas ya est谩n trabajando con todo esto. Ser铆a genial conocer y aprender de otro lugar.

Enterprise llama a Postgres


Las grandes empresas utilizan cada vez m谩s PostgreSQL, a menudo esperan de 茅l a lo que est谩n acostumbradas en la empresa. Un ejemplo t铆pico: necesitamos soluciones para la replicaci贸n l贸gica, recurrimos al proveedor. Y algunos proveedores incluso hicieron tal soporte: exist铆a Oracle, ahora apareci贸 PostgreSQL. Pero comenzamos a entender, y resulta que muchas cosas funcionan de manera diferente.

Estamos presenciando la colisi贸n de los mundos del c贸digo abierto y la empresa. Andreessen Horowitz public贸 recientemente un estudio que dice que el inter茅s de los inversores en el c贸digo abierto ha crecido sustancialmente y seguir谩 creciendo. Por lo tanto, los proveedores deben cambiar a c贸digo abierto y nuevos modelos de monetizaci贸n; esto ser谩 mejor por varias razones.

Ivan Panchenko le dir谩 exactamente qu茅 dificultades de migraci贸n a PostgreSQL para empresas son subjetivas y pertenecen al tipo de "manos torcidas", y cu谩ndo son estos desaf铆os importantes que PostgreSQL tiene que enfrentar durante su desarrollo. Los res煤menes prometen la discusi贸n de tales temas: factores de escala (tama帽os de tabla, n煤mero de objetos, memoria, conexiones, replicaci贸n), caracter铆sticas de almacenamiento (mont贸n, almacenamientos conectables), tablas temporales, vac铆o, interacci贸n con el sistema operativo.

Y en esta nota, el futuro es de c贸digo abierto , completaremos un estudio detallado de los informes. Desafortunadamente, detr谩s de escena MySQL se qued贸 casi completamente atr谩s. Si este es tu tema, echa un vistazo a Vittorio Cioe y Alkin Tezuysal .

ClickHouse tambi茅n se presenta en una mayor cantidad de informes, y como siempre, un mitap es de especial valor donde puede hacer cualquier pregunta sobre ClickHouse, junto con los desarrolladores encontrar una soluci贸n a los problemas, discutir oportunidades y planes.

Tampoco tocamos Tarantool, ya que se trata de una base de datos y un servidor de aplicaciones en una botella. Y los informes en el programa HighLoad ++ 2019 se centran en esta multifuncionalidad. Vasily Tyubek hablar谩 sobre el operador de Tarantool Kubernetes para ejecutar una base de datos en Kubernetes, Yaroslav Dynnikov mostrar谩 la conveniencia de construir sistemas distribuidos utilizando Tarantool. Y no pierda la oportunidad de aclarar todos los detalles con los propios desarrolladores: es mucho m谩s productivo e interesante que leer la documentaci贸n.

En general, consideramos las preguntas a los oradores, las discusiones entre bastidores y la creaci贸n de redes, una parte muy importante de la conferencia, si no la m谩s importante. Por lo tanto, creamos todas las condiciones para la comunicaci贸n informal y tratamos de pasar un buen rato.

Los d铆as 7 y 8 de noviembre, HighLoad ++ llenar谩 SKOLKOVO hasta el borde y saldr谩 de 茅l. En Novosibirsk y San Petersburgo habr谩 sus sucursales HighLoad ++ con una teleconferencia al Sal贸n Principal y todos los beneficios de la creaci贸n de redes en la conferencia. En youtube, lanzaremos una transmisi贸n de video abierta de los informes m谩s esperados y el Premio HighLoad ++ , y en el canal de telegramas a lo largo del otro camino, lanzaremos los agentes de traducci贸n de texto. En resumen, incluso si no va a HighLoad ++ (en vano, a煤n puede cambiar de opini贸n, obtener un boleto y despegar), a煤n puede obtener mucho bien y diversi贸n a trav茅s de nuestras redes.

Source: https://habr.com/ru/post/474496/


All Articles