james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Quynh Nguyen (JIRA)" <server-...@james.apache.org>
Subject [jira] [Created] (JAMES-2082) Split and Stream blobs from message
Date Mon, 03 Jul 2017 02:57:00 GMT
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

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

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

View raw message