Exception Cassandra频繁读取超时错误

Exception Cassandra频繁读取超时错误,exception,timeout,cassandra,Exception,Timeout,Cassandra,我是新来的卡桑德拉只知道它的基本知识。我在卡桑德拉经常遇到例外情况。我使用的是thrift API单节点cassandra。我主要是写东西,但那些涉及现有的检查 我尝试将read\u request\u timeout\u in\u ms从10秒增加到一个非常大的数值:9480秒。然后我也得到了超时错误。我不知道这背后的确切原因 这里是stacktrace: org.apache.thrift.transport.TTransportException: java.net.SocketTimeo

我是新来的卡桑德拉只知道它的基本知识。我在卡桑德拉经常遇到例外情况。我使用的是thrift API单节点cassandra。我主要是写东西,但那些涉及现有的检查

我尝试将
read\u request\u timeout\u in\u ms
从10秒增加到一个非常大的数值:9480秒。然后我也得到了超时错误。我不知道这背后的确切原因

这里是stacktrace:

org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out    
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129)
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
    at org.apache.thrift.transport.TFastFramedTransport.readFrame(TFastFramedTransport.java:140)
    at org.apache.thrift.transport.TFastFramedTransport.read(TFastFramedTransport.java:134)
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_set_keyspace(Cassandra.java:531)
    at org.apache.cassandra.thrift.Cassandra$Client.set_keyspace(Cassandra.java:518)
    at  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    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)
Caused by: java.net.SocketTimeoutException: Read timed out  

    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127)
    ... 25 more

这里发生的事情是,你告诉卡桑德拉让你的查询运行很长时间,但你没有告诉你的节俭客户等待卡桑德拉回复那么长时间

但实际上,10秒是足够的时间。不要改变这一点。相反,请找出查询在跟踪过程中花费更长时间的原因:


此外,您应该在此处查看数据建模资源:。写之前检查是否存在是一种设计的味道。

这里发生的事情是,你已经告诉Cassandra让你的查询运行很长时间,但你没有告诉你的Thrift客户端等待Cassandra回复那么长时间

但实际上,10秒是足够的时间。不要改变这一点。相反,请找出查询在跟踪过程中花费更长时间的原因:


此外,您应该在此处查看数据建模资源:。写入前检查是否存在是一种设计风格。

您应该重新格式化转储文件。当你的手势格式正确且正确时,更有可能得到回答readable@user2572801你说的频繁是指1/5还是指每个请求?不是很频繁的请求在多次插入后,它开始崩溃。你应该重新格式化转储。当你的手势格式正确且正确时,更有可能得到回答readable@user2572801你说的频繁是指1/5还是指每一个请求?在多次插入后,请求不是很频繁,它开始崩溃是的,我需要尝试一些监控工具。。我将试一试。。作为一个新手,我有一个愚蠢的问题:我有一个表rel,它存储3列,有3个ID。。。。。rel表(rowkey、startId、relId、endId)…所有三个都被索引,因为它们中的任何一个都可以进行查找..现在rowkey是UUID…所以在任何插入之前我必须进行现有检查..我可以通过将rowkey设计为这3个ID的散列来避免这一情况吗?这样我就不必进行现有检查..这是正确的设计吗..您能在写入之前详细说明存在检查是设计气味还是链接一些与此相关的资源?是的,我需要尝试一些监控工具。。我将试一试。。作为一个新手,我有一个愚蠢的问题:我有一个表rel,它存储3列,有3个ID。。。。。rel表(rowkey、startId、relId、endId)…所有三个都被索引,因为它们中的任何一个都可以进行查找..现在rowkey是UUID…所以在任何插入之前我必须进行现有检查..我可以通过将rowkey设计为这3个ID的散列来避免这一情况吗?这样我就不必进行现有检查..这是正确的设计吗..您能在写入之前详细说明存在检查是设计气味还是链接一些与此相关的资源?