[google doc] doc operation table

请问老师 Google doc文本课那篇文章提到operation table用Time Series DB,好处是什么呢,还有用其他的nosql比如说cassandra可以吗?

问得很好,这个答案按照我们课上讲的为准,使用 SQL DB,不使用 Time Series DB,我会修正文本课的内容。Operation Table 使用 Document ID + Timestamp 做 Primary Key 就可以满足我们的需求。至于 Cassandra,我觉得不是最理想,因为我们希望写尽量 Consistent,比如说我们不想读取的时候因为 Eventual Consistency,读到的 operation 中间漏一条。

1 个赞

想问一下老师,我理解的对不对,这个operation table中operation这一项,您说的是可能是一组operation,都会存在这一个cell中么。这些operation是来自一个user的呢,还是汇总了所有user的operation呢?如果是所有user的operation,能不能理解说也就是说做OT的时候,其实是根据同一个Base Version ID,把所有的operation都整合在一起是么?

那我有点疑惑就是说为什么当初视频里面有说,服务器会接收到不同版本的修改?不同版本的operation没办法捏到一起吧。如果一个时刻里,服务器端遇到了新版本的一堆operation还有老版本的operation,这怎么办,是不会出现这种情况呢,还是有别的办法,比如说把老版本给废了,然后让客户端发送老版本的请求给time out了。

Operation Table 里的一行是一个用户的 Operation,不是整合所有用户的。
用户可以向服务器发送的 Base Version 很可能不是最新的,这也没关系,服务器可以根据这个 Base Version 到服务器的最新版本之间的差异 + 用户发送来的 Operation 做 OT, 算出客户端和服务器需要的改动。