And*_*agy 6 cassandra cassandra-3.0
我需要扩展我的集群,新的数据中心将出现在长城防火墙后面的中国大陆.目前我在美国和欧洲都有数据中心 - 因此群集已经符合地理位置场景的要求.
在这一点上,我已经为Cassandra准备好了中文基础设施,但是过去几天的网络统计数据有点麻烦,我有点害怕:这是否以及如何影响我当前的集群并且将成为新的数据中心功能呢?
我对此的实际问题是:
nodetool rebuild),因为使用当前速度,复制我们当前数据需要数周时间.欢迎任何建议或评论,谢谢!
小智 2
Cassandra 如何处理复制过程中的巨大数据包丢失?(有时高达 40%)
通常丢包会导致大量的读修复。在某些情况下,它可能会导致请求失败,具体取决于复制因子和一致性。另外,要准备好进行非常昂贵的修复,这将创建大量微小的 SSTable 和大量 IO。
我建议对开发需求进行测试,以查看系统中的实际行为。有很多工具可以模拟不良网络。
当两个数据中心之间的网络连接非常糟糕(只有几千比特/秒和如上所述的延迟)长达数小时时,它对集群有何影响?中国dc会被视为死亡吗?或者 Cassandra 仍会尝试使用有限的带宽?这会对非中国数据中心造成任何问题吗?
这很大程度上取决于您运行的一致性级别/复制因子的严重程度和程度。在某些情况下,它只会导致集群之间的延迟相当高。但是,如果连接非常糟糕,节点将开始将另一个节点标记为关闭 - 那么您将看到所有数据中心中的问题。您现有的数据中心将因请求超时而导致性能下降。这反过来会导致请求在内存中保留更长时间,从而导致 GC。(它也可能在您的其他集群中导致许多其他问题)
可以调整和微调故障检测器灵敏度的阈值以适合您的使用案例。phi_convict_threshold 是一个可以降低节点被标记为关闭的可能性的设置。您可以在这里找到更多相关信息。如果您发现节点没有因无响应而被标记的最佳位置,您可以让 Cassandra 充分利用它需要使用的少量资源。
是否有可能以某种方式强制执行,只有我的一个非中国数据中心与中国数据中心进行通信?或者我应该相信 Cassandra 会处理这个问题?(试图避免可能损害我的所有数据中心)
确实没有办法告诉 Cassandra 限制与哪些数据中心通信。您在复制因子中包含的数据中心之间的通信有点困难。
有没有什么方法可以加快初始数据复制(nodetool重建),因为以当前的速度复制我们当前的数据需要几周的时间。
我建议不要使用 sstableloader 的解决方案,因为它的功能与重建非常相似,并且需要快照才能操作。如果网络是导致速度慢的原因,那么改变流媒体方式不会产生太大影响。
在我看来,首先要做的就是测量系统的瓶颈在哪里。如果慢速网络确实是瓶颈,则可以添加更多节点以同时从更多源进行流传输,但最终您仍然会受到慢速网络连接的阻碍。
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |