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