在线文本协作的一些问题

  1. 资源估算的时候,dau 100m, 100m document, each doc have 5 co-editors, each dau makes 100 editing daily.
    算qps的时候不是应该100m100/(243600)么?为什么要乘5?难道这里算的是服务器send update给user的qps?

  2. 客户端一般是几个change合并在一起给server发一个request还是每一个operation都发一个request?

  3. client 在了op1发出去了request然后wait for server response的时候还能做local editing吗?如果可以,假设client又做了op3,这个时候client看到的文本是什么样子的?是自己发出的request再加上之后的operation都apply以后的文本吗(就是初始文本+op1+op3)?如果这个时候收到了server 的response以后client看到的本地文本又是什么样的,是初始文本+op1+op2+op3‘吗?op2是server发给client的operation,client一开始做op3是在op1的基础上做的,现在收到了op2需要在op1上面先apply op2,所以op3也需要做基于op2的operational transform?所以本地也需要有做operation transform算法的能力?

  4. document operation table是不是没法用sql,因为需要存list of operations

1.是的,算的 QPS 包括服务器向客户端发的。可能这里用 QPS 不太准确,叫 Operations per second 吧。
2. 可以合并。
3. 可以做 local edit。本地做 OT 是没法避免的。
4. 这个 operation table 是每一行都是 immutable,用 SQL 也可以,但是不一定要用 SQL。