MongoDB publicó otro benchmark realizado por United Software Associates.
Los puntos de referencia son una herramienta útil para evaluar rendimiento de la base de datos. Pero para ser útiles, deben ser transparentes y repetibles. Si no cumplen estas normas, los resultados son cuestionables.
En pruebas comparativas recientes, Couchbase y MongoDB adoptaron dos enfoques diferentes. Couchbase documentó claramente la configuración completa y incluía los resultados de cada prueba. MongoDB no lo hacía.
Los cuadros siguientes ilustran los distintos enfoques adoptados por Avalon Consulting, LLC y United Software Associates:
United Software Associates | Avalon Consulting, LLC | |
YCSB | ||
Entradas / Operaciones | 400M / 100M | 300M / 100M |
Valor Tamaño | Falta | 1K |
Tamaño del conjunto de datos | Falta | 286 GB |
Solicitar distribución | Zipfian | Uniforme |
Base de datos | ||
Nodos | Falta | MongoDB: 9 Servidor Couchbase: 9 |
Réplicas | Falta | 3 (1 primaria, 2 secundarias) |
Replicación | Falta | MongoDB: Async Servidor Couchbase: Async |
Persistencia | Falta | MongoDB: Async Servidor Couchbase: Async |
Memoria configurada (por nodo) | Falta | MongoDB: 30 GB Servidor Couchbase: 30 GB |
Tamaño total del conjunto de datos (con réplicas) | Falta | 858 GB |
Datos primarios residentes en memoria | Falta | 32% |
Versión | ||
Base de datos | MongoDB: 3.0.3 Servidor Couchbase: 3.0.2 |
MongoDB: 3.0.0 Servidor Couchbase: 3.0.2 |
Cliente | MongoDB: 3.0.0 Servidor Couchbase: 2.1.2 |
MongoDB: 2.1.3 Servidor Couchbase: 2.1.0 |
Hardware | ||
Servidores | Base de datos: 3 YCSB: 1 |
Base de datos: 9x AWS EC2 i2.2xlarge YCSB: 2-23x AWS EC2 r2.8xlarge |
Procesadores | Ambos: 2x 3.0GHz | Base de datos: 8 vCPU (2,5GHz) YCSB: 32vCPU (2,5GHz) |
Memoria | Ambos: 96 GB | Base de datos: 61 GB YCSB: 244 GB |
Almacenamiento | Ambos: 2x 960GB SSD | Base de datos: 2 SSD de 800 GB YCSB: 2 unidades SSD de 320 GB |
Red | Ambos: 10GbE | Ambos: Alto |
OS | Ambos: Ubuntu 14.10 | Base de datos: CentOS 6 YCSB: Amazon Linux |
OS | ||
Páginas Enormes Transparentes (THP) | Discapacitados | Discapacitados |
NUMA | Discapacitados | Discapacitados |
Espero que MongoDB y DataStax me ayuden a mejorar esta plantilla para futuros benchmarks.
Resultados de referencia de United Software Associates
No publicaron los resultados de todos pruebas, publicaron los resultados de una.
El benchmark indica que el número ideal de hilos para cada base de datos era de 150 o 350 en función de la carga de trabajo, pero no indica el número de hilos para los resultados publicados.
Carga de trabajo A Rendimiento
Hilos | MongoDB | Servidor Couchbase |
105 | Falta | Falta |
140 | Falta | Falta |
175 | Falta | Falta |
210 | Falta | Falta |
245 | Falta | Falta |
280 | Falta | Falta |
315 | Falta | Falta |
350 | Falta | Falta |
Resultados - Carga de trabajo A Latencia
Hilos | MongoDB | Servidor Couchbase |
105 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
140 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
175 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
210 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
245 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
280 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
315 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
350 | Leer: Falta Escribir: Falta |
Leer: Falta Escribir: Falta |
Resultados de referencia de Avalon Consulting, LLC
Publicaron los resultados de todos pruebas y el número de hilos para ellos.
Carga de trabajo A Rendimiento
Hilos | MongoDB | Servidor Couchbase |
105 | 61K | 110K |
140 | 65K | 141K |
175 | 67K | 154K |
210 | 70K | 170K |
245 | 74K | 193K |
280 | Latencia máxima superada | 238K |
315 | Latencia máxima superada | 245K |
350 | Latencia máxima superada | 252K |
Resultados - Carga de trabajo A Latencia
Hilos | MongoDB | Servidor Couchbase |
105 | Lectura: 1,42 ms Escribir: 2,05 ms |
Lectura: .78ms Escritura: .76ms |
140 | Lectura: 2,01 ms Escribir: 2,97 ms |
Lectura: .79ms Escritura: .78ms |
175 | Lectura: 3,16 ms Escribir: 3,54 ms |
Lectura: .89ms Escritura: .88ms |
210 | Lectura: 3,5 ms Escribir: 4,49 ms |
Lectura: .93ms Escritura: .92ms |
245 | Lectura: 4,19 ms Escribir: 5,38 ms |
Lectura: .92ms Escritura: .91ms |
280 | Latencia máxima superada | Lectura: .92ms Escritura: .92ms |
315 | Latencia máxima superada | Lectura: 1,06 ms Escritura: .99ms |
350 | Latencia máxima superada | Lectura: 1,22 ms Escribir: 1,22 ms |
Configuración de referencia
Un punto de referencia, si le interesa, debería responder a las siguientes preguntas:
- ¿Cuál era la configuración del hardware?
- ¿Cómo estaba configurado el sistema operativo?
- ¿Cuáles eran las versiones de la base de datos y del cliente?
- ¿Cómo se configuraron las bases de datos?
- ¿Cómo se configuró YCSB?
Entonces, ¿qué configuración le falta a este punto de referencia de United Software Associates?
- El número de nodos
- La configuración de réplicas (# de réplicas
- La configuración de la replicación (async o sync)
- La configuración de la persistencia (async o sync)
- El tamaño de los valores
- El tamaño del conjunto de datos
- El tamaño de la caché (por nodo)
- El tamaño del conjunto total de datos (incluidas las réplicas)
- Porcentaje de datos primarios residentes en memoria
- Los resultados de todas las ejecuciones
- El número de hilos para todas las ejecuciones publicadas
Además, el repositorio de GitHub al que se hace referencia en este libro blanco de United Software Associates no incluye la configuración del cliente para MongoDB, Cassandra o Couchbase Server.
¿Y qué pasa con los routers y servidores de configuración de MongoDB?
¿Fueron desplegados? En caso afirmativo, ¿dónde?
No lo sé porque este punto de referencia no incluye todos de la configuración. La primera referencia incluido más de la configuración, pero había una serie de errores. Con este punto de referencia, puede que hayan corregido los errores, pero no han incluido todos de la configuración.
Conclusión
Es importante que los puntos de referencia sean creíbles. Cualquiera debería ser capaz de reproducir un benchmark y validar sus resultados. Debe facilitarse toda la configuración y, preferiblemente, debe realizarse en una infraestructura en la nube. De lo contrario, los proveedores pueden manipular la configuración para que las comparaciones injustas parezcan justas.
Eso no ayuda a nadie.
Recursos
MongoDB + Evaluación comparativa de United Software Associates
Libro Blanco | Código
Couchbase + Avalon Consulting, LLC Benchmark
Libro Blanco | Código
Debatir sobre Noticias Hacker