On Feb 13, 2017, at 2:20 PM, John C Klensin <john-ietf(_at_)jck(_dot_)com>
wrote:
I would have described the IMAP model as assuming that each
message is associated with a single mailbox. Most of the issues
you mention are associated with "resides". Up to a point, it is
possible to use a Google-like arrangement to support all of the
IMAP functionality I can think of simply by attaching a label or
attribute with the mailbox name and constraining retrievals,
searches, and displays accordingly. That is exactly what at
least some of the systems that use a Relational DBMS as a
mailstore do, whether they then have "relation per user" or
treat the UserID as yet another attribute.
Indeed, but then what you are saying is that replicating the IMAP data model is
_not_ necessary, which is my point. If you think of the data store of email
messages as a single relation, with something like a message ID as the key,
then it's easy to synchronize with the server: you just make sure that your
copy of the relation has the intended subset of all messages in the relation,
and it's very easy to compare to see whether this is the case. If, on the
other hand, you have N relations, each of which is a mailbox, then
synchronizing becomes a process of iterating across the set of all relations,
synchronizing each one.
When you describe it using the relational model, I think it's pretty obvious
why you want the single-relation model, and not the multiple-relation model.