Tarantool

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 25 de febrero de 2021; las comprobaciones requieren 7 ediciones .
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 .

Resumen

Base de datos

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):

Servidor de aplicaciones

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:

Historia

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]

Notas

  1. NoSQL importa Colonia 2013 Day2 Track3 05 Konstantin Osipov . Consultado el 18 de mayo de 2018. Archivado desde el original el 12 de marzo de 2017.
  2. Tarantool en Badoo: almacenamiento del historial de navegación. Informe de Anton Povarov en Tarantool Meetup . Consultado el 18 de mayo de 2018. Archivado desde el original el 19 de abril de 2021.
  3. Copia archivada . Consultado el 18 de mayo de 2018. Archivado desde el original el 16 de mayo de 2018.
  4. Premios HighLoad++: un premio que se implementó, implementó y finalmente implementó . habr.com. Consultado el 10 de diciembre de 2018. Archivado desde el original el 9 de diciembre de 2018.
  5. El arquitecto jefe de Tarantool DBMS dejó Mail.ru y anunció el "colapso del equipo" . Cnews.ru. Consultado el 1 de enero de 2020. Archivado desde el original el 1 de enero de 2020.

Enlaces