我正在尝试理解DocumentDB在使用会话一致性时提供的确切保证。
是否可能发生以下情况(假设a,b,c,d是同一文档的所有值)
第1节W(a)W(b)
第二节.................. W(c)W(d)
第3节................................. R(b)R(c)
第4节................................ R(c)R(b)
换句话说,是按顺序写入会话(在这种情况下,b在c或c发生在b之前发生,因此C3或C4中的一个会违反单调读取)?
更新a,b,c,d(假设它们都是以会话一致性为基础)的顺序是什么?
答案 0 :(得分:2)
会话一致性为用户提供以下保证。
1)读取您自己的写入 - 在会话中执行的任何写入都会立即在会话中显示。
2)单调读取 - 在会话中看到的任何读取都不会在会话中退回。
假设A,B,C,D正在增加同一文档的版本。
C,B不是单调增加的历史,将违反会话保证。
注意:这里的假设是Session(4)的读取请求是按顺序发出的。即在第一次读取完成后发出第二次读取。