Cluster computing 有副本时为什么要使用碎片

Cluster computing 有副本时为什么要使用碎片,cluster-computing,replication,sharding,solrcloud,Cluster Computing,Replication,Sharding,Solrcloud,我使用的是Solr,有一个带有动态字段的集合 我的目标是建立SolrCloud,SolrWiki建议: 据我所知,复制为您提供了负载平衡和冗余,因为它是一个直接拷贝。 切分可以实现负载平衡,并为索引获取一半的内存,但这取决于两者的工作情况 因此,当他们用4台服务器设置这样的集群时,请求速度是否会快4倍? 如果您只有1个碎片和4个副本,它是否会以更高的冗余速度提高4倍 我想当然地认为拥有虚拟服务器没有任何意义,因为它不会给您更多的CPU来同时工作。在SolrCloud中,添加更多副本可以提高并发

我使用的是Solr,有一个带有动态字段的集合

我的目标是建立SolrCloud,SolrWiki建议:

据我所知,复制为您提供了负载平衡和冗余,因为它是一个直接拷贝。 切分可以实现负载平衡,并为索引获取一半的内存,但这取决于两者的工作情况

因此,当他们用4台服务器设置这样的集群时,请求速度是否会快4倍? 如果您只有1个碎片和4个副本,它是否会以更高的冗余速度提高4倍


我想当然地认为拥有虚拟服务器没有任何意义,因为它不会给您更多的CPU来同时工作。

在SolrCloud中,添加更多副本可以提高并发性,添加更多碎片可以提高查询响应时间。 换句话说,如果原始查询在1秒内返回,则添加更多副本可能不会提高响应时间,但会在每个时间段为您提供更多结果。 但是,将索引拆分成更多的碎片将大大缩短响应时间

因此,如果将索引从1个分片分割为4个分片,则查询速度将提高近4倍。
但是,如果您选择使用1个碎片和4个副本,那么查询响应时间可能只会略有提高

如果索引对于单个服务器来说太大,则分片最有用。至于什么会给你最好的性能-4台服务器不会做4倍更好;如果你真的幸运的话,它们可能会让你好上3倍,但是有大量的变量会影响分片是否有用以及你可以使用多少服务器-你的索引结构如何,你的查询中有什么,查询的频率有多高,服务器的负载情况-最好的办法是在您自己的环境的实际测试中尝试并测量不同配置的性能。然后,您必须从数十亿个文档或许多字段中创建索引,并根据该索引进行索引:当然,JVM和缓存也将使用主内存。一个优点是索引越小性能越高?