SingleStore es un distribuido , relacional , SQL base de datos de sistema de gestión de [2] (RDBMS) que cuenta con ANSI SQL apoyo y que se conoce para la velocidad en los datos de ingesta, el procesamiento de transacciones, y el procesamiento de consultas. SingleStore se conocía anteriormente como MemSQL . [3] [4]
Género | RDBMS |
---|---|
Fundado | 23 de abril de 2013 [1] |
Fundador | Raj Verma (director ejecutivo) |
Sede |
|
Área de servicio | Mundial |
Número de empleados | 250 |
Sitio web | www |
SingleStore almacena principalmente datos relacionales, aunque también puede almacenar datos JSON, datos de gráficos y datos de series de tiempo. Admite cargas de trabajo combinadas, comúnmente denominadas cargas de trabajo HTAP , así como casos de uso de OLTP y OLAP más tradicionales . Para consultas, compila el lenguaje de consulta estructurado (SQL) en código de máquina. El motor de base de datos de SingleStore se puede ejecutar en varios entornos de Linux , incluidas las instalaciones locales , los proveedores de nube pública y privada, en contenedores a través de un operador de Kubernetes o como un servicio alojado en la nube conocido como Servicio Administrado de SingleStore.
Historia
El 23 de abril de 2013, SingleStore lanzó su primera versión de la base de datos disponible para el público como MemSQL. [5] Las primeras versiones solo admitían tablas orientadas a filas y estaban altamente optimizadas para casos en los que todos los datos caben en la memoria principal . Este diseño se basó en la idea de que el costo de RAM continuaría disminuyendo exponencialmente con el tiempo, en una tendencia similar a la ley de Moore . Esto eventualmente permitiría que la mayoría de los casos de uso de sistemas de bases de datos almacenen sus datos exclusivamente en la memoria.
Poco después del lanzamiento, MemSQL agregó soporte general para un formato de almacenamiento basado en columnas en disco para trabajar junto con el almacén de filas en memoria. [6] Las disminuciones en el costo de la memoria se ralentizaron con el tiempo, y el mercado de sistemas de bases de datos puramente en memoria no se materializó en gran medida, con una creciente demanda de cargas de trabajo OLAP basadas en disco. Por lo tanto, con el tiempo, el almacén de columnas de MemSQL se convirtió en un foco importante y una característica crucial para los clientes.
El 27 de octubre de 2020, MemSQL cambió su nombre a SingleStore para reflejar un cambio de enfoque que se aleja de las cargas de trabajo exclusivamente en memoria. El nuevo nombre destaca el objetivo de lograr un formato de almacenamiento universal capaz de admitir casos de uso tanto transaccionales como analíticos. [7]
Arquitectura
Formatos de tabla de filas y columnas
SingleStore puede almacenar datos en tablas orientadas a filas ("almacenes de filas") o tablas orientadas a columnas ("almacenes de columnas"). El formato utilizado lo determina el usuario al crear la tabla.
Las tablas Rowstore, como su nombre lo indica, almacenan información en formato de fila, que es el formato de datos tradicional utilizado por los sistemas RDBMS . Los almacenes de filas están optimizados para consultas de inserción, actualización o eliminación de singleton o pequeñas y están más estrechamente asociados con los casos de uso de OLTP (transaccionales). Los datos de las tablas del almacén de filas se almacenan completamente en la memoria, lo que hace que las lecturas aleatorias sean rápidas, con instantáneas y registros de transacciones que se conservan en el disco.
Los almacenes de columnas están optimizados para consultas SELECT complejas, normalmente asociadas con OLAP (análisis) y casos de uso de almacenamiento de datos. Por ejemplo, un gran conjunto de datos clínicos para el análisis de datos se almacena mejor en formato de columnas, ya que las consultas que se ejecutan en él suelen ser consultas ad hoc en las que los agregados se calculan sobre un gran número de elementos de datos similares. Los datos de las tablas de almacén de columnas se almacenan en el disco, lo que admite lecturas secuenciales rápidas y una compresión que suele alcanzar entre 5 y 10 veces.
Indexación
En lugar del índice de árbol B tradicional, los almacenes de filas SingleStore utilizan skiplists optimizados para un procesamiento rápido y sin bloqueos en la memoria. [ cita requerida ] Columnstores almacenan datos indexados en segmentos ordenados, con el fin de maximizar la compresión en el disco y lograr escaneos ordenados rápidos. SingleStore también admite el uso de índices hash como índices secundarios para acelerar determinadas consultas.
Arquitectura distribuida
Una base de datos SingleStore se distribuye en muchas máquinas de productos básicos. Los datos se almacenan en particiones en los nodos hoja y los usuarios se conectan a los nodos agregadores. [1] Se instala una sola pieza de software para el agregador SingleStore y los nodos hoja; los administradores designan la función de cada máquina en el clúster durante la configuración. Un nodo agregador es responsable de recibir consultas SQL, dividirlas en nodos hoja y agregar los resultados al cliente. Un nodo hoja almacena los datos de SingleStore y procesa las consultas de los agregadores. Toda la comunicación entre los agregadores y los nodos hoja se realiza a través de la red mediante SQL. SingleStore utiliza particiones hash para distribuir los datos de manera uniforme entre el número de nodos hoja. [8]
Ingesta en tiempo real
Las canalizaciones de SingleStore permiten la ingesta de datos en tiempo real. Una canalización es un conector nativo para fuentes de datos como Apache Kafka , Apache Spark , buckets de Amazon S3 , Microsoft Azure Blob Storage o archivos en disco. Pipeline introduce datos en el sistema a alta velocidad. Debido a las listas de omisión sin bloqueo, las consultas pueden recuperar los datos tan pronto como llegan, pero no se bloquean para que continúen mientras se importan los datos.
Durabilidad
La durabilidad del almacén de filas en memoria se implementa con un registro de escritura anticipada e instantáneas, similar a los puntos de control. Con la configuración predeterminada, tan pronto como se reconozca una transacción en la memoria, la base de datos escribirá de forma asincrónica la transacción en el disco tan rápido como el disco lo permita. [9]
El almacén de columnas en el disco en realidad está encabezado por una estructura similar a un almacén de filas en la memoria, indexada mediante una lista de omisión. Esta estructura tiene las mismas garantías de durabilidad que el almacén de filas SingleStore. Aparte de eso, el almacén de columnas es duradero, ya que sus datos se almacenan en el disco.
Replicación
Un clúster de SingleStore se puede configurar en modo "Alta disponibilidad" (HA), donde cada partición de datos se crea automáticamente con versiones maestra y esclava en dos nodos hoja separados. En el modo HA, los agregadores envían transacciones a las particiones maestras, que luego envían registros a las particiones esclavas. En el caso de una falla maestra inesperada, las particiones esclavas se convierten en particiones maestras, en una operación completamente en línea sin tiempo de inactividad.
Formatos de distribución
SingleStore se puede descargar de forma gratuita y ejecutar en Linux para sistemas de hasta 4 nodos hoja de 32 gigas de RAM cada uno; Se requiere una licencia Enterprise para implementaciones más grandes y para el soporte oficial de SingleStore. Los clústeres de SingleStore se pueden administrar en contenedores mediante el operador SingleStore Kubernetes. SingleStore también está disponible como un servicio administrado llamado SingleStore Managed Service, disponible en varias regiones en Google Cloud y Amazon Web Services, con una implementación de Microsoft Azure prometida para un futuro próximo. El motor subyacente y el rendimiento potencial del sistema son idénticos en todos los formatos de distribución.
SingleStore se envía con un conjunto de herramientas de instalación, administración y monitoreo llamadas SingleStore Tools. Al instalar SingleStore, se pueden utilizar herramientas para configurar la base de datos distribuida de SingleStore en todas las máquinas. SingleStore también proporciona una interfaz de usuario de administración y consultas basada en navegador llamada SingleStore Studio, que proporciona procesamiento de consultas y monitoreo de la base de datos, y muestra detalles informativos y de salud sobre el clúster en ejecución.
Ver también
- Comparación de sistemas de gestión de bases de datos relacionales
- Comparación de sistemas de gestión de bases de datos relacionales de objetos
- Sistema de administración de base de datos
- Lista de sistemas de gestión de bases de datos relacionales
- Lista de DBMS orientados a columnas
- Lista de bases de datos en memoria
- Lista de bases de datos que utilizan MVCC
- Procesamiento híbrido transaccional / analítico
Referencias
- ↑ a b Martes (14 de agosto de 2012). "Arquitectura MemSQL - La rápida (MVCC, InMem, LockFree, CodeGen) y familiar (SQL)" . Alta escalabilidad . Consultado el 13 de agosto de 2019 .
- ^ "MemSQL" . Consultado el 29 de septiembre de 2017 .
- ^ "MemSQL ahora es SingleStore" . businesswire.com (Comunicado de prensa). San Francisco . Archivado desde el original el 9 de abril de 2021 . Consultado el 9 de marzo de 2021 .
- ^ Ravita, Domenic (21 de octubre de 2020). "MemSQL es ahora SingleStore" . Archivado desde el original el 9 de abril de 2021.
- ^ Frenkiel, Eric (2013). "MemSQL incluye 2.0. Escala la base de datos en memoria en cientos de nodos, miles de núcleos" (publicado el 23 de abril de 2013 ) . Consultado el 23 de abril de 2013 .
- ^ https://www.singlestore.com/blog/celebrating-memsql-availability-two-years-in/
- ^ https://www.singlestore.com/blog/memsql-singlestore-then-there-was-one/
- ^ "Introducción a MemSQL | DBMS 2: Servicios del sistema de gestión de bases de datos" .
- ^ "Uso de durabilidad y recuperación" . docs.memsql.com . Consultado el 19 de enero de 2018 .
enlaces externos
- Página web oficial
- Artículo de la semana laboral