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

Tsz Wo Nicholas Sze updated RATIS-122:
--------------------------------------
    Attachment: r122_20171031.patch

Thanks [~jnp].  Here is a new patch addressing your comments

r122_20171031.patch:
- adds a new StateMachine.writeStateMachineData API;
{code}
  /**
   * Write asynchronously the state machine data to this state machine.
   *
   * @return a future for the write task
   *         if {@link RaftLog#logSync()} should also sync writing the state 
machine data;
   *         otherwise, return null.
   */
  CompletableFuture<?> writeStateMachineData(LogEntryProto entry);
{code}
- In the FileStore example, the writes are performed via writeStateMachineData 
and then the writes are committed in applyTransaction.
- if close is true, logSync will also sync the writeStateMachineData.


> Add a FileStore example
> -----------------------
>
>                 Key: RATIS-122
>                 URL: https://issues.apache.org/jira/browse/RATIS-122
>             Project: Ratis
>          Issue Type: New Feature
>            Reporter: Tsz Wo Nicholas Sze
>            Assignee: Tsz Wo Nicholas Sze
>            Priority: Major
>         Attachments: r122_20171017.patch, r122_20171017b.patch, 
> r122_20171024.patch, r122_20171025.patch, r122_20171026.patch, 
> r122_20171031.patch
>
>
> I propose to add a new FileStore example.  Below are the ideas:
> - It uses Ratis to store files so that the files are replicated in a Raft 
> group.
> - It is not a file system -- it only supports basic operations such as read, 
> write and delete but not ls, rename, etc.
> - Its state machine stores the file data separated from the log in order to 
> reduce the log size.
> - It can be served as a Ratis performance test.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to