[jira] [Commented] (JAMES-4209) S3: ability to restore content from solely the object store
"Benoit Tellier (Jira)" <[email protected]>
| Newsgroups | gmane.comp.jakarta.james.devel |
|---|---|
| Message-ID | <[email protected]> |
[ 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)