Tarantool | |
---|---|
Tipo de | No SQL |
Autor | VK |
Desarrollador | VK |
Escrito en | xi |
Sistema operativo | Linux , FreeBSD , mac OS |
Primera edición | 2008 |
ultima versión | 2.7.2 (21 de abril de 2021) |
Licencia | BSD simplificado |
Sitio web | taranotool.io |
Tarantool es una plataforma informática en memoria de esquema de datos flexible para la creación eficiente de aplicaciones de alta carga. Incluye base de datos y servidor de aplicaciones en Lua .
Tiene una alta velocidad en comparación con los DBMS tradicionales, teniendo las mismas propiedades: persistencia , ACID transaccional , maestro-esclavo, replicación maestro-maestro .
Lenguaje de consulta:
Tecnologías de almacenamiento:
Taples (tuplas) se utilizan para almacenar datos. Esta es una matriz con datos que no están escritos. Las tuplas o toques se combinan en espacios. El espacio es un análogo del mundo de SQL, una tabla. Un espacio es una colección de grifos y un grifo es una colección de campos.
Los campos pueden ser de uno de los siguientes tipos:
Escalar/Compuesto | Tipo de paquete de mensajes | tipo lua | Ejemplo |
---|---|---|---|
escalar | nulo | "nulo" | msgpack.NULL |
escalar | booleano | booleano | verdadero |
escalar | cuerda | cuerda | A B C |
escalar | entero | número | 12345 |
escalar | punto flotante de precisión doble | número | 1.2345 |
compuesto | matriz asociativa | "tabla" con claves de cadena | {"a": 5, "b": 6} |
compuesto | formación | "tabla" con teclas numéricas | [1, 2, 3, 4, 5] |
compuesto | matriz de bytes | cdatos |
Las tuplas se organizan en espacios (espacio o tablas). Para cada espacio se especifica la tecnología de almacenamiento (memtx o vinilo).
El espacio debe estar indexado por la clave principal. También se admite un número ilimitado de claves secundarias.
La clave puede constar de uno o más campos.
Índices compatibles:
MessagePack se utiliza como formato de almacenamiento y protocolo de transferencia de datos .
La base de datos admite la replicación asíncrona y síncrona. La replicación se puede realizar de forma maestro-maestro.
El modelo ACL tradicional se utiliza para separar el acceso . Cada objeto tiene un propietario con acceso ilimitado. El propietario puede otorgar acceso al objeto a otros usuarios o roles. Un rol es, a su vez, un grupo de usuarios.
Lista de acciones delimitadas:
La base de datos admite procedimientos almacenados y disparadores escritos en lenguaje Lua .
Disparador global
Disparadores para espacios (tablas):
Para escribir la lógica de negocios se utiliza el lenguaje Lua y su compilador LuaJIT .
El servidor de aplicaciones contiene una API de alto nivel para acceder a la base de datos, el sistema de archivos y la red.
El usuario puede dinámicamente agregar, quitar, modificar funciones. La multitarea cooperativa se utiliza para ejecutar código simultáneamente .
Para ampliar el servidor de aplicaciones, las bibliotecas de Lua están disponibles tanto en el repositorio taranotool/rocks como compiladas a partir de las fuentes.
Lista de módulos taranotool estándar:
Módulos disponibles en el repositorio taranotool/rocks:
Mail.ru , una gran empresa de Internet en Rusia, inició el proyecto en 2008 invirtiendo y buscando programadores. Se contrató a un antiguo CTO de MySQL como líder del proyecto .
Tarantool se ha convertido en parte del propio portal Mail.ru y ahora se usa para contenido dinámico: sesiones de usuario, mensajes instantáneos y más, y también se usa como capa de almacenamiento en caché para bases de datos relacionales tradicionales como MySQL o PostgreSQL . [una]
En 2014, Tarantool también fue adoptado por las redes sociales Badoo y Odnoklassniki . [2]
En junio de 2014, investigadores del Instituto Politécnico de Coimbra y la Universidad de Coimbra (Portugal) realizaron la primera prueba de rendimiento independiente oficial de los sistemas NoSQL , que también incluía Tarantool. Las pruebas utilizaron la prueba YCSB estándar y otros sistemas NoSQL compitieron con Tarantool: Cassandra , HBase , Oracle NoSQL ( inglés ), Redis , Voldemort ( inglés ), Scalaris , Elasticsearch , MongoDB y OrientDB . [3]
En 2018, el jefe del equipo de desarrollo central de Tarantool, Konstantin Osipov, ganó los premios HighLoad++ . [4] En septiembre de 2019, dejó el equipo del proyecto en Mail.ru y creó su propia rama de desarrollo. [5]
Sistemas de gestión de bases de datos (DBMS) | |
---|---|
Servidor de cliente | |
Motores | |
Servidor de archivos |
Base de datos | |
---|---|
Conceptos | |
Objetos |
|
Llaves | |
sql |
|
Componentes |
Lúa | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
VK | ||
---|---|---|
Redes sociales y mensajeros |
| |
Proyectos de medios y entretenimiento. | ||
Educación |
| |
productos y servicio | ||
Dispositivos | ||
Servicios de ecosistema |
| |
Gente clave |
| |
Proyectos cerrados |
|