2009-12-04 5 views
10

Sto valutando una piattaforma di archiviazione per un progetto imminente e torno a tornare a Cassandra. Per questo progetto perdere qualsiasi quantità di dati inaccettabile. Finora abbiamo utilizzato un database relazionale (Microsoft SQL Server), ma i dati sono così diversi e grandi che è diventato un problema da archiviare e interrogare.Cassandra è adatto per l'uso come archivio dati principale?

Cassandra è sufficientemente robusto da essere utilizzato come archivio dati principale? O dovrebbe essere usato solo per rispecchiare i dati esistenti per accelerare l'accesso?

risposta

9

Aneddoticamente: sì, Twitter, Digg, Ooyala, SimpleGeo, Mahalo e altri utilizzano o si spostano a Cassandra per un archivio dati principale (http://n2.nabble.com/Cassandra-users-survey-td4040068.html).

Tecnicamente: sì; oltre a supportare la replica (anche a più datacenter), ogni nodo di Cassandra ha un log di commit fsync per assicurarsi che le scritture siano durature; da lì le scritture vengono trasformate in SSTables che sono immutabili fino alla compattazione (che combina più SSTables a vecchie versioni di GC). Snapshotting è supportato in qualsiasi momento, incluso lo snapshot automatico prima della compattazione.

+0

Sapevo di Digg e Facebook, ma non sapevo quanto fosse maturo. Grazie! –

3

Se utilizzare Cassandra per l'applicazione o meno dipende esclusivamente dai carichi di lavoro dei dati. Cassandra è ottimizzato per i carichi di lavoro ad alta intensità di scrittura, pertanto è adatto per le applicazioni in cui è necessario inserire una grande quantità di dati (ad esempio informazioni sulla registrazione dell'infrastruttura su Facebook).

Se tuttavia si richiedono recuperi veloci e la velocità di inserimento non è un problema, allora forse dovresti dare un'occhiata a HBase (che è ottimizzato per i carichi di lavoro ad alta intensità di lettura).