2012-01-12 10 views
18

Sto sviluppando una piattaforma php che farà un enorme uso di immagini, documenti e qualsiasi formato di file che mi verrà in mente quindi mi chiedevo se Cassandra è una buona scelta per le mie esigenze.Cassandra è utile per archiviare i file?

In caso contrario, puoi dirmi come devo archiviare i file? Mi piacerebbe continuare a usare cassandra perché è a tolleranza d'errore e utilizza la replica automatica tra i nodi.

Grazie per l'aiuto.

+0

Quanto sono grandi i file? –

+0

Non pensare che i file saranno più grandi di 10 MB – siannone

risposta

11

Dal cassandra wiki,

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. 

Quindi, se i file sono < 10 MB si dovrebbe andare bene, assicurati solo di limitare le dimensioni del file o di rompere file di grandi dimensioni in blocchi.

5

Si dovrebbe essere OK con file di 10 MB. Infatti, DataStax Brisk mette un filesystem in cima a Cassandra se non sbaglio: http://www.datastax.com/products/enterprise.

(non sto ad essi associati in alcun modo- non si tratta di un annuncio)

3

Come nuove informazioni, Netflix fornisce utilità per il client Cassandra chiamato astyanax per l'archiviazione di file come archivi di oggetti gestiti. Descrizione ed esempi possono essere trovati here. Può essere un buon punto di partenza per scrivere alcuni test usando astyanax e valutare Cassandra come archivio di file.