0
votes

Sorry if this is an existing question, but any of the existing ones resolved my problem..

I've installed Cassandra single noded. I don't have a large application right now, but I think this can be the case soon, and I will need more and more nodes..

Well, I'm saving data from a stream to Cassandra, and this were going well, but suddently, when I tried to read data, I've started to receive this error: "Not enough replica available for query at consistency ONE (1 required but only 0 alive)"

My keyspace was built using simplestrategy with replication_factor = 1. Im saving data separated by a field called "catchId", so most of my queries are like: "select * from data where catchId='xxx'". catchId is a partition key.

I'm using the cassandra-driver-core version 3.0.0-rc1.

The thing is that I don't have that much of data rigth now, and I'm thinking if it will be better to use a RDBMS for now, and migrate to Cassandra only when I have a better infrastructure.

Thanks :)

1
What is your infrastructurephact
Its just one machine (im testing it locally): i5-2400 3.10Ghz, 8GB ram and 500gb HD.Dhiogo Corrêa

1 Answers

0
votes

It seems that your node is unable to respond when you try to make your read (in general this error appears for more than one node). If you do not have lots of data, it's very strange, so this is probably a bad design choice. This can emanate from several things, so you have to make a few investigations.

  • study your logs ! In particular the system.log
  • you can change your read_request_timeout_in_ms parameter in cassandra.yaml. Although it's not agood idea in production, it will say you if it's just temporary problem (your request succeed after a little time) or a bigger problem
  • study your CPU and memory behavior when you are doing requests
  • if you are very motivated, you can install opscenter which will you give more valuable informations

How and how many write requests are you doing ? It can overwhelm cassandra (even if it's designed for). I recommend to make async requests to avoid problems.