我正在尝试学习apache cassandra,所以我创建了一个名为simple strategy
的键空间,其类为2
,复制因子为replication_factor
。我读过{{3}第一个副本放置在由分区器确定的节点上,并且其他副本在环中顺时针放置在下一个节点上,而不考虑拓扑。
我的机架中有3个节点:
我创建了一个名为users的表,其中包含一些数据。
问题是,使用2
if (!empty($_GET['userid']))
{
$uname=$_GET['userid'];
$ihash = get_hash_user($uname);
if(!empty($ihash)
{
response(200,"hash Not Found",NULL);
}
else
{
response(200,"hash Found","$ihash");
}
}
else
{
response(400,"Invalid Request",NULL);
}
}
function get_hash_user($team)
{
//Connect oto the DB
$connection = db_connect();
if ($connection->connect_error) {
return "connection error";
}
//Create the query & collect result
$result = $connection->query("SELECT DISTINCT hash FROM `myDB` WHERE user = '$userid' ");
//Check if result is null or not
if($result->NULL){
return "result is NULL";
} else {
return "result is not NULL";
}
//return the result
return $result;
}
,我可以访问上述所有3个节点上的数据。
我有什么不对的吗?
答案 0 :(得分:0)
由于@AlanBoudreault提出了这个想法,你请求数据的节点并不重要,多亏了八卦协议,你得到了答案(如果有的话)。
这与复制哪个节点数据的事实不同。我有一个复制因子为2的密钥空间,无论我在哪个节点上编写查询,我都能得到数据。但是,如果我单独运行第三个节点(其他两个节点处于脱机状态),我的查询不会给我任何数据