在阅读了一些 NoSQL 技术之后,我发现Quorum与Virtual Sharding相比失败了。虚拟分片允许可扩展性并且不会增加整个系统的读/写量。还有什么不好的是,我绝对找不到仲裁比分片有任何好处。
问题: 您能否从数据一致性/性能/可扩展性的角度作为仲裁技术的倡导者,并阐明它比分片更好的情况?
以下是我对这些东西的看法:
法定人数:
假设我有一个需要高数据一致性的预订系统。使用 NoSQL 实现数据一致性的方法之一是quorum,means R + W > N
,where R
- read nodes,W
- write nodes 和N
- total amount of nodes。
据我了解,如果您使用仲裁而不是写一行,您的数据库需要执行一次写操作W
。还要读取您的数据库需要R
读取的内容。对?
虚拟分片:
据我了解,分片- 当有类似于 hashmap 的东西时,它通过某些标准告诉你收入数据应该存储在哪里/应该从哪里读取。假设您有N
节点。虚拟意味着为了避免可伸缩性问题,该哈希映射将大于N
,但假设10*N
。这允许在添加新节点时轻松重新配置它。
它的优点是它不需要像仲裁这样的任何复制!当然,为了可用性/故障转移,您可以为每个节点带来一个主从备份。但这不会增加系统中的读/写量。