Witajcie,
Zagadnienie jest następujące.
Ładują Cassadnrę danymi (3 GB) następnie puszczam selecty na dane.
Łącznie mam 9 Casandr z potrójną replikacją. Wszystkie Casaandry są w jednym DataCenter.
Consistency level równy 1.
Testy:
Do testu używam jmetera z wtyczką do Cassandry.
Request to select odpytujący o wiersze dla których ID znajduje się w zadanej liście. W liście zadaję 100 losowych ID'ków i wszystkie będą w bazie. Losowość ID minimalizuje użycie Cache'a.
Tak wieć w odpowiedzi dostaję 100 itemów.
Przykład selectu:
select * from ceny.item_vat_posting_group where no in ('B7B7A6','B2DD05','A34751','B4BC7D','C0BB53','D07DCB','C03716','BB99DF','A975C2','C2AE27','AF621C','242448','B30CDA','508336','B44D6B','D07422','AC44EA','C6F34D','9B25AC','C4CF12','AC25BD','C3D9C7','AE7DB2','C5E03E','BF7AC1','B499B5','A7787E','645180','A9BEFE','AFFEA4','A88955','D95B50','B0F9FC','C09174','253953','9ED9CA','CAF896','536951','214502','427776','DA14CB','422282','A4B10A','C56BF5','B373E0','D171EF','C70607','B350AB','9D809B','586563','BF6308','A4BF5A','C42716','C3261C','C45B79','C6FE55','D1F0D4','C483B5','A67D59','DC5898','9BACAD','D9C6B0','D17DAE','D8D4F3','A05946','BBEBA8','A87B37','A13E97','BB7099','A3FC26','C461DF','309810','BF6306','D07603','C59F70','C5906C','A515ED','B50056','A8390E','A0CCC7','BF2713','C6EC7D','D7EB9D','A5D5EB','984076','D88F44','257058','D61635','D40CDE','B0A347','B7617F','D6277E','B4286F','C41F99','D84232','DC1636','BFF15D','DD0972','9B3138');
Scenariusz 1
Przy Requestach wysyłanych przez 100 wątków w czasie 10 minut Cassandra zwraca 5% błędów związanych z ReadTimeOuts.
Średni czas odpowiedzi to 100 ms.
Obciążenie procesorów na Cassandrach wynosi 40-50%.
Ponadto wykonywałem testy z większą ilością wątków co skutowało częstszym pojawianiem się błędów.
Scenariusz 2.
Przy Requestach wysyłanych przez 4 wątki i w czasie 24 godzin błędy również się pojawiały +/- 10 błędów na 100 000 requestów.
Obciążenie procesorów na Cassandrach wynosi 4-5%.
W załaczniku zamieszczam konfigurację Cassandry.
Treść błędu
Cassandra timeout during read query at consistency LOCAL_ONE (1 responses were required but only 0 replica responded)
com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra timeout during read query at consistency LOCAL_ONE (1 responses were required but only 0 replica responded)
at com.datastax.driver.core.exceptions.ReadTimeoutException.copy(ReadTimeoutException.java:69)
at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:258)
**PROŚBA
- Czy timeout'y które występują wynikaja z samej architektury Cassandry czy też niewłaściwej konfiguracji?**
Będę mega wdzięczny za wskazówki / pomoc,