每个桶couchbase意见最大数量(max number of couchbase views p

2019-08-17 02:10发布

多少次点击每个桶是太多了,在桶假设大量数据的(> 100GB,> 100M文档,> 12种文档类型),并且假定每个视图仅适用于一个文档类型? 或问另一种方式,在什么时候应该有些文件类型可以分成独立的水桶,以节省处理所有的文件类型的所有视图的开销?

我有一个很难决定如何分割我的数据转换成couchbase桶,以及对数据所需要的视图的性能影响。 我的数据是由十几关系DB的,与数亿行的多个表的至少一半。

该http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-bestpractice.html文档节“使用的文件类型”似乎暗示在同一个桶有多种文档类型并不理想,因为在特定的文件类型视图的所有文件更新,即使是那些永远比不上视图。 事实上,它表明的数据分成桶,以避免此开销。

然而,有每簇10桶出于性能方面的限制。 因此,我的唯一结论是,每个集群能有效地最多10个文件的大集合处理。 这是准确的?

Answer 1:

拖轮的建议是正确的,让我补充一些观点也是如此。

水桶可以被认为最密切相关的(虽然不完全)一个“数据库实例”的关系数据库管理系统的世界里。 这里将是“数据库”,而那些都可以水桶内组合内的多个表/模式。

想想桶作为数据的逻辑分组,所有股一些常见的配置参数(RAM配额,副本数量等),您只需要在您的数据拆分成,当你需要某些数据集单独控制的多个水桶。 其他原因涉及到完全不同的工作负载迁移到不同的数据集或者能够单独跟踪的工作量,这些数据集的愿望。

一些例子:

- 我想控制缓存行为的一组不同于其它数据。 例如,许多客户有一个“会话”斗,他们总是希望在RAM中,而他们可能有一个更大的,“用户配置文件”斗不需要在RAM中缓存的所有数据。 从技术上讲这两组数据可以驻留在一个桶中,并允许Couchbase是聪明约保持RAM的数据,但你没有太多保证或控制会话的数据将不会推出......所以把它在自己的水桶让你强制执行。 它也给你了能够单独监视流量的好处。

- 我想一些数据比其他被复制多次。 虽然我们一般建议只有一个副本在大多数集群,有些时候,我们的用户可以选择他们想要复制一个额外的时间特定的数据集。 这可以通过单独的桶来控制。

-Along同样的思路,我只希望一些数据被复制到另一个集群/数据中心。 这也被控制每个桶,并且使得数据可以被划分到单独的桶。

- 当你有一个给定的数据集相当极端差异的工作量(尤其是在写入的量),它开始变得有意义从视图/索引的角度对数据进行分离成单独的水桶。 我提到这一点,因为这是真的,但我也想明确的是,它不是常见的情况。 你确定问题之后,而不是之前因为你认为你可能你应该使用这种方法。

关于最后一点,是每写一个水桶将被索引引擎有所回升,但通过使用JSON内的文档类型,可以非常快速地中止对文档进行处理,它真的不应该产生不利影响有大量的数据在未来的并不适用于某些意见。 如果你不介意的话,我特别好奇,在该文件的部分另有暗示,因为这肯定不是我们的本意。

因此,在一般情况下,我们看到的大多数部署了少量桶(2-3)和5只有少数向上我们的10限制来自一些已知的CPU和我们统计的内部跟踪(负载的磁盘IO开销或其缺乏对水桶此处无关紧要)。 当然,我们计划以减少将来的版本中这种开销,但仍然不会改变我们的只是有几个水桶建议。 是能够跨越组合多个“模式”成一个单一的逻辑分组,并应用视图/索引的优势,无论依然存在。

我们在这个过程马上来了更具体的指导方针和建议的大小的(我写了这首两个博客作为一个权宜之计,直到我们做的)。

作为一个初步的做法,你想尝试,并保持约4设计文件的数量,因为在默认情况下,我们并行处理多达4个。 你可以增加这个数字,但应该通过增加CPU和磁盘IO能力相匹配。 然后,你要保持在每个文档中的视图数相对较低,可能低于10,因为他们在各自的串行处理。

最近,我与谁了相当大量的视图中的一个用户(约8个设计文件和一些DD的近20次)的工作,我们能够通过多个视图组合成一个大幅度带来下来。 显然,这是非常依赖于应用程序,但你应该尝试产生多个不同的“查询”关闭一个指标。 使用减少,关键前缀(视图内),并整理,都具有不同的范围和分组查询相结合可以使起初可能会有些拥挤,但实际上是非常灵活的一个指标。

越少的设计文档和视图你拥有的磁盘空间较少,IO和CPU资源,你将需要。 有永远不会是一个神奇的子弹或硬和快速的指引不幸的是数目。 最后,因人而异,并在自己的数据集测试比任何多页的回应,我可以写出更好的;-)

希望帮助,请不要犹豫,直接与我们联络,如果您对您的具体使用情况下,你不希望公布具体问题。

佩里



Answer 2:

正如你可以从Couchbase文档看,它是不是真的能够提供一种“万能”的规则给你一个确切的成员。

但是,根据您已经使用的最佳实践文档和一些讨论(在这里),你应该能够正确地设计数据库/视图。

让我们先从最后一个问题:

YES为什么Couchbase的意见,有少数桶的原因是性能 - 更重要的是资源消耗 - 原因。 我想请你去阅读这些博客文章,以帮助理解发生了什么“内部” Couchbase:

  • 施胶1: http://blog.couchbase.com/how-many-nodes-part-1-introduction-sizing-couchbase-server-20-cluster
  • 浆纱2: http://blog.couchbase.com/how-many-nodes-part-2-sizing-couchbase-server-20-cluster
  • 压实: http://blog.couchbase.com/compaction-magic-couchbase-server-20

所以你会看到,大部分的“行动”是由斗完成。

现在让我们来看看原题:

  • 是大多数时候你会按类型的文件组织设计文件/和看法。
  • 它是不是让所有文档“类型”,在一个单一的(少数)水桶一个问题,这实际上是在与方式的Couchbase工作
  • 看最重要的部分是,您的文档的大小(怎么看“长”将是JSON的解析)和频率的文件将创建/更新,并且还删除,因为该视图的JS代码当你创建/修改这个文件才能执行。

所以,你应该做的:

  • 1个单斗
  • 有多少设计文件? (有多少种,你呢?)
  • 如何任何视图中的每个文档中,你将有?

事实上,最昂贵的部分索引过程中是不是还是quering它是当你不得不重新平衡数据越来越节点(添加,删除节点的故障)指数之间

最后,但它看起来像你已经知道了,这章是相当不错的,了解的观点是如何工作(如何创建了索引和使用): http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase -views-operation.html

不要犹豫,如果需要添加更多的信息。



文章来源: max number of couchbase views per bucket