Inquietudes de DBA sobre productos de almacenamiento de memoria no volátil de próxima generación

Abstracto: Las ganancias algorítmicas en el motor de almacenamiento están ampliamente establecidas y la ley de Moore para la velocidad de la CPU está en la parte inferior, pero el rendimiento de la base de datos sigue aumentando ~ 10 veces gracias a la continuidad del millón de unidades SSD NAND Flash, Optane, Flash-language (por ejemplo, OpenChannel , espacios de nombres zonificados), KeyValue. SSD, etc La desventaja es que cada revolución del motor de almacenamiento ha roto históricamente la encapsulación/reutilización y ha requerido que los desarrolladores de DBMS realicen copias de seguridad y restauración, alta disponibilidad, diagnósticos, etc. Este artículo tiene como objetivo crear una lista de verificación de las funciones necesarias que deberían estar en la nueva base de datos. -Discos de aceleración antes de comprarlos.

Durante las últimas dos décadas, el rendimiento de la base de datos ha aumentado unas 100 veces por servidor. Parte de este ~ x100 fueron las mejoras de software, pero principalmente gracias a un mejor hardware, especialmente la actualización de HDD -> Flash SSD.

Hay más obsequios futuros de celdas de silicio que pronto mejorarán el rendimiento de la base de datos ~ x10, y tal vez incluso otro x10 además de eso cuando estén terminados.

  1. NAND Flash sigue mejorando bien, casi dos décadas después de la primera vez. (Recuerdo que SSD solo ha resuelto tantos problemas de rendimiento de db desde, digamos, 2013, que dejé de prestarle mucha atención. Desde entonces, se ha vuelto aproximadamente 10 veces más rápido, mientras no lo buscaba). , allí es Optane, como la memoria o el disco.
  2. Mejorar el bus de la placa base. No solo eso duplicando la tasa de bits una y otra vezpero también proporciona una mayor descentralización de procesos y acceso a la memoria.
  3. Unidad SSD que proporciona un proceso en el sitio, descargando trabajo de la CPU a la unidad.
  4. Aumentar las soluciones comerciales para agregar almacenamiento y memoria en redes de baja latencia.
  5. Las próximas tecnologías de memoria permanente de próxima generación (buscando ser MRAM hasta ahora).

Estos tienen beneficios de rendimiento para todos los tipos de software, pero para las bases de datos, los resumimos como:

  • Un aumento en el rendimiento general ~ x10 durante los próximos dos años (es decir, 2020 ~ 2022) para el software que utiliza almacenamiento nuevo, ya sea una unidad NVM de nuevo estilo o una memoria no volátil en un DIMM.
  • Las unidades que tienen capacidades de transformación en el sitio eliminan la mayoría de las paradas de la base de datos que enfrentamos actualmente durante la alta carga de escritura debido a la compactación de LSM o los puntos de control de WiredTiger, etc.
  • Las bases de datos NoSQL y NewSQL resuelven el problema del escalado a escala web, pero puede ser irrelevante para más del 90 % de los usuarios de tamaño empresarial, ya que las unidades NVM rápidas crecen > 10 TB, y también se pueden agregar al tamaño de PB en redes de baja latencia. .
  • La próxima generación de memoria no volátil, que reemplaza a la generación actual NAND Flash y Optane, parece ser diez veces más rápida. Es decir, una latencia de ~ x100 mejor en comparación con nuestro rendimiento actual.

Todos los nuevos dispositivos de almacenamiento anteriores pueden implementar el almacenamiento de datos de valor clave y, dependiendo de algunos otros factores, probablemente se puedan implementar como un motor de almacenamiento para DBMS como MySQL o MongoDB.

“Otra victoria a la vuelta de la esquina”, podría pensar, “gracias a Dios, los DBMS de la generación actual se basan en el paradigma de la reutilización y encapsulación de código”.

El problema para la industria de bases de datos

Los caminos evolutivos que ahora están abiertos son muy numerosos. Las opciones para los desarrolladores de motores de almacenamiento en este momento son:

  • Zona/zona de transmisión frente a SSD controlado por espacio de nombres FTL frente a interfaces KeyValue-SSD
  • Opción: agregue un FPGA (o ASIC) para realizar un proceso intensivo de datos cerca de la unidad flash, en lugar de ir y venir al sistema operativo del kernel.
  • API de kernel concurrentes (por ejemplo, acceso a disco síncrono asíncrono no tradicional)
  • Protocolos de bus de la competencia
  • Fantástica opción de NIC: vaya directamente a la red (es decir, omita el kernel) con productos NVMe y DMA conectados a la red para realizar una replicación asíncrona u otras funciones de sincronización de datos/copia de seguridad.
  • Cree solo índices efímeros en la memoria o persista.
  • BTree o LSM u otra estructura de datos para tablas e índices
  • Transacciones: admita transacciones de declaraciones múltiples o solo actualizaciones atómicas, registro único.
  • Seguridad: se necesitará una nueva API en términos de propiedad y acceso si las unidades se van a alejar de los objetos de datos del sistema de archivos.

