我将大约36kb数据的1000个插入到四节点Cassandra集群中。客户端使用最新的DataStax驱动程序用C#编写。
我正在调整线程(TPL任务)来执行此操作,共享C *会话。在我开始计时插入之前,我每个线程执行一次阻塞读取(来自与插入相同的键空间,在空表上),尝试唤醒/预热池/等。线程池在进程开始时有~1000个普通线程和io线程。
我遇到的主要问题是,随着线程数的增加,唤醒时间会花费很长时间。会话是在这些时间之外创建的 - 这是每个线程执行一个选择查询的时间。
Threads Time(s)
1 0
2 0
4 0
8 1
16 5
32 17
64 52
128 112
一旦线程/连接池/唤醒了什么,插入就会快速执行。为什么第一次查询需要这么长时间?有没有人见过这种行为?