[ 
https://issues.apache.org/jira/browse/JAMES-4209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18107053#comment-18107053
 ] 

Benoit Tellier commented on JAMES-4209:
---------------------------------------

Regarding that one I am planning a large scale real data test in order to 
confirm this works as intended.

> S3: ability to restore content from solely the object store
> -----------------------------------------------------------
>
>                 Key: JAMES-4209
>                 URL: https://issues.apache.org/jira/browse/JAMES-4209
>             Project: James Server
>          Issue Type: Improvement
>          Components: cassandra, mailbox, s3
>            Reporter: Benoit Tellier
>            Priority: Major
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> h3. Goal
> Recorvery Plan
> GIVEN a major producton incident
> WHEN I loose fully the Cassandra DB and its backup
> THEN I want to be able to retrieve contents from S3 and set them back to users
> Out of scope: folder structure and context (flag)
> Recover point objective
> GIVEN a major producton incident
> WHEN I loose fully the Cassandra DB and need to restore a backup
> THEN I want to be able to retrieve contents from S3 and set them back to 
> users between the time-of backup and time of the incident
> Effectively achieve RPO of 0 for contents, only folder sorting is subject to 
> a loss.
> h3. How
> Optional config in cassandra.properties
> {code:java}
> mailbox.blob.recovery.mode=SYNCHRONOUS|ASYNCHRONOUS|NONE
> {code}
> NONE being the default.
> The idea is to save a side objects recovery/YYY where YYY is the header blob 
> ID. It contains the corresponding body blobId. 
> Using the Delivered-To header It effectively allow rebuild of the message and 
> it allows identifying who it was delivered to.
> Please note that natural generation of the header blob then allow time 
> sorting with a month granularity, allowing finner grain restore.
> Special care about the GC: do not delete the sidecar, but piggy back its 
> deletion on actual content
> h3. The restore script
> Ship it as a binary in server/apps/distributed-app and use what we need from 
> the guice wiring. One could override the main class to actually run it...
> We should be able to restrict to a single generation. 
> We should be able to provide a "since" date
> -----------
> Idea design done with Yann Biez



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to