Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-2805

Top level implementation of the DeletedMessageVault

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.4.0
    • Component/s: None
    • Labels:
      None

      Description

      While working on the deletedMessageVault, we targeted in MAILBOX-381 a first implementation on top of MailRepositories

      That decision was unfortunate as then one can browse the content of the deletedMessageVault vault through webAdmin.

      Thus we decided to implement DeletedMessageVault as a separate component.

      That component has the following considerations:

      • Should have a low storage cost
      • Cold storage and delays upon reads are acceptable as one does not expect a restore/export to be fast
      • Find an efficient way to implement retention (deleting too old emails) without a full scan

      We decided to provide an implementation above the blobStore and a metaData store (cassandra)

      Retention will be implemented with object storage buckets (one month = 1 bucket). We could then simply delete a bucket when all the mails it contains are older than the retention period.

      Querying the deleteMessageVault will first be done with a full scan. Later enhancement can be done by providing a per-bucket (immutable) Lucene index - once the bucket is no longer the latest one.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              btellier Benoit Tellier
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: