我在一行的插入上有一个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中没有任何错误
答案 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;
除非有好的理由,否则使用单个写入而不是批处理 - 它的性能更高。