某些WHERE子句的Cassandra查询失败

时间:2017-02-22 21:48:59

标签: cassandra cql nosql

我有一张看起来很像的大表:

CREATE TABLE keyspace.table(
  node bigint,
  time bigint,
  core bigint,
  set bigint,
  value1 bigint,
  value2 bigint, 
  PRIMARY KEY (node, time, core)
);

set上的二级索引(可能不相关)。

当我做一个愚蠢的简单查询时:

SELECT * FROM keyspace.table LIMIT 10;

成功。

但是,对于某些 WHERE子句,它会失败,例如:

SELECT * FROM keyspace.table WHERE node = 12 LIMIT 10;

Traceback (most recent call last):
  File "/usr/bin/cqlsh.py", line 1297, in perform_simple_statement
    result = future.result()
  File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", line 3122, in result
    raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'}

cassandra系统日志中没有任何内容。

详情

数据中心看起来像:

Datacenter: DC2
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns    Host ID                               Rack
UN  192.168.64.8   234.84 GB  256          ?       478f59e1-4797-45df-81d1-77559e393e8a  RAC1
DN  192.168.64.9   217.85 GB  256          ?       84d4bfd6-054a-433e-b6d4-3eead77609ac  RAC1
DN  192.168.64.10  208.99 GB  256          ?       c6ac565e-5897-4205-9439-779becf7fafe  RAC1
UN  192.168.64.11  225.69 GB  256          ?       4a941e8f-db80-48f3-8eca-c4430b795694  RAC1
DN  192.168.64.12  208.57 GB  256          ?       34e57e18-e8b9-40d6-85e8-40a309e91b49  RAC1
DN  192.168.64.13  240.22 GB  256          ?       7a312c4f-01c0-4ed4-be7f-417b8f14f940  RAC1
DN  192.168.64.4   208.5 GB   256          ?       41a49d5c-e569-46f3-9f0e-97de43a22690  RAC1
UN  192.168.64.5   213.19 GB  256          ?       b5bfb4e3-30a2-46b5-ba41-cf1a58a7355d  RAC1
UN  192.168.64.6   212.21 GB  256          ?       9f6781ca-09b7-4923-8fa1-5b91079e2a18  RAC1
UN  192.168.64.7   235.97 GB  256          ?       5f429e7b-2e16-4796-b746-834500aeb884  RAC1

密钥空间:

CREATE KEYSPACE keyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC2': '2'}  AND durable_writes = true;

此表使用cassandra-loader每秒持续摄取2000行,并且相当大。 nodetool tablestats输出(编辑清除了墓碑):

Keyspace: keyspace
    Read Count: 0
    Read Latency: NaN ms.
    Write Count: 31945
    Write Latency: 7.547574268273595 ms.
    Pending Flushes: 0
        Table: table
        SSTable count: 9
        Space used (live): 15414599520
        Space used (total): 15414599520
        Space used by snapshots (total): 0
        Off heap memory used (total): 4506364
        SSTable Compression Ratio: 0.41688805047558564
        Number of keys (estimate): 251
        Memtable cell count: 0
        Memtable data size: 0
        Memtable off heap memory used: 0
        Memtable switch count: 3
        Local read count: 0
        Local read latency: NaN ms
        Local write count: 31945
        Local write latency: 8.261 ms
        Pending flushes: 0
        Bloom filter false positives: 0
        Bloom filter false ratio: 0.00000
        Bloom filter space used: 1528
        Bloom filter off heap memory used: 1456
        Index summary off heap memory used: 260
        Compression metadata off heap memory used: 4504648
        Compacted partition minimum bytes: 2300
        Compacted partition maximum bytes: 74975550
        Compacted partition mean bytes: 36544449
        Average live cells per slice (last five minutes): 1.0222222222222221
        Maximum live cells per slice (last five minutes): 2
        Average tombstones per slice (last five minutes): 1.0222222222222221
        Maximum tombstones per slice (last five minutes): 2
        Dropped Mutations: 0

启用跟踪的输出

cqlsh> TRACING ON;
Now Tracing is enabled
cqlsh> SELECT * FROM keyspace.table WHERE node = 1223 LIMIT 10;
Traceback (most recent call last):
  File "/usr/bin/cqlsh.py", line 1297, in perform_simple_statement
    result = future.result()
  File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", line 3122, in result
    raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'}

让我知道我可以提供的任何其他细节。

0 个答案:

没有答案