szetszwo commented on code in PR #696: URL: https://github.com/apache/ratis/pull/696#discussion_r930244065
########## ratis-docs/src/site/markdown/index.md: ########## @@ -17,12 +17,43 @@ # Apache Ratis Apache Ratis is a highly customizable Raft protocol implementation in Java. -Raft is a easily understandable consensus algorithm to manage replicated state. -Apache Ratis could be used in any Java application where state should be replicated between multiple instances. +[Raft](https://raft.github.io/) is an easily understandable consensus algorithm to manage replicated state. + +The Ratis project was started at 2016, +entered Apache incubation in 2017, +and graduated as a top level Apache project on Feb 17, 2021. +Originally, Ratis was built for using Raft in [Apache Ozone](https://ozone.apache.org) +in order to replicate raw data and to provide high availability. +The correctness and the performance of Ratis has been heavily tested with Ozone. + +Unlike many other raft implementations, +Ratis is designed to be pluggable, +it could be used in any Java application where state should be replicated between multiple instances. ## Ratis Features -TODO: complete this section -#### Multi-group servers -TODO: complete this section -#### Separate RAFT log storage from actual data (client-data) -TODO: complete this section \ No newline at end of file + +Since Ratis is designed to be pluggable in any Java applications, +Ratis provides abstractions over Raft protocol for users, +which make Raft library fully decoupled from your application. +The key features of Raft are described below. + +### Pluggable transport +Ratis provides a pluggable transport layer. +By default gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided. + +### Pluggable state machine +Ratis supports a log and state machine. +State machine typically contains the data that you want to make highly available. Review Comment: Add the following sentence after "... highly available." ``` Applications usually define its own state machine for the application logic. ``` ########## ratis-docs/src/site/markdown/index.md: ########## @@ -17,12 +17,43 @@ # Apache Ratis Apache Ratis is a highly customizable Raft protocol implementation in Java. -Raft is a easily understandable consensus algorithm to manage replicated state. -Apache Ratis could be used in any Java application where state should be replicated between multiple instances. +[Raft](https://raft.github.io/) is an easily understandable consensus algorithm to manage replicated state. + +The Ratis project was started at 2016, +entered Apache incubation in 2017, +and graduated as a top level Apache project on Feb 17, 2021. +Originally, Ratis was built for using Raft in [Apache Ozone](https://ozone.apache.org) +in order to replicate raw data and to provide high availability. +The correctness and the performance of Ratis has been heavily tested with Ozone. + +Unlike many other raft implementations, +Ratis is designed to be pluggable, +it could be used in any Java application where state should be replicated between multiple instances. ## Ratis Features -TODO: complete this section -#### Multi-group servers -TODO: complete this section -#### Separate RAFT log storage from actual data (client-data) -TODO: complete this section \ No newline at end of file + +Since Ratis is designed to be pluggable in any Java applications, +Ratis provides abstractions over Raft protocol for users, +which make Raft library fully decoupled from your application. +The key features of Raft are described below. + +### Pluggable transport +Ratis provides a pluggable transport layer. +By default gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided. Review Comment: Add "," after "By default" and the following sentence. ``` Applications may use their own implementation. By default, gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided. ``` ########## ratis-docs/src/site/markdown/index.md: ########## @@ -17,12 +17,43 @@ # Apache Ratis Apache Ratis is a highly customizable Raft protocol implementation in Java. -Raft is a easily understandable consensus algorithm to manage replicated state. -Apache Ratis could be used in any Java application where state should be replicated between multiple instances. +[Raft](https://raft.github.io/) is an easily understandable consensus algorithm to manage replicated state. + +The Ratis project was started at 2016, +entered Apache incubation in 2017, +and graduated as a top level Apache project on Feb 17, 2021. +Originally, Ratis was built for using Raft in [Apache Ozone](https://ozone.apache.org) +in order to replicate raw data and to provide high availability. +The correctness and the performance of Ratis has been heavily tested with Ozone. + +Unlike many other raft implementations, +Ratis is designed to be pluggable, +it could be used in any Java application where state should be replicated between multiple instances. Review Comment: Combine two pluggable related paragraphs. ``` -it could be used in any Java application where state should be replicated between multiple instances. - -## Ratis Features - -Since Ratis is designed to be pluggable in any Java applications, +it could be used in any Java applications +where state should be replicated between multiple instances. ``` After all the changes, the section will look like below ``` ## Pluggability Unlike many other raft implementations, Ratis is designed to be pluggable, it could be used in any Java applications where state should be replicated between multiple instances. Ratis provides abstractions over Raft protocol for users, which make Raft library fully decoupled from the applications. ``` ########## ratis-docs/src/site/markdown/index.md: ########## @@ -17,12 +17,43 @@ # Apache Ratis Apache Ratis is a highly customizable Raft protocol implementation in Java. -Raft is a easily understandable consensus algorithm to manage replicated state. -Apache Ratis could be used in any Java application where state should be replicated between multiple instances. +[Raft](https://raft.github.io/) is an easily understandable consensus algorithm to manage replicated state. + +The Ratis project was started at 2016, +entered Apache incubation in 2017, +and graduated as a top level Apache project on Feb 17, 2021. +Originally, Ratis was built for using Raft in [Apache Ozone](https://ozone.apache.org) +in order to replicate raw data and to provide high availability. +The correctness and the performance of Ratis has been heavily tested with Ozone. Review Comment: "has been" -> "have been" Add "Pluggability", i.e. ``` -The correctness and the performance of Ratis has been heavily tested with Ozone. +The correctness and the performance of Ratis have been heavily tested with Ozone. + +## Pluggability ``` ########## ratis-docs/src/site/markdown/index.md: ########## @@ -17,12 +17,43 @@ # Apache Ratis Apache Ratis is a highly customizable Raft protocol implementation in Java. -Raft is a easily understandable consensus algorithm to manage replicated state. -Apache Ratis could be used in any Java application where state should be replicated between multiple instances. +[Raft](https://raft.github.io/) is an easily understandable consensus algorithm to manage replicated state. + +The Ratis project was started at 2016, +entered Apache incubation in 2017, +and graduated as a top level Apache project on Feb 17, 2021. +Originally, Ratis was built for using Raft in [Apache Ozone](https://ozone.apache.org) +in order to replicate raw data and to provide high availability. +The correctness and the performance of Ratis has been heavily tested with Ozone. + +Unlike many other raft implementations, +Ratis is designed to be pluggable, +it could be used in any Java application where state should be replicated between multiple instances. ## Ratis Features -TODO: complete this section -#### Multi-group servers -TODO: complete this section -#### Separate RAFT log storage from actual data (client-data) -TODO: complete this section \ No newline at end of file + +Since Ratis is designed to be pluggable in any Java applications, +Ratis provides abstractions over Raft protocol for users, +which make Raft library fully decoupled from your application. +The key features of Raft are described below. + +### Pluggable transport +Ratis provides a pluggable transport layer. +By default gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided. + +### Pluggable state machine +Ratis supports a log and state machine. +State machine typically contains the data that you want to make highly available. +Ratis makes it easy to use your own state machine. + +### Pluggable raft log +Raft log is also pluggable, +users can provide their own log implementation. +The default implementation stores log in local files. + +Application can define the policies of how to write data and where it should be written easily. + +### Log service + +Ratis provides a log service recipe provides StateMachines to implement a distributed log service with a focused client API. +For more information, please read the [LogService documentation](https://ratis.apache.org/logservice). Review Comment: Remove the Log service section for now since this is not a good location for it. We will add it back later. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
