Cassandra Fréquentes En Lecture Et En Écriture Délais D'Attente
J'avais changé l'ensemble de la base de code de Thrift
à CQL
à l'aide de datastax java driver 1.0.1
et cassandra 1.2.6..
avec l'épargne, j'ai été fréquents délais d'attente depuis le début, je n'étais pas en mesure de poursuivre l'Adoption de CQL, tableaux conçus selon que j'ai eu de la réussite et moins de délais d'attente....
Avec qui j'ai pu insérer de données énorme qui n'ont pas de travail avec l'épargne...Mais après une étape, dossier de données autour de 3,5 GO. Je suis de fréquents écrire des exceptions d'expiration. même je n'ai même plus tôt de travail de cas d'utilisation de nouveau qui jette aussi de l'exception délai maintenant. SES ALÉATOIRE UNE FOIS TRAVAILLÉ NE FONCTIONNE PAS ENCORE, MÊME APRÈS UNE INSTALLATION FRAÎCHE.
CASSADNRA JOURNAL DU SERVEUR
c'est cassandra serveur partielle log DEBUG mode à l'époque, puis j'ai obtenu l'erreur :
Client exception est la suivante :
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)
Infrastructure :
16 GO machine avec 8 GO de segment donné à cassandra, i7..
Je suis en utilisant un SEUL nœud de cassandra avec cette yaml tordu pour les délais d'attente, tout le reste est par défaut :
- 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
CAS D'UTILISATION :
je suis en cours d'exécution d'un cas d'utilisation qui stocke les Combinaisons(mon projet de terminologie) de cassandra....Actuellement à des essais de stockage de 250 000 combinaisons avec 100 threads parallèles..chaque thread stocker une combinaison...véritable cas où j'ai besoin de l'appui de dizaines de millions de personnes mais qui aurait besoin d'un matériel différent et multi-nœud de cluster...
Dans le Stockage d'UNE combinaison prend 2sec et implique:
- 527 requêtes INSERT INTO
- 506 requêtes de mise à JOUR
- 954 requêtes SELECT
100 threads parallèles parallèles stockage de 100 combinaisons.
J'avais trouvé le comportement d'ÉCRIRE des délais d'attente aléatoire un certain temps, il travaille jusqu'à 200 000 de jeter des délais d'attente ET, parfois, ne pas travailler, même pour 10k combinaisons. ALÉATOIRE COMPORTEMENT.
OriginalL'auteur user2572801 | 2013-08-07
Vous devez vous connecter pour publier un commentaire.
J'ai constaté que lors de certains cassandra-stress les opérations de lecture, si je mets le taux de threads trop élevé, je vais obtenir que CL d'erreur. Envisager de baisser au cours de votre test le nombre de threads à quelque chose d'abordable pour votre piscine à soutenir dans le but de battre le
À mon avis, la modification de cassandra.yaml est pas toujours une bonne idée. Examiner les ressources matérielles de votre machines à travailler avec.
pour les œufs :
me donnera l'erreur, tandis que
fera en douceur le travail.
Espère que cela peut vous aider à vous les mecs.
P. S. lorsque vous lisez des tests d'essayer de répartir le lit même sur les données avec l'option '-pop dist=UNIFORME(1..1000000) " ou combien vous voulez.
OriginalL'auteur Mr'Black
Juste passé un peu de temps pour lire mes dev cassandra nœuds config yaml, parce que j'ai eu un problème similaire. Mon système bloqué et jette de temps quand j'ai essayé de charger environ 3 milliards de sha2 hachages pour mon dev nœud avec seulement 600 MO de RAM 😉
Je l'ai fixée par la diminution des tailles de mémoire cache et attend avant de rincer et ainsi de suite. De ce fait le nœud plus lent sur l'écrit, mais il a été plus stable. J'étais alors en mesure de charger autant de données que j'avais besoin.
Mais désolé je ne pouvais pas comprendre les options qui ont été.
Je me souviens que j'ai lu des docs sur l'optimisation des performances et la façon de calculer les valeurs correctes pour votre système basé sur des coeurs de cpu, ram, etc.
Le problème que j'avais était que les caches n'ont pas été assez rapide sur le disque, de sorte que son départ pour bloquer le tout. Après avoir dit, écrire plus souvent et de laisser les nouvelles d'attente de la demande, le nœud a été l'obtention de stable et d'importation a été d'obtenir un petit peu plus lent.
Il semble que les options par défaut de cassandra sont lourds de ram maschines avec beaucoup de cœurs dans un multi-nœud de cluster qui peut répartir la charge. Pour obtenir l'exécution locale de l'environnement de dev, vis vers le bas. Son dev env et pas de système de vie, prendre le temps de prendre un café ou deux 😉
Espoir qui aide à obtenir de la pensée dans la façon correcte
OriginalL'auteur Rene M.
De votre journal extrait, seulement 4 GO de mémoire a été donné à Cassandra, et il est plein. Qui est le plus probable que votre problème:
DEBUG [ScheduledTasks:1] 2013-08-07 15:08:09,434 GCInspector.java (line 121) GC for ParNew: 155 ms for 6 collections, 3230372760 used; max is 4277534720
max est 4277534720 == 4 GO tas. Vous devez aller dans votre cassandra-env.sh et de définir explicitement le max de tas et de nouvelles tailles de tas. Pour le nœud que vous avez décrit, 8 GO max tas, et 800 MB nouveau segment de mémoire sont probablement un bon point de départ.
OriginalL'auteur Zanson
J'ai également rencontré ce problème,
"Cassandra délai d'attente lors de écrire requête à la cohérence LOCAL_ONE (0 répliques) a reconnu l'écriture de plus de 1 exigé"
"Cassandra délai d'attente lors de lire requête à la cohérence LOCAL_ONE (0 répliques) a reconnu l'écriture de plus de 1 exigé".
J'ai eu affaire avec elle par modifier le paramètre de cassandra.yaml.
Recherche de "timeout" de cassandra.yaml,vous trouverez
read_request_timeout_in_ms: 5000
write_request_timeout_in_ms: 2000
En augmentant le nombre,et redémarrez le "cassandra -f".Mon problème a été résolu.
Espère que cela va vous aider aussi!
OriginalL'auteur David