插入时rpc超时,日志中没有错误

时间:2014-09-01 19:10:00

标签: indexing cassandra timeout cqlsh

我在一行的插入上有一个rpc_timeout(该集群有3个节点,并且可以在另一个表上处理超过10000个插入/分钟)

这是表格:

CREATE TABLE test_table (
    agent text,
    run_id text,
    process_id text,
    datetime timestamp,
    tracking_time timestamp,
    email text,
    ip text,
    event_id uuid,
    event_name text,
    message_id text,
    source text,
    url text,
    test_table text,
PRIMARY KEY ((process_id, event_name), event_id));

CREATE INDEX test_table_process_id ON test_table (process_id);

这是插入:

BEGIN BATCH
INSERT INTO test_table (message_id, run_id, event_id, ip, process_id, agent, datetime, event_name, url, test_table, email, tracking_time) VALUES ('exampleaaaaaaaaaaaaaaaaaaaaaaaaa', 'bar', 376d8e20-35ca-4615-8e9f-f0b5b4431981, 'None', 'test-dummy', 'None', '2014-08-31 17:20:24', 'hard_bounce', 'None', 'mandrill', 'example.webhook@mandrillapp.com', '2014-09-01T18:04:40');
APPLY BATCH;

我不知道超时是否是由二级索引引起的。

system.log中没有任何错误

1 个答案:

答案 0 :(得分:0)

可能从批处理中达到超时,2i的开销不是很大,但事务是。请尝试使用未记录的批次。

BEGIN UNLOGGED
INSERT INTO test_table (message_id, run_id, event_id, ip, process_id, agent, datetime, event_name, url, test_table, email, tracking_time) VALUES ('exampleaaaaaaaaaaaaaaaaaaaaaaaaa', 'bar', 376d8e20-35ca-4615-8e9f-f0b5b4431981, 'None', 'test-dummy', 'None', '2014-08-31 17:20:24', 'hard_bounce', 'None', 'mandrill', 'example.webhook@mandrillapp.com', '2014-09-01T18:04:40');
APPLY BATCH;

除非有好的理由,否则使用单个写入而不是批处理 - 它的性能更高。