Sto cercando di implementare un CF in Cassandra che ha file molto lunghe (da centinaia di migliaia a milioni di colonne per riga).Prestazioni di Cassandra per file lunghe
Utilizzando completamente dati fittizi, ho inserito 2 milioni di colonne in una singola riga (uniformemente distanziata). Se eseguo un'operazione a slice per ottenere 20 colonne, noterò un notevole peggioramento delle prestazioni man mano che si esegue l'operazione slice più in basso nella riga.
Con la maggior parte delle colonne, mi sembra di essere in grado di servire fino risultati fetta in 10-40ms, ma come si ottiene verso la fine della fila, prestazioni colpisce il muro, con tempi di risposta graduale aumento dal 43 ms al 1.800.000 marchi a 214ms a 1.900.000 e 435ms a 1.999.900! (Tutte le fette sono di uguale larghezza).
Non riesco a spiegare perché c'è un enorme degrado delle prestazioni quando arrivi alla fine della fila. Qualcuno può fornire qualche indicazione su ciò che Cassandra sta facendo internamente per fare un tale ritardo? Il caching delle righe è disattivato e praticamente tutto è un'installazione predefinita di Cassandra 1.0.
Si suppone che sia in grado di supportare fino a 2 miliardi di colonne per riga, ma a questo ritmo di incremento delle prestazioni si intende che non può essere utilizzato per file molto lunghe in una situazione pratica.
Molte grazie.
Attenzione, lo sto colpendo con 10 richieste in parallelo alla volta, motivo per cui sono un po 'più lento di quanto mi aspetterei in ogni caso, ma è un test corretto in tutte le richieste e anche solo eseguendole tutte in serie c'è questo strano degrado tra il 1.800.000 e il 190000 ° record.
Ho anche notato ESTREMAMENTE scarse prestazioni durante l'esecuzione di sezioni inverse per un singolo elemento con appena 200.000 colonne per riga: query.setRange (end, start, false, 1);
Grazie per la risposta psanford! Mi conduce nella direzione corretta e ora ho trovato qual era il problema (vedi sotto) – agentgonzo
Sai se questo è ancora vero per la versione corrente 1.1.7? – Sisso