Red de conocimiento informático - Material del sitio web - Cómo elegir una base de datos NoSQL en memoria según el rendimiento

Cómo elegir una base de datos NoSQL en memoria según el rendimiento

El contenido principal de este artículo es probar el rendimiento de diferentes bases de datos NoSQL en la herramienta de prueba YCSB. Seleccionamos tres sistemas populares de gestión de bases de datos en memoria: Redis, Tarantool y CouchBase, así como el sistema de almacenamiento en caché Memchached. Aunque Memchached no es un sistema de gestión de bases de datos, suele utilizarse como sistema de almacenamiento rápido.

El entorno de prueba consta de un grupo de ordenadores de 4 máquinas virtuales en la nube de Microsoft Azure. Estas máquinas virtuales pertenecen al mismo centro de datos. nosql-1 y nosql-2 se usan para probar Tarantool y CouchBase, nosql-3 y nosql-4 se usan para probar Redis, Azure Redis Cache y Memcached. Estas máquinas tienen las correspondientes bases de datos y proyectos de prueba instalados y configurados. La configuración de la máquina virtual es CPU A3 de 4 núcleos, 7 GB de RAM y 120 GB de disco duro.

Base de datos y configuración

El sistema de administración de bases de datos en memoria almacenará todos los datos en la memoria principal y realizará operaciones de actualización continua en el disco; cada modificación de datos se registrará a través de registros. Garantizar la continuidad. Dado que el registro se escribe solo como anexo, rara vez encuentra problemas de cuello de botella; la lectura/escritura no causa movimientos frecuentes del cabezal del disco;

Redis se lanzó en 2009 y la última versión es 3.0.5. La versión que usamos aquí es 3.0.4, que usa el modo de solo agregar (solo agregar) para la administración de datos y se usa junto con la herramienta Microsoft Azure Redis Cache.

Tarantool es un sistema de gestión de bases de datos NoSQL de código abierto. Estamos usando Tarantool 1.6.7-126-gb35aff9 y el registro usa el modo de escritura anticipada. Memcached es un sistema de almacenamiento en caché de memoria distribuida. Aquí se utiliza Memcached 1.4.14-0ubuntu9.

Couchbase Server es una base de datos orientada a documentos NoSQL distribuida de código abierto. La versión utilizada aquí es Couchbase 4.0.0-4047-1.

Herramienta de prueba YCSB

Yahoo! Cloud Serving Benchmark (YCSB) es una poderosa herramienta de prueba de rendimiento de bases de datos NoSQL que proporciona 6 tipos de cargas de trabajo principales, comenzando con la letra A a la F. distinguir.

La carga A es responsable de las operaciones de actualización. El valor extremo es 50/50 operaciones de lectura y escritura, como el registro de operaciones recientes. La carga B es responsable de las operaciones de lectura. El valor extremo es 95/5 operaciones de lectura y escritura. Por ejemplo, si se utiliza para la gestión de etiquetas de imágenes, se realizan principalmente operaciones de lectura de etiquetas. Cargue C y cargue 100 operaciones de lectura, como las que se utilizan para obtener atributos de usuario. Load D realiza operaciones de inserción primero en entrar, primero en salir, como cuando el usuario lee los datos más recientes. Load E es responsable de la lectura de registros de rango pequeño en lugar de la lectura de un solo registro, como las sesiones de subprocesos. Load F es responsable de leer, modificar y escribir registros, como la gestión de la información del usuario.

Hicimos dos modificaciones de parámetros en el archivo de configuración: el recuento de registros de entrada de datos se configuró en 200000 y el recuento de operaciones de entrada de operaciones se configuró en 5000000. YCSB es una herramienta multihilo, la probaremos con 8, 16, 32, 64, 128 y 256 hilos. Haga clic aquí para descargar el script de prueba detallado.

Los siguientes gráficos de resultados de prueba utilizan colores para distinguir los objetos de prueba,

Tarantool (HASH) (azul)

Tarantool (TREE) (azul claro)

Redis (rojo)

Azure Redis Cache (naranja)

Memcached (verde)

CouchBase (negro)

Haga clic [aquí] para ver más imágenes.

Conclusión

Tarantool logró los mejores resultados en todas las pruebas de tipo de carga. Crea un motor de memoria sin bloqueos que opera de manera cooperativa y multitarea en lugar de exclusión mutua o procesamiento paralelo. Según el siguiente gráfico de rendimiento, llegamos a la conclusión de que el procesamiento de alto rendimiento de Tarantool es una de sus mayores fortalezas. Por tanto, en la mayoría de los casos, Tarantool es la mejor opción para los usuarios.