2010-03-29 16 views
5

Sono interessato a creare un portale sui servizi cassandra, poiché ho affrontato alcuni problemi di prestazioni e di dimensioni a partire da 1 milione di record. Definitivamente, potrebbe essere risolto, ma sono interessato ad altre opzioni.Cassandra e asp.net (C#)

I miei problemi principali è il costo di aggiornamento di tutti gli indici necessari, per rendere la lettura veloce.

In primo luogo, Cassandra è un buon metodo per i programmatori di ASP.net? Voglio dire, forse ci sono altri progetti, che vale la pena dare un'occhiata

E in secondo luogo, puoi fornire qualche esempio di documentazione su come iniziare con la programmazione di cassandra da C#?

+1

http://teddziuba.com/2010/03/i-cant-wait-for-nosql-to-die.html. –

+0

http://codebetter.com/blogs/karlseguin/archive/2010/03/29/nosql-for-the-rest-of-us.aspx –

+2

Mi raccomando contro l'utilizzo di Cassandra in un ambiente di produzione. – Pierreten

risposta

11

da quando ho affrontato problemi di prestazioni e di scalabilità a partire da 1 milione di record.

Forse il vostro disegno non era buona, NoSQL non è una bacchetta magica per cattivo design. Dispongo di miliardi di righe e il 95% della risposta è inferiore al secondo. Inoltre, cosa intendi aggiornando gli indici, intendi l'aggiornamento delle statistiche o la ricostruzione degli indici?

+0

Sono felice che funzioni per voi. Definitivamente, questo è il più possibile (e il modo più economico) per me. Tuttavia, ha avuto il primo numero un mese fa, ha trovato un articolo su come utilizzare le statistiche sugli indici, applicato al nostro database e tutto andava bene ... per 2 settimane. Quindi, voglio dare un'occhiata e scoprire quali opzioni sono – st78

+0

hai abilitato le statistiche di aggiornamento automatico o hai un lavoro che aggiornerà le statistiche? – SQLMenace

3

da quando ho affrontato le prestazioni e la scala problemi a partire da 1 milione di record.

Si sa, il milione di marchi per database moderni è dove non si tratta di qualcosa di "totalmente ridicolmente piccolo" in cui è possibile ignorare effettivamente sapere cosa si fa. Sotto un milione è "piccolo". Ho una tabella di 800 milioni di righe e ho un sacco di SQL in esecuzione con esso - nessun problema.

In primo luogo, è Cassandra è buon modo per programmatori asp.net?

vorrei suggerire un altro libro di base su SQL, leggendo la documentazione e, eventualmente, gettando alcuni componenti hardware sul problema. Come in: avere un hardware totalmente scadente ucciderà tutti i sistemi di gestione dei dati.

1

Se si vuole fare qualcosa di nuovo, invece di andare su noSQL, si potrebbe prendere in considerazione la possibilità di provare un cluster di database.

L'idea è quando due macchine cercano ciascuna metà del database originale allo stesso tempo, si ha la metà del tempo di ricerca senza riprogettare completamente il database esistente.

+0

Grazie, sto pensando di convincere il cliente a provare Microsoft Azure: sembra essere semplice iniziare a usarlo – st78

+0

Credo che intendessi dire "prova a sharare" il tuo database. Il cluster non aiuterà il tuo problema di prestazioni. http://en.wikipedia.org/wiki/Shard_(database_architecture) – BozoJoe

2

Non si può davvero parlare della documentazione di Cassandra. C'è una miriade di tutorial parziali sul web.
Si consiglia di installare Linux in una macchina virtuale, perché il processo di compilazione di Windows è piuttosto impegnativo, per non dire altro.
(http://www.virtualbox.org, http://www.ubuntu.com)

Ecco il howto:
http://www.ridgway.co.za/archive/2009/11/06/net-developers-guide-to-getting-started-with-cassandra.aspx
Si noti che la Cassandra SVN URL e il codice di esempio sono cambiate da quando la scrittura di questo tutorial.

Ecco un altro client C#:
http://github.com/mattvv/hectorsharp

Ed ecco alcuni esempi di codice:
http://www.copypastecode.com/26752/

Nota che è necessario scaricare l'ultima Java Development Kit (JDK) da Sun per Linux. Non è nei repository di Ubuntu 10.04. allora avete bisogno di digitare

export JAVA_HOME="/path/to/jdk" 

in ordine per Cassandra a trovare l'installazione di Java.


Si potrebbe anche voler dare un'occhiata a:
http://en.wikipedia.org/wiki/NoSQL

Soprattutto la sezione tassonomia è interessante.
Assicurati che Cassandra sia il tipo giusto di soluzione NoSQL per il tuo problema, ad es. usa Neo4J se il tuo problema è in realtà un problema con il grafico.

Inoltre, è necessario assicurarsi che la soluzione NoSQL sia conforme ACID.
Ad esempio, Neo4J è l'unico motore grafico NoSQL compatibile con ACID.

Edit: Ecco una guida jumpstart per Windows, senza compilare:
http://coderjournal.com/2010/03/cassandra-jump-start-for-the-windows-developer/
http://www.ronaldwidha.net/2010/06/23/running-cassandra-on-windows-first-attempt/
http://www.yafla.com/dforbes/Getting_Started_with_Apache_Cassandra_a_NoSQL_frontrunner_on_Windows/

2

Invece di Cassandra si potrebbe dare un'occhiata a: ravendb. Presumibilmente è un negozio di documenti realizzato con e creato per .Net. Ha l'integrazione di Linq ed è (ancora presumibilmente) molto veloce.

Come con qualsiasi nuova tecnologia, leggere se ti aiuta con il caso specifico, e verificare se è provato tecnologia (Hanno client mainstream che lo utilizzano).

Prima di entrare in questa rotta, vedere se non è possibile ottimizzare prima la soluzione corrente. Verifica se le tue query sono veloci, se gli indici sono eseguiti correttamente e se non riesci a rimuovere il carico aggiungendo la cache.

Ultimo dado, non ultimo, se l'aggiunta di alcuni processori alla macchina SQL potrebbe risolvere i problemi, in genere è una soluzione molto più economica.

3

Se si utilizza Cassandra per l'applicazione .NET, consultare Aquiles. L'ho sviluppato in base alle esigenze della mia azienda. Se lo trovi utile o hai bisogno di aiuto, fammelo sapere.