Kopano Core internals:IMAP-optimized storage, data duplication


  • Hi everyone!

    I’ve question about the KC internals and want to ask @jengelh about it.
    Is it truth that data duplication happens in Kopano DB after IMAP access would globally enabled in server.cfg config.
    And then DB server must save the same message twice: the first in MAPI-optimized(?) format, the second — IMAP-optimized format.
    My small superficial research ontopic proves otherwise, but I’m not a professional programmer, neither Kopano developer :-)
    So, the way in question is: what is the real state of the art ontopic for now?

    Thanks for cool software, BTW!


  • According to my tests on large mailbox overhead is about 40-45% of original content’s size when global IMAP is enabled.
    What I deduced based on my small test: Looks like that IMAP messages saved on disk in /var/lib/kopano dir, not in the Kopano DB, because it’s rather small in compare of attachment’s folder. Might be I made wrong conclusion, don’t know.


  • If and when the imap feature is enabled, the copy of RFC5322 input is made when the MTA processes it. If the MRA later tries to read that and it does not exist for any reason, the RFC5322 representation is synthesized on-the-fly (no saving).
    It is saved on-disk because it is treated like an attachment, and blobs do not look well in relational databases (which does not stop a large PR_BODY from being possible 😩).


  • This post is deleted!

  • Hi @jengelh !
    I appreciate your fast reply, indeed.
    So, I’m right as for IMAP stuff, it’s not a disadvantage, but need to know about.