Domanda

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

In caso contrario, puoi dirmi come dovrei archiviare i file? Vorrei continuare a usare Cassandra perché è tollerante ai guasti e utilizza l'auto-replicazione tra i nodi.

Grazie per l'aiuto.

È stato utile?

Soluzione

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 tuoi file sono <10 MB, dovresti stare bene, assicurati di limitare la dimensione del file o di rompere i file di grandi dimensioni in blocchi.

Altri suggerimenti

Dovresti stare bene con file di 10 MB. In effetti, DataStax Brisk mette un filesystem in cima a Cassandra se non sbaglio: http://www.datastax.com/products/enterprise.

(Non sono associato a loro in alcun modo, questo non è un annuncio)

Come nuove informazioni, Netflix fornisce utilità per il loro cliente Cassandra chiamato ASTYANAX Per archiviare i file come negozi di oggetti gestiti. Descrizione ed esempi possono essere trovati qui. Può essere un buon punto di partenza scrivere alcuni test usando Astyanax e valutare Cassandra come archiviazione di file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top