2010-12-11 68 views
2

J'ai un peu de mal à extraire des données de Cassandra. Le principal problème est cette exception:Problème de chargement de range_slices à Cassandra

ERROR 15:45:07,037 Internal error processing get_range_slices 
java.lang.AssertionError: (162293240116362681726824838407749997815,35552186147124906726154103286687761342] 
     at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1251) 
     at org.apache.cassandra.service.StorageProxy.getRangeSlice(StorageProxy.java:428) 
     at org.apache.cassandra.thrift.CassandraServer.get_range_slices(CassandraServer.java:513) 
     at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.process(Cassandra.java:2868) 
     at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2555) 
     at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:167) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:619)

Alors, que dois-je faire? J'utilise describe_ring pour obtenir la topologie du réseau, puis je demande à chacun des noeuds dans le réseau describe_splits qui me donne les jetons que je devrais utiliser pour aller chercher les plages, puis je commence juste à les demander, en m'assurant que je mets le start_token et end_token sur les keyranges.

Des idées?

+0

ressemble à un bug. l'esprit nous montre du code? – Schildmeijer

+0

Bien sûr :-) http://pastebin.com/dsdMGZjW Il fait partie d'un LoadFunc Pig. Je charge plus tard les scissions avec ce code: http://pastebin.com/yGT5umYm – cdecker

Répondre

3

C'est un bug corrigé pour 0.6.9 et 0.7rc2.

+0

Très bien! Je devrais bien sûr avoir ajouté quelle version cela se passe. – cdecker