代码之家  ›  专栏  ›  技术社区  ›  N A

Couchbase中REQUEST\u PLUS和STATEMENT\u PLUS ScanConsistency的区别到底是什么?

  •  3
  • N A  · 技术社区  · 7 年前

    我无法理解请求和声明之间的区别,以及一致性与它们之间的关系。

    2 回复  |  直到 7 年前
        1
  •  4
  •   Tass    6 年前
    • RequestPlus 确保查询时的所有文档都已编制索引。
    • AtPlus (或 StatementPlus
      • 这允许读取您自己的写入,而不会延迟其他写入。

    例如:

    1. 水桶 B 包含一个文档。
    2. SELECT COUNT(1) FROM B -&燃气轮机;结果是 1 .
    3. 插入ID为的文档 a
    4. b
      • 具有“无边界”(默认)一致性->立即结果至少为 1. 返回。
      • 具有“AtPlus”一致性,指定以下附加状态: 突变->结果至少为 2
      • 具有“RequestPlus”一致性->的结果 3 在索引已经完全赶上之后。
        2
  •  0
  •   rmirabelle    3 年前

    一些附加说明。

    不管是好是坏,Couchbase允许您控制在执行查询后更新索引的时间。非常不幸的是,执行查询时的默认行为是一种“最终”一致性。

    实际上,这意味着顺序查询(其中第二个查询取决于第一个查询的结果)是 非常 可能会失败,结果不一致,因为用于执行第二个查询的索引尚未更新。

    选择最终一致性作为Couchbase中的默认选项令我困惑。性能很重要。但可以说是很少的, 更多 比一致性重要(大容量插入和忘记操作除外),以及 尤其地 不是在web应用程序上下文中。

    因此,除非您将Couchbase用作纯数据仓库(大部分是写的,很少是读的),否则您需要记住手动将一致性设置为 REQUEST_PLUS 对于你的绝大多数疑问,还是准备发疯。