versiones guia español descargar actualizar database nosql scalability riak

database - guia - qgis manual



¿Desventajas de almacenar datos binarios en Riak? (5)

¿Cuáles son los problemas, si alguno, de almacenar datos binarios en Riak?

¿Afecta el mantenimiento y el rendimiento de la agrupación?

¿Cuáles serían las diferencias de rendimiento entre el uso de Riak para esto en lugar de un sistema de archivos distribuido?


Personalmente no he notado ningún problema al almacenar datos como imágenes y documentos (tanto DOC como PDF) en Riak. No tengo números de rendimiento pero podría reunir algunos si los recuerdo.

Algo de nota, con Riak puede usar Luwak que proporciona una API para almacenar archivos de gran tamaño. Esto ha sido bastante útil.


Un problema puede ser que es difícil, si no imposible, utilizar JavaScript / reducir a través de sus datos binarios. Probablemente necesitarás Erlang para eso.


Con Riak, el máximo recomendado es de 2 MB por objeto. Por encima de eso, se recomienda utilizar Riak CS, que se ha probado con objetos de hasta 5TB (almacenados en Riak como objetos de 1MB) o dividiendo de forma natural su objeto grande en trozos de 2MB y vinculándolos con una clave y un sufijo.


El único problema que se me ocurre es almacenar datos binarios de más de 50MB que desaconsejan. El objetivo de Riak es solo eso:

Otra razón por la que uno podría elegir Riak es la flexibilidad en el modelado de sus datos. Riak almacenará los datos que le indique de una manera independiente del contenido, no impone tablas, columnas o integridad referencial. Esto significa que puede almacenar archivos binarios junto con más formatos transparentes para el programador como JSON o XML.

Fuente: Schema Design in Riak - Introducción


Para agregar a la excelente respuesta de @Oscar-Godson, es probable que experimente problemas con valores mucho más grandes que 50MB. Bitcask es más adecuado para valores que son de hasta unos KB. Si está almacenando valores grandes, es posible que desee considerar backends de almacenamiento alternativos, como innostore .

No tengo experiencia en el almacenamiento de valores binarios, pero tenemos un clúster de tamaño mediano en producción (5 nodos, del orden de 100M valores, 10 de TB) y estamos viendo errores frecuentes relacionados con la inserción y recuperación de valores que son 100 de KB en tamaño. El rendimiento en este caso es inconsistente, algunas veces funciona, otras no, por lo que si vas a hacer la prueba, prueba a escala.

También estamos viendo problemas con los valores grandes al ejecutar las consultas de reducción de mapa; simplemente exceden el tiempo de espera. Sin embargo, eso puede ser menos relevante para los valores binarios ... (como mencionó @ Matt-Ranney).

También vea la respuesta de @ Stephen-C aquí