You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz Wo Nicholas Sze (JIRA)" <ji...@apache.org> on 2017/11/01 00:53:00 UTC

[jira] [Updated] (RATIS-122) Add a FileStore example

     [ 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)