우리는 Cassandra 성능을 측정하기를 원하므로 10800 행 데이터를 한 테이블에 쓰려고합니다. 각 행에는 약 1MB 데이터가 있습니다. 글쓰기에는 문제가없는 것 같습니다. 우리는 카산드라의 모든 위의 10800 개 행을 읽으려고 할 때Cassandra는 C# 드라이버에서 예외 예외를 읽어들입니다.
은 항상 이런 식으로 예외를 던져 :
Cassandra.ReadTimeoutException: Cassandra timeout during read query at consistency One (0 replica(s) responded over 1 required)
at Cassandra.TaskHelper.WaitToComplete[T](Task`1 task, Int32 timeout)
at Cassandra.Session.Execute(IStatement statement)
at Cassandra.Session.Execute(String cqlQuery, ConsistencyLevel consistency)
at DataCloud.TestApps.CassandraTest.CassandraClient.Execute(String cqlQuery)
그런 다음 우리는 여전히, 충분한 시간에 읽기 제한 시간을 변경하려면 수동을 cassandra.yaml 파일을 수정 같은 예외. 우리는 모든 데이터를 쿼리하는 데 사용 무엇
은 다음과 같습니다
SELECT * FROM table1 WHERE id = ...; // The id is the partition key
그래서 우리가 행이 1024 카운트 변경, 여전히 읽기에서 예외가 발생하지만, 이번에는 다르다 :
Cassandra.NoHostAvailableException: None of the hosts tried for query are available (tried: 127.0.0.1)
at Cassandra.RequestHandler`1.GetNextConnection(IStatement statement, Boolean isLastChance)
at Cassandra.RequestHandler`1.TrySend()
at Cassandra.TaskHelper.WaitToComplete[T](Task`1 task, Int32 timeout)
at Cassandra.Session.Execute(IStatement statement)
at Cassandra.Session.Execute(String cqlQuery, ConsistencyLevel consistency)
at DataCloud.TestApps.CassandraTest.CassandraClient.Execute(String cqlQuery)
우리 또한 100 행을 시도, 괜찮아 보인다.
그래서 C#으로 cassandra에서 데이터를 읽는 가장 좋은 방법은 무엇입니까? 나는 10800MB의 데이터가 그다지 크지 않다고 생각하는데 왜 그것들 모두를 읽을 수 없습니까? 또는 나는 무엇인가 놓쳤다?
대단히 감사합니다.
1) cqlsh에서 동일한 쿼리를 실행 해 보았습니까? 첫 번째 오류는 Cassandra 시간 초과 (드라이버 시간 제한이 아님)이며 클러스터가 느린 것을 가리 킵니다. 2) 어떤 버전의 C# 드라이버를 사용하고 있습니까? –