考虑遵循Cassandra设置:
我的测试列存储在节点B上并复制到节点D和E。
现在我有多个java进程通过读取CL.ONE
读取我的Test-Column通过Hector API(Thrift)有两种可能性:
哪一个是1)或2)?
谢谢和问候, 马切伊
答案 0 :(得分:4)
我相信它是:3)Cassandra将所有调用转发到最近的活动节点,其中“closeness”由当前使用的Snitch确定(在cassandra.yaml中设置)。
如果启用了DynamicSnitch,它会根据节点的最近性能动态调整底层小报返回的节点接近度。
有关详情,请参阅“阅读路径”下的Cassandra ArchitectureInternals。
答案 1 :(得分:2)
(Upvoted Theodore的答案,因为它是核心)。 一些额外的细节:
我们在hector端没有做任何事情来根据密钥(尚)将流量路由到给定节点。这在Amazon Dynamo论文的第6.2节中被称为“客户调解选择”。该研究似乎表明,通过切断网络跃点,它确实只对非常大的集群有用。
缺点是客户端上的哈希计算和分区查找重复。