ScyllaDB

Summary

ScyllaDB es un almacén de datos de columnas anchas NoSQL distribuido de código abierto. Fue diseñado para ser compatible con Apache Cassandra y al mismo tiempo lograr rendimientos significativamente más altos y latencias más bajas. Admite los mismos protocolos que Cassandra (CQL y Thrift) y los mismos formatos de archivo (SSTable), pero es una implementación completamente reescrita, que utiliza el lenguaje C++20 en reemplazo de Java de Cassandra, y la biblioteca de programación asincrónica Seastar [1]​ en reemplazo de las técnicas clásicas de programación de Linux, como subprocesos, memoria compartida y archivos mapeados. Además de implementar los protocolos de Cassandra, ScyllaDB también implementa la API de Amazon DynamoDB. [2]

ScyllaDB
Información general
Tipo de programa sistema de gestión de bases de datos
Lanzamiento inicial 22 de septiembre de 2015
Licencia GNU General Public License
Información técnica
Programado en C++
Enlaces
Sitio web oficial
Repositorio de código

ScyllaDB utiliza un diseño fragmentado en cada nodo, lo que significa que cada núcleo de CPU maneja un subconjunto diferente de datos. Los núcleos no comparten datos, sino que se comunican explícitamente cuando es necesario. Los autores de ScyllaDB afirman que este diseño permite a ScyllaDB lograr un rendimiento mucho mejor en las máquinas NUMA SMP modernas y escalar muy bien con la cantidad de núcleos. Han medido hasta 2 millones de solicitudes por segundo en una sola máquina, [3]​ y también afirman que un clúster ScyllaDB puede atender tantas solicitudes como un clúster Cassandra 10 veces su tamaño, y hacerlo con latencias más bajas. [4]​ Las pruebas independientes no siempre han podido confirmar mejoras de rendimiento de 10 veces, y a veces han medido aumentos de velocidad más pequeños, como 2x. [5]​ Un estudio comparativo de 2017 de Samsung observó una aceleración de 10x en máquinas de alta gama: el estudio comparativo de Samsung informó que ScyllaDB superó a Cassandra en un clúster de máquinas de 24 núcleos por un margen de 10 a 37x, dependiendo de la carga de trabajo de YCSB. [6]

ScyllaDB está disponible en instalaciones locales, en los principales proveedores de nube pública o como DBaaS (ScyllaDB Cloud).

Historia

editar

ScyllaDB fue iniciada en diciembre de 2014 por la startup Cloudius Systems (más tarde rebautizada como ScyllaDB Inc.), anteriormente conocida por haber creado OSv. Los cofundadores fueron Avi Kivity y Dor Laor. ScyllaDB se lanzó como código abierto en septiembre de 2015, [7]​ bajo la licencia AGPL. Los empleados de ScyllaDB Inc. siguen siendo los principales codificadores detrás de Scylla, pero su desarrollo está abierto al público y utiliza repositorios públicos de GitHub y listas de correo públicas.

Referencias

editar
  1. Seastar is an advanced, open-source C++ framework for high-performance server applications on modern hardware.
  2. ScyllaDB Secures $25 Million to Open Source Amazon DynamoDB-compatible API
  3. ScyllaDB: Cassandra compatibility at 1.8 million requests per node by Don Marti (then a ScyllaDB Inc. employee), presented at the Fourteenth Annual Southern California Linux Expo, January 24, 2016.
  4. YCSB cluster benchmark, on the ScyllaDB Inc. website, read February 19, 2017.
  5. ScyllaDB vs Cassandra: towards a new myth?, by Marc Alonso and Thomas Mouron on the octo.com website, December 15, 2015.
  6. Rezaei, Arash; Guz, Zvika; Balakrishnan, Vijay (February 2017), ScyllaDB and Samsung NVMe SSDs Accelerate NoSQL Database Performance (PDF), Samsung Semiconductor Inc., p. 12, consultado el 7 de febrero de 2019 .
  7. "Cassandra Rewritten In C++, Ten Times Faster", September 22, 2015, Slashdot
  •   Datos: Q28957065