On Tue, 2010-08-03 at 11:20 -0300, Henrique Fernandes wrote:
Like location1 is production.
location1 has 1000 emails.
I mirror it to location2
Now the owner of location1 deletes some emails! and have now 989
If i do mirroging again, it has to choose if it will copy back from location2 to location1 or erase mails in location2
How does it decide with one its going to do ?
If mails are deleted in location1, mirroring causes the mails to be deleted from location2 as well. If new mails are added to location2, they are copied to location1. This is pretty easy to handle because in IMAP the UID numbers always grow, so if you see UIDs 1,5,10 in location1 and UIDs 1,10 in location2, you'll know that in location1 UID 5 was deleted. UIDs at the end of the mailbox are then handled specially by looking up from index files if they were actually deleted. And there is some conflict checking also by looking message GUIDs.
http://wiki2.dovecot.org/Design/Dsync has also some text about how the syncing works internally. I should update it though..