[ 
https://issues.apache.org/jira/browse/RATIS-588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Elser resolved RATIS-588.
------------------------------
       Resolution: Fixed
    Fix Version/s: 0.4.0

Great work here, Ankit! That's for putting up with my frequent requests for 
changes :)

> LogStream StateMachine export
> -----------------------------
>
>                 Key: RATIS-588
>                 URL: https://issues.apache.org/jira/browse/RATIS-588
>             Project: Ratis
>          Issue Type: Bug
>          Components: LogService
>            Reporter: Ankit Singhal
>            Assignee: Ankit Singhal
>            Priority: Major
>             Fix For: 0.4.0
>
>          Time Spent: 10h 10m
>  Remaining Estimate: 0h
>
> It is desirable to export data out of the StateMachine itself to ensure that 
> RAFT quorums remain well-performing. After new data stops flowing into the 
> LogService, we can export the log out of the LogService and to a distributed 
> filesystem that would have more ideal storage facilities. Moving these logs 
> out of the LogService helps avoid local disk capacity issues at the Ratis 
> level. Ideally, this would be another extension point for each storage 
> systems which would provide common LogService API, easing adoption by 
> downstream applications 
> * Work Breakdown
> * Configure MetadataStateMachine with some “remote storage” location (e.g. 
> hdfs://localhost:8020/ratis-logs). This is “cold” storage where we can place 
> a log in after we disallow writes to it (when it moves to the state “CLOSED”)
> * When the MetadataStateMachine moves a log to the CLOSED state, it must 
> queue it to be uploaded to the remote storage location. This can be 
> accompanied with some new state, e.g. “ARCHIVED”
> * When clients try to read a log which is “ARCHIVED”, they must know to read 
> from this location in remote storage, instead of from the LogStateMachine as 
> before.
> * Implement a LogStream implementation that gives the same API to clients to 
> read from the LogStateMachine (as it does today) or from the remote storage 
> location.
> * Optional: rewrite the RAFT log into a more optimal form upon writing it to 
> the remote storage location. E.g we don’t need to maintain Ratis-internal log 
> messages.
> Thanks [~elserj] for the above write-up.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to