首页 文章

Couchbase Bucket / View Limits - 设计

提问于
浏览
1

我有一个关于Couchbase铲斗结构的快速问题 . 我正在运行2.0和.net客户端 . 我们即将推出一些实物,只想通过'正确'的桶设计进行最终测试,但已经意识到这并不像我们想象的那么容易 .

我们有什么:

基本上我们目前在1个桶上有11个视图 . 然而,每个视图都以不同的方式返回数据...

假设文档具有以下值(json doc):Value1,Value2,Value3,... Value50

编写视图以便发出多个结果,即:

emit ([1, Value1, Value2, Value3], null)

emit ([2, Value10, Value20, Value30], null)

然而,每个视图仅在1 'document type'上,即开始时的所有视图都具有类似 if(doc.docType = "Blah") 的if条件

然后在.net代码中,当我们需要基于value10,value20和value30的文档时,通过让开始键和结束键以'2'开头,我们得到我们想要的 .

Question 1: 这个设计好吗?我已经看过很多像这样的例子,但是我们在每个视图中都有5-10个不同的发射,所以Couchbase必须对其进行索引 . 与将它们放在各自的视图中相比,这有什么性能问题吗?

其次,我们目前使用1个桶并获得超过10个视图的警告 . 所以我们要拆分桶 . 我们认为我们可以根据逻辑组将其拆分为大约7-8个不同的存储桶 . 我们意识到有10个桶限制 .

Question 2: 我在一个论坛中的一篇文章中读到.net SDK一次只能连接到1个桶....这似乎是错误的 . 我的意思是关于SO的其他问题,即像here他们使用多个桶 . 我们打算在每个桶的global.asax中使用'open'连接,然后通过应用程序使用它 . 即 client1.getview... 然后 client2.getview... 这意味着1页(.aspx)将从1个桶进行1次调用,而另一个桶用另一个桶填充页面 . 我快速玩了一下它似乎工作......但只是想知道这是否是一种可接受的使用CB的方式 . 我对将所有与1逻辑应用程序相关的文档放在一个存储桶中的最佳实践建议感到困惑.....:SI会为每个文档制作'almost' 1个存储桶(这样我们最多可以对其进行10次查看)和然后,当我们达到10个桶限制时,刚开始一个新的集群(注意:我们处于独特的位置,我们有太多未使用的硬盘,即一个服务器有64gb未使用/未分配的ram,资源不是特别的问题...... .performance是!)

我希望我的问题有道理 . 如果没有,请告诉我

干杯

知更鸟

注意:.net 4.0,Couchbase 2.0 . 我已经阅读了这两本手册,但仍然不清楚 .

1 回答

  • 0

    关于你的观点设计 .

    您的视图的全局设计是可以的,这意味着有一个单独的视图可以测试doc的'type / values'并根据此值发出不同的索引 .

    你说你有11个观点,它们是如何组织的?有多少设计文件?观点/设计文件?

    我问这个是因为设计文档中的所有视图都在同一时间更新 . 看一看“View Design Best Practice”一章:

    http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-bestpractice.html

    您的数据集/集群也很重要吗?

相关问题