假设存在一个巨大的文件,其中变化的数量巨大,因此变更集的集合是巨大的。 EtherPad是否发送所有变更集?或者它是否定期拍摄文件的快照,以便它可以避免发送真正旧的变更集?这一切是如何在后端数据库中实现的?
答案 0 :(得分:0)
RE发送更改集请参阅:https://github.com/ether/etherpad-lite/tree/master/doc/easysync
没有文件可以拍摄快照,所以我假设你的意思是垫内容?如果是这样,不,Etherpad Lite还没有保存元文本,但这是Etherpad可能需要实现的,以便时间滑块可以处理大内容的打击垫(请参阅讨论此问题的相关问题)。旧的Etherpad确实具有此功能,但它的成本很高(可怕的数据库架构)。
Etherpad数据库是通过名为UeberDB https://github.com/Pita/ueberDB的东西抽象出来的。 UeberDB的大赢家使得Etherpad成为写入和可移植性面前的缓存层。 UeberDB使Etherpad能够在内存中保存填充内容,并且不需要持续数据库写入的开销,写入排队以减少服务器负载。 UeberDB还允许站点管理员使用他们喜欢的数据库,但代价是必须存储KV。
RE第2点和第3点,因为Ueber只会存储您最终努力完成任务的关键值,例如全文索引,尽管使用MySQL作为后端数据库,但这是MySQL的一个关键特性。然而,这最近已被克服,并且由Mozilla和其他各种Etherpad项目贡献者部分维护。 MySQL也提供了自己的缓存功能,但这对于Etherpad没有用,因为数据处于不断变化的状态。
我们应该清楚我一直在谈论Etherpad Lite,因为“旧的Etherpad”不再维护,所以应该避免。所有Etherpad文档都应该来自http://etherpad.org
的权威来源