変更の数が非常に多く、変更セットのコレクションが膨大な巨大なファイルがあるとします。EtherPad はすべての変更セットを送信しますか? それとも、本当に古い変更セットの送信を避けるために、定期的にファイルのスナップショットを作成しますか? そして、これはすべてバックエンド データベースにどのように実装されているのでしょうか?
1 に答える
RE sending changesets see: https://github.com/ether/etherpad-lite/tree/master/doc/easysync
There is no file to take snapshots of so I assume you mean the pad contents? If so, no, Etherpad Lite doesn't save meta text yet but this is something Etherpad will probably need to implement so that the timeslider can handle pads with large content (see the relevant issues that discuss this). The old Etherpad did have this functionality but it came at a cost (Horrible database schema).
The Etherpad database is abstracted through something called UeberDB https://github.com/Pita/ueberDB. The big win UeberDB gives Etherpad is a caching layer in front of writes and portability. UeberDB empowers Etherpad to hold pad contents in memory and doesn't require the overheads of constant database writes, writes are queued as to reduce server load. UeberDB also allows site admins to use their favourite database but at a cost of having to store KVs.
RE points 2 and 3, because Ueber will only store key values you end up struggling doing tasks such as Full text indexing which is a key feature of MySQL despite using MySQL as a backend database. This has however been recently overcome and is in a branch partially maintained by Mozilla and various other Etherpad project contributors. Also MySQL provides it's own caching functionality however this isn't useful for Etherpad as the data is in a constant state of flux.
We should be clear I have been talking about Etherpad Lite as the "old Etherpad" is no longer maintained so should be avoided. All Etherpad documentation should be referenced to from the authoritative source of http://etherpad.org