我一直在使用SSTableLoader实用程序在两个不同的Cassandra集群之间批量传输数据,我想知道是否有其他人遇到过同样的问题.源群集具有数据,目标不具有数据.
我已经阅读了关于实用程序详细信息的数据存储页面,但我仍然有一些未解决的问题,关于它是如何工作的.
我在源群集的实时节点上使用该实用程序,命令遵循以下格式:
sstableloader -d target.host.ip -v -f /etc/cassandra/cassandra.yaml /cassandra/data/keyspace1/table1-uuid
Run Code Online (Sandbox Code Playgroud)
这些集群都设置有256个vnode,每个节点在每个集群中有6个节点.在两种环境中,模式都是RF = 3,并且这些表的结构都相同.
所以我的问题如下:
1)该实用程序从您指定的cassandra.yaml中提取源群集信息,但您必须指定SSTables的绝对路径.那么从单个节点运行SSTableLoader一旦完成就会在目的地给我整个表吗?由于令牌范围在目标集群上不同,因此似乎很难验证.
2)数据存储信息说:
要从SSTable加载获得最佳吞吐量,您可以使用多个sstableloader实例来跨多台计算机进行流式处理.Sstableloader可以同时运行的SSTable数量没有硬性限制,因此您可以添加其他加载器,直到您看不到进一步的改进.
这是否意味着对于单个表,我会在多个源计算机上启动多个SSTableLoader实例?或者它只是意味着我可以同时在多台机器上为多个不同的表使用SSTableLoader.我试图了解他们提到的吞吐量增益是针对单个表还是仅用于飞行中的多个表.
3)从快照运行需要什么语法修改?我拍摄了一张快照并通过运行相同的命令进行了测试,但是进一步向下进入了表的快照目录,它没有正确解析它说"快照"是一个无效的密钥空间.
无论如何,谢谢希望我对我的问题很清楚.
我有一个三节点Cassandra(DSE)集群,我不关心数据丢失,因此我将RF设置为1.我想知道如果节点出现故障,Cassandra将如何响应读/写请求(我有CL =现在我的请求中的所有内容).
理想情况下,如果数据存在,我希望这些请求成功 - 只是在剩余的可用节点上,直到我替换死节点.这个密钥空间本质上是一个非常大的缓存; 如果发生丢失,我可以替换任何数据.
我正在使用 YCSB 对许多不同的 NoSQL 数据库进行基准测试。但是,在处理客户端线程的数量时,我很难解释吞吐量与延迟的结果。
例如,当使用 16 个客户端线程对 cassandra 运行工作负载 a(50/50 读取和更新)进行基准测试时,将执行以下命令:
bin/ycsb run cassandra-cql -p hosts=xx.xx.xx.xx -p recordcount=525600 -p operationcount=525600 -threads 16 -P workloads/workloada -s > workloada_525600_16_threads_run_res.txt
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出:
[OVERALL], RunTime(ms), 62751
[OVERALL], Throughput(ops/sec), 8375.962136061577
[TOTAL_GCS_PS_Scavenge], Count, 64
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 289
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.46055042947522745
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 64
[TOTAL_GC_TIME], Time(ms), 289
[TOTAL_GC_TIME_%], Time(%), 0.46055042947522745
[READ], Operations, 262650
[READ], AverageLatency(us), 1844.6075042832667
[READ], MinLatency(us), 290
[READ], MaxLatency(us), 116159
[READ], 95thPercentileLatency(us), 3081
[READ], 99thPercentileLatency(us), 7551 …Run Code Online (Sandbox Code Playgroud)