CouchBase Server用例:网格上有新数据不可能?

时间:2014-04-08 14:34:02

标签: couchbase couchbase-view nosql

我们正面临一个看似不可能的常见用例"用CouchBase服务器解决.... 基本上在我们的网络应用程序中,我们需要实现显示FRESH数据的网格(包含所有最新/更新的文档!)

EX:用户创建一个新的"订单"在专门的编辑页面中,然后转到"所有订单"带有网格的页面,希望看到刚刚创建的记录。

我们如何实现这一目标?

  • 由于网格绑定到VIEW,其索引可能已过时。
  • 也使用" stale = false"新索引不能包含最后一个数据,因为它可能仍然在"磁盘写入"队列
  • 我们无法承担使用" PersistTo.XXX"由于性能问题,强制在Store上写入磁盘 (架构是多租户的,我们必须处理数百次写操作/分钟。 实际上我们的couchbase集群执行~2500 MemCached ops / sec但是〜3次磁盘写操作/秒! )

任何洗礼?对于这种需求是NoSql DB的一个好方法吗? (我们想避免使用混合解决方案RDBMS + NoSql ...  也许是对网格新鲜度或复杂的自制脏文档列表的妥协"机制?)

提前谢谢......

1 个答案:

答案 0 :(得分:1)

首先,如果您可以提供更多信息,那么我们就可以了解您的磁盘写入速度如此之低。其次,您是否决定使用Couchbase,因为您希望或因为它适合您的数据和访问模式? RDBMS解决方案不会对您更好吗?

关于用户创建新订单的说明,我个人不会使用视图来捕获此数据,在用户文档中我会有两个属性,已处理订单和待处理订单。当用户向他们的购物篮添加内容时,您可以将产品的ID添加到挂单数组中,因为交易完成后可以将其移动到已处理的订单。

这种结构意味着当您想要显示用户的所有订单时,您只需对文档中的所有ID进行简单的多次获取,请注意您必须在应用程序中对它们进行排序你想要的任何一个属性的图层,但这都是微不足道的!

祝你好运!