cassandra如何查询另一个节点中的数据';s表
根据我对卡桑德拉的理解 当客户机将数据写入单个服务器时,它会写入提交日志(只追加日志,不进行随机搜索),然后将数据放入内存中的MEMTable中。然后承认写操作成功。当MEMTable已满时,它将作为SSTable(顺序写入)刷新到磁盘 在具有两个名为(node1,node2)的节点的多节点集群中。 当客户机将数据写入应该驻留在node2中的node1时(根据分配给节点的令牌)cassandra如何查询另一个节点中的数据';s表,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,根据我对卡桑德拉的理解 当客户机将数据写入单个服务器时,它会写入提交日志(只追加日志,不进行随机搜索),然后将数据放入内存中的MEMTable中。然后承认写操作成功。当MEMTable已满时,它将作为SSTable(顺序写入)刷新到磁盘 在具有两个名为(node1,node2)的节点的多节点集群中。 当客户机将数据写入应该驻留在node2中的node1时(根据分配给节点的令牌) 对应的提交日志保存在节点1或节点2的什么位置 数据发送到节点1或节点2的MEMTable是哪一个 对应的SSTable
客户端发出写操作时连接到的节点将成为该写操作的协调器。因此,在您的场景中,node1将是协调器。然后,Node1将计算写入的令牌哈希值,并查看该令牌是否属于node2。然后它会将写操作转发到node2 Node2将从node1接收写请求,由于这是一个本地写操作,因此会将其添加到Node2上的commitlog和memtable中。这样,如果node2在刷新memtable之前关闭,它可以通过重放commitlog来重建memtable 当在node2上刷新memtable时,它将保存到node2上的磁盘上 在节点2上完成写入后,它将告诉节点1写入成功,然后节点1将告诉客户端写入成功 阅读的方式也差不多。客户端向成为读取协调器的节点发出读取。协调器联系拥有数据令牌的节点,并将结果发送回协调器。协调器根据最新的时间戳合并结果,并将最终结果发送回客户端