Pregunta

Estoy desarrollando una plataforma PHP que hará un gran uso de imágenes, documentos y cualquier formato de archivo que vendrá en mi mente, así que me preguntaba si Cassandra es una buena opción para mis necesidades.

Si no, ¿puedes decirme cómo debo almacenar archivos? Me gustaría seguir usando Cassandra porque es tolerante a fallas y usa auto-replicación entre nodos.

Gracias por la ayuda.

¿Fue útil?

Solución

Desde el Wiki de Cassandra,

Cassandra's public API is based on Thrift, which offers no streaming abilities 
any value written or fetched has to fit in memory. This is inherent to Thrift's 
design and is therefore unlikely to change. So adding large object support to
Cassandra would need a special API that manually split the large objects up 
into pieces. A potential approach is described in http://issues.apache.org/jira/browse/CASSANDRA-265.    
As a workaround in the meantime, you can manually split files into chunks of whatever 
size you are comfortable with -- at least one person is using 64MB -- and making a file correspond 
to a row, with the chunks as column values.

Entonces, si sus archivos son <10mb, debe estar bien, solo asegúrese de limitar el tamaño del archivo o dividir los archivos grandes en fragmentos.

Otros consejos

Debería estar bien con archivos de 10 MB. De hecho, DataStax Brisk coloca un sistema de archivos encima de Cassandra si no me equivoco: http://www.datastax.com/products/enterprise.

(No estoy asociado con ellos de ninguna manera, esto no es un anuncio)

Como nueva información, Netflix proporciona servicios públicos para su cliente de Cassandra llamado astyanax para almacenar archivos como tiendas de objetos manejados. La descripción y los ejemplos se pueden encontrar aquí. Puede ser un buen punto de partida escribir algunas pruebas usando Astyanax y evaluar a Cassandra como un almacenamiento de archivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top