Esto es ahora. Cuando se trata de la próxima generación de memoria persistente, todo comenzará de nuevo. Habrá una nueva interfaz de usuario, nuevos controladores de kernel, nuevos FPGA/ASIC en la unidad/memoria conectable, etc.

Los proveedores de soluciones de almacenamiento proporcionarán lo anterior, por lo que puede parecer que solo tenemos que ser pacientes de vez en cuando, cuando llegan las soluciones ganadoras, reconocemos aprender nuevas técnicas de ajuste y análisis de rendimiento.

Pero con la historia de la industria como nuestra nueva guía, motores de almacenamiento de base de datos de complemento ser suministrado al mercado se completará solo para una base de datos de un solo servidor. Es decir, predice que enviarán el producto por la puerta sin lo siguiente.

Brecha esperada 1: copia de seguridad activa (+ inicialización de la replicación)

Creo que los desarrolladores de motores de almacenamiento olvidan que, como regla impuesta por las empresas en segundo plano, todas las implementaciones de bases de datos tienen dos externo sistemas que se supone que capturan todo. Hacer copias de seguridad y tener conjuntos de réplicas es cómo probamos al usuario y probamos la falla de energía de la base de datos.

Para hacer esto de manera eficiente, los nuevos motores de almacenamiento deben tener lo siguiente para extraer datos de manera eficiente a una copia de seguridad externa o réplicas:

    • Una API para leer un instantánea consistente para hacer una copia de seguridad/copia inicial para la sincronización de la replicación.
    • Una API para servir un cursor, o algún tipo de puntero de lectura, para tomar operaciones de escritura incrementales log desde un momento arbitrario en el pasado (normalmente el momento de la última copia de seguridad o el momento inicial de la inicialización de la replicación) a otro momento arbitrario.

La copia de seguridad rápida con consistencia no es solo algo bueno; se debe permitir un mayor rendimiento de escritura y un tamaño> 10 TB en una sola unidad para cuando esta tecnología se vuelva común en los centros de datos. Los métodos de respaldo más lentos y avanzados, como los volcados de tablas de bases de datos clásicas, no finalizarán en un tiempo razonable para la nueva base de datos de tamaño mediano e incluso grande.

Las copias de seguridad activas que tenemos hoy en día son sistemas «agregados después». Ha perdido mucho tiempo de desarrollador y DBA, y la fragmentación entre alternativas continúa dividiendo las horas de ingeniería y, por lo tanto, el progreso de la industria. Por lo tanto, esta vez hacemos de la copia de seguridad activa y la replicación eficiente un requisito inicial.

Brecha prevista 2: interfaces de diagnóstico integrales

Los motores de almacenamiento (p. ej., InnoDB o WiredTiger) pueden reemplazarse por unidades que realizan básicamente todo el proceso de indexación, garantía de consistencia, limpieza, etc., en la unidad sin ninguna ruta de ejecución que involucre el software .db en la CPU. Las métricas internas del motor, incluidos los motores de almacenamiento actuales, deben ir acompañadas de actividades de informes equivalentes en las unidades de procesamiento en el sitio.

Los administradores de bases de datos lo necesitan para monitorear, y los ingenieros que examinan los defectos en el campo están ciegos sin ellos.

Brecha prevista 3 – Control de acceso

Con bases de datos basadas en archivos existentes, el usuario «mongod» o «mysqld» o «postgres» y así sucesivamente. posee el archivo de la base de datos. «chown -R dbuser: dbgroup/data/db; chmod 660/data/db/files*». A menos que se subviertan, accidental o deliberadamente, otros procesos (no root) no tienen acceso a los discos db en esos archivos.

Hay algunas soluciones que proporcionarán una API de valor clave para los comandos NVMe sin tener un sistema de archivos.

¿Cómo funciona el control de acceso cuando no hay archivos? ¿Cómo, digamos, un SSD de valor clave discrimina entre procesos de usuario?

Hasta el momento, a partir de mi lectura actual, la búsqueda de un consenso sobre esto no ha comenzado en serio.

Resumen

Estoy muy ansioso por comenzar con la nueva NVM, ya sea una unidad SSD o una memoria permanente en DIMMS, para tener motores de almacenamiento que avergonzarán el rendimiento de la base de datos de última generación anterior a 2020.

Pero, al mismo tiempo, para evitar la duplicación innecesaria del trabajo en la industria de las bases de datos, no creo que debamos usar estas unidades en nuestros DBMS de uso general hasta que admitan de forma nativa todo lo siguiente:

  • Una estructura de tabla MVCC que permite el aislamiento de instantáneas
  • Clonación rápida de una instantánea consistente
  • Registro incremental
  • Cierre el procesamiento de datos para compactación LSM, recorte de BTree, etc.
  • Un modelo de control de acceso claro y sencillo
  • La información de diagnóstico (especialmente los contadores y las sumas de latencia) se combina con los detalles que obtenemos de MySQL performance_schema o serverStatus de MongoDB.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario