2016-04-25 2 views
5

यह Datastax कैसेंड्रा (दिल्ली शेयर बाजार) संस्करण पर है:कैसेंड्रा नोड्स, दूसरे के साथ संवाद नहीं कर सकते कारण ReadTimeout

मैं हो रही है 2.1.x: 4.8.5-1
यह मेल खाती है (मेरा मानना ​​है कि) कैसेंड्रा के लिए जब हमारे आवेदन से क्वेरी करने निम्न त्रुटियों की एक बहुत कुछ:

ReadTimeout: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'data_retrieved': False, 'required_responses': 1, 'consistency': 1}

इस अधिक में खुदाई; एक नमूना क्वेरी (प्रत्येक नोड पर स्थानीय रूप से cqlsh का उपयोग करके चलाएं) अंगूठी में 3 नोड्स पर लौटती है लेकिन बाकी के रीडटाइमआउट में विफल होती है। ऐसा लगता है कि प्रतिकृतियां प्रतिक्रिया के साथ केवल नोड्स की तरह होती हैं, जबकि शेष नहीं जानते कि उन्हें कैसे ढूंढें।

क्या कोई समस्या है या ज्ञात समस्या है मुझे इस समस्या को ठीक करने के लिए देखना चाहिए?

जब अन्य नोड विफल, मैं लॉग में यह त्रुटि दिखाई:

ERROR [MessagingService-Outgoing-/10.0.10.14] 2016-04-25 20:46:46,818 CassandraDaemon.java:229 - Exception in thread Thread[MessagingService-Outgoing-/10.0.10.14,5, 
main] 
java.lang.AssertionError: 371205 
     at org.apache.cassandra.utils.ByteBufferUtil.writeWithShortLength(ByteBufferUtil.java:290) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.composites.AbstractCType$Serializer.serialize(AbstractCType.java:393) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.composites.AbstractCType$Serializer.serialize(AbstractCType.java:382) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.filter.ColumnSlice$Serializer.serialize(ColumnSlice.java:271) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.filter.ColumnSlice$Serializer.serialize(ColumnSlice.java:259) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.filter.SliceQueryFilter$Serializer.serialize(SliceQueryFilter.java:503) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.filter.SliceQueryFilter$Serializer.serialize(SliceQueryFilter.java:490) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.SliceFromReadCommandSerializer.serialize(SliceFromReadCommand.java:168) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.ReadCommandSerializer.serialize(ReadCommand.java:143) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.db.ReadCommandSerializer.serialize(ReadCommand.java:132) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.net.MessageOut.serialize(MessageOut.java:121) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.net.OutboundTcpConnection.writeInternal(OutboundTcpConnection.java:330) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.net.OutboundTcpConnection.writeConnected(OutboundTcpConnection.java:282) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 
     at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:218) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131] 

Nodetool स्थिति उत्पादन

Datacenter: primary 
======================= 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address  Load  Tokens Owns Host ID        Rack 
UN 10.0.10.224 557.95 GB 1  ?  d1b984b0-50d4-4faa-b349-08bc0cf36447 RAC1 
UN 10.0.10.225 740.11 GB 1  ?  16ab3c8c-476e-46c2-837c-6dbb89b7d40d RAC1 
UN 10.0.10.12 748.23 GB 1  ?  4127f0d7-6bd0-4dc8-b6a0-3b261e55b44e RAC1 
UN 10.0.10.45 629.27 GB 1  ?  f4499c5d-f892-43b8-97f3-dcce5be51fb8 RAC2 
UN 10.0.10.13 592.57 GB 1  ?  41b58044-942d-4e77-a8de-95495b88a073 RAC1 
UN 10.0.10.14 616.45 GB 1  ?  d2b568fb-13e1-4ff7-a247-3751a8ca49cf RAC1 
UN 10.0.10.15 623.23 GB 1  ?  fb10e521-8359-409b-bfd8-b27829157a80 RAC1 
UN 10.0.10.21 538.56 GB 1  ?  72288b4c-bd1d-4398-9d95-5af312c2f904 RAC2 
UN 10.0.10.25 616.63 GB 1  ?  4a8f04ff-a198-44d1-baf4-72cc430cd8a9 RAC2 
UN 10.0.10.218 562.98 GB 1  ?  c00c375d-90bb-48c5-a8d0-7102a13db468 RAC2 
UN 10.0.10.219 632.58 GB 1  ?  1e2ea144-35bd-412b-89b5-41544a347a75 RAC2 
UN 10.0.10.220 746.85 GB 1  ?  d40f59c1-430a-4d96-9d7e-1e846b8eb1fc RAC2 
UN 10.0.10.221 575.89 GB 1  ?  7e407d6b-2bd5-43b4-9116-96ee72a926b2 RAC2 
UN 10.0.10.222 639.98 GB 1  ?  bfd04ab8-7679-4474-8d47-984950bdd2c7 RAC1 
UN 10.0.10.223 652.58 GB 1  ?  6366cd3e-7910-40bb-8a12-926c53adf95b RAC1 

इस दावे के लिए कोड यहाँ है:

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.cassandra/cassandra-all/2.1.1/org/apache/cassandra/utils/ByteBufferUtil.java?av=f#290

  • system.local या system.peers तालिकाओं को देखते समय कोई स्पष्ट स्कीमा मेल नहीं है। कुछ नोड्स
+0

क्या आप नोडेटूल स्थिति के परिणाम साझा कर सकते हैं यह देखने के लिए कि क्या सभी अंगूठियां क्लस्टर को सही तरीके से देख रही हैं? देखें कि परिणाम सभी नोड्स पर संगत हैं या नहीं। –

+0

@AlecCollier जोड़ा – c4urself

+0

आप इसे हर प्रश्न और प्रत्येक तालिका के लिए देख रहे हैं? यदि आप ब्रांड कीपस्पेस/टेबल बनाते हैं और इसे क्वेरी करते हैं तो क्या होता है। – phact

उत्तर

4

आप शायद 64K अधिकतम कुंजी आकार की सीमा तक पहुंच गए हैं, आपके आवेदन कोड के लिए http://wiki.apache.org/cassandra/FAQ#max_key_size

देखो, शायद किसी को, एक प्राथमिक कुंजी के रूप कैसेंड्रा 371,205 बाइट लंबा डेटा भेजने शायद किसी को अपने आवेदन मैं डॉन 'दरार की कोशिश कर रहा टी पता नहीं है, क्योंकि प्राथमिक कुंजी के रूप में अत्यधिक संभावना 370k डेटा समझदार है, इसे अपने एप्लिकेशन कोड में प्रतिबंधित करें,

मुझे नहीं पता कि इस बारे में कोई बग या फिक्स या वर्कअराउंड मौजूद है या नहीं।

+1

प्रश्न पूछने और डिबगिंग के बीच में, मुझे एप्लिकेशन कोड का एक टुकड़ा मिला जो हास्यास्पद रूप से लंबे समय तक डालने की कोशिश कर रहा था कुंजी, उत्तर के लिए धन्यवाद! – c4urself

0

1. से

  • nodetool describecluster रिटर्न UNREACHABLE अपने प्रतिकृति कारक की जाँच करें। 2. विभिन्न स्थिरता स्तर के साथ जांचें। 3. अधिकतर कॉन्फ़िगरेशन आपको गलत किया जा सकता है कि आप केवल एक टोकन प्रति नोड देते हैं। यदि आपके पास प्रति नोड 256 टोकन हैं तो कैसंड्रा प्रत्येक नोड को लोड वितरित करता है।

  • संबंधित मुद्दे