You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Quynh Nguyen (JIRA)" <se...@james.apache.org> on 2017/07/03 02:57:00 UTC

[jira] [Created] (JAMES-2082) Split and Stream blobs from message

Quynh Nguyen created JAMES-2082:
-----------------------------------

             Summary: Split and Stream blobs from message
                 Key: JAMES-2082
                 URL: https://issues.apache.org/jira/browse/JAMES-2082
             Project: James Server
          Issue Type: Task
            Reporter: Quynh Nguyen


We need to optimise our Message storage.

Currently, reading messages even with FetchType.Metadata is very inefficient, as Blob is stored with the data. This makes IMAP requests like *UID FETCH 1:\* UID* very inefficient and actually overload the cluster.

This task should write a new CassandraMessageDaoV2 that stores streamable blobs in a separate table.

Introduce you DAO on the top of:
 - A new table for messages
 - A new table for blobs
 - A new table for blobParts

Make CassandraMessage\*Mapper:
 - Write to CassandraMessageDaoV2
 - READ from CassandraMessageDaoV2 and if not found, READ from CassandraMessageDaoV1

When reading from CassandraMessageDaoV1, you should take care to to *on the fly* migration:
 - Read from CassandraMessageDaoV1
 - Write in CassandraMessageDaoV2
 - (Delete for space concerns) from CassandraMessageDaoV1



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org