avevo cambiato tutta la base di codice da Thrift
a CQL
utilizzando datastax java driver 1.0.1
e cassandra 1.2.6..
Cassandra frequente lettura e scrittura Timeout
con parsimonia mi è stato sempre timeout frequenti dall'inizio, non ero in grado di procedere ... Adottando CQL, tavoli progettato come per quello ho avuto successo e meno timeout ....
Con ciò sono riuscito a inserire dati enormi che non funzionavano con parsimonia ... Ma dopo una fase, la cartella di dati intorno a 3,5 GB. Sto ricevendo frequenti eccezioni di timeout di scrittura. anche io faccio di nuovo lo stesso caso d'uso di lavoro precedente che ora getta anche un'eccezione di timeout. LA SUA RANDOM ONCE LAVORATA NON FUNZIONA ANCHE ANCHE DOPO L'IMPOSTAZIONE FRESCO.
CASSADNRA SERVER LOG
questo è il server cassandra modalità DEBUG registro parziale allora il tempo ho ottenuto l'errore:
eccezione cliente è:
Caused by: com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during write query at consistency ONE (1 replica were required but only 0 acknowledged the write)
at com.datastax.driver.core.exceptions.WriteTimeoutException.copy(WriteTimeoutException.java:54)
at com.datastax.driver.core.ResultSetFuture.extractCauseFromExecutionException(ResultSetFuture.java:214)
at com.datastax.driver.core.ResultSetFuture.getUninterruptibly(ResultSetFuture.java:169)
at com.datastax.driver.core.Session.execute(Session.java:107)
at com.datastax.driver.core.Session.execute(Session.java:76)
Infrastruttura: macchina 16GB con 8GB mucchio dato a Cassandra, i7 .. Sto usando SINGLE cassandra nodo con questo YAML ottimizzato per il timeout, tutto il resto è di default:
- read_request_timeout_in_ms: 30000
- range_request_timeout_in_ms: 30000
- write_request_timeout_in_ms: 30000
- truncate_request_timeout_in_ms: 60000
- request_timeout_in_ms: 30000
Caso d'uso: Sono in esecuzione di un caso d'uso che memorizza Combinazioni (il mio progetto terminologia) in Cassandra .... attualmente testando la memorizzazione di 250 000 combinazioni con 100 filo threads..each parallelo memorizzare una combinazione ... vero e proprio caso ho bisogno di sostegno di decine di milioni, ma che avrebbe bisogno di hardware diverso e di cluster a più nodi ...
In Memorizzazione di combinazione dura circa 2 secondi e coinvolge:
- 527 INSERT INTO interroga
- 506 UPDATE domande
- 954 SELEZIONA interroga
100 fili paralleli paralleli memorizzazione 100 combinazioni.
Avevo trovato il comportamento di WRITE TIMEOUTS un po 'di tempo prima che funzionasse fino a 200.000, quindi buttava i timeout E a volte non funziona nemmeno per le combinazioni 10k. COMPORTAMENTO CASUALE.
Interrompere la registrazione a DEBUG e osservare cosa dice StatusLogger su INFO. – jbellis