This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 4b5f8665f9 Fix typos and linguistic errors in documentation (#9748)
4b5f8665f9 is described below

commit 4b5f8665f903ddfb542a6dd4dcc4dd5d6a724d7f
Author: Sebastien Dionne <[email protected]>
AuthorDate: Thu Oct 9 01:58:56 2025 -0400

    Fix typos and linguistic errors in documentation (#9748)
    
    Signed-off-by: Sebastien Dionne <[email protected]>
---
 CONTRIBUTING.md                | 14 +++++++-------
 README.md                      | 12 ++++++------
 distribution/bin/README.md     |  4 ++--
 docs/en/Concept.md             |  9 ++++-----
 docs/en/Configuration_TLS.md   |  8 ++++----
 docs/en/Deployment.md          |  2 +-
 docs/en/Design_LoadBlancing.md |  2 +-
 docs/en/Design_Trancation.md   |  2 +-
 docs/en/FAQ.md                 |  6 +++---
 docs/en/Troubleshoopting.md    |  2 +-
 docs/en/architecture.md        |  2 +-
 docs/en/best_practice.md       | 14 +++++++-------
 tieredstore/README.md          | 10 +++++-----
 13 files changed, 43 insertions(+), 44 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0458764bc2..2a05422efe 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,7 +3,7 @@
 We are always very happy to have contributions, whether for trivial cleanups 
or big new features.
 We want to have high quality, well documented codes for each programming 
language, as well as the surrounding 
[ecosystem](https://github.com/apache/rocketmq-externals) of integration tools 
that people use with RocketMQ.
 
-Nor is code the only way to contribute to the project. We strongly value 
documentation, integration with other project, and gladly accept improvements 
for these aspects.
+Nor is code the only way to contribute to the project. We strongly value 
documentation, integration with other projects, and gladly accept improvements 
for these aspects.
 
 Recommend reading:
  * [Contributors Tech Guide](http://www.apache.org/dev/contributors)
@@ -34,15 +34,15 @@ More details of squash can be found at 
[stackoverflow](https://stackoverflow.com
 
 We are always interested in adding new contributors. What we look for are 
series of contributions, good taste and ongoing interest in the project. If you 
are interested in becoming a committer, please let one of the existing 
committers know and they can help you walk through the process.
 
-Nowadays,we have several important contribution points:
+Nowadays, we have several important contribution points:
 #### Wiki & JavaDoc
 #### RocketMQ SDK(C++\.Net\Php\Python\Go\Node.js)
 #### RocketMQ Connectors
 
-##### Prerequisite
-If you want to contribute the above listing points, you must abide our some 
prerequisites:
+##### Prerequisites
+If you want to contribute to the above listed points, you must abide by the 
following prerequisites:
 
-###### Readability - API must have Javadoc, some very important methods also 
must have javadoc
-###### Testability - 80% above unit test coverage about main process
-###### Maintainability - Comply with our [checkstyle 
spec](style/rmq_checkstyle.xml), and at least 3 month update frequency
+###### Readability - API must have Javadoc, and some very important methods 
must also have Javadoc
+###### Testability - Above 80% unit test coverage for the main process
+###### Maintainability - Comply with our [checkstyle 
spec](style/rmq_checkstyle.xml), and at least a 3-month update frequency
 ###### Deployability - We encourage you to deploy into [maven 
repository](http://search.maven.org/)
diff --git a/README.md b/README.md
index 322058fed2..765f1eb2a6 100644
--- a/README.md
+++ b/README.md
@@ -16,8 +16,8 @@ It offers a variety of features:
 
 * Messaging patterns including publish/subscribe, request/reply and streaming
 * Financial grade transactional message
-* Built-in fault tolerance and high availability configuration options base on 
[DLedger Controller](docs/en/controller/quick_start.md)
-* Built-in message tracing capability, also support opentracing
+* Built-in fault tolerance and high availability configuration options based 
on [DLedger Controller](docs/en/controller/quick_start.md)
+* Built-in message tracing capability, also supports opentracing
 * Versatile big-data and streaming ecosystem integration
 * Message retroactivity by time or offset
 * Reliable FIFO and strict ordered messaging in the same queue
@@ -80,7 +80,7 @@ $ tail -f ~/logs/rocketmqlogs/namesrv.log
 The Name Server boot success...
 ```
 
-For Windows users, you need set environment variables first:
+For Windows users, you need to set environment variables first:
 - From the desktop, right click the Computer icon.
 - Choose Properties from the context menu.
 - Click the Advanced system settings link.
@@ -139,7 +139,7 @@ Before your operations, make sure that `kubectl` and 
related kubeconfig file ins
 $ git clone https://github.com/apache/rocketmq-operator
 $ cd rocketmq-operator && make deploy
 
-### check whether CRDs is successfully installed
+### check whether CRDs are successfully installed
 $ kubectl get crd | grep rocketmq.apache.org
 brokers.rocketmq.apache.org                 2022-05-12T09:23:18Z
 consoles.rocketmq.apache.org                2022-05-12T09:23:19Z
@@ -156,7 +156,7 @@ rocketmq-operator-6f65c77c49-8hwmj   1/1     Running   0    
      93s
 ### create RocketMQ cluster resource
 $ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
 
-### check whether cluster resources is running
+### check whether cluster resources are running
 $ kubectl get sts
 NAME                 READY   AGE
 broker-0-master      1/1     107m
@@ -182,7 +182,7 @@ name-service         1/1     107m
 * [RocketMQ Dashboard](https://github.com/apache/rocketmq-dashboard): 
Operation and maintenance console of Apache RocketMQ.
 * [RocketMQ Connect](https://github.com/apache/rocketmq-connect): A tool for 
scalably and reliably streaming data between Apache RocketMQ and other systems.
 * [RocketMQ MQTT](https://github.com/apache/rocketmq-mqtt): A new MQTT 
protocol architecture model, based on which Apache RocketMQ can better support 
messages from terminals such as IoT devices and Mobile APP.
-* [RocketMQ EventBridge](https://github.com/apache/rocketmq-eventbridge): 
EventBridge make it easier to build a event-driven application.
+* [RocketMQ EventBridge](https://github.com/apache/rocketmq-eventbridge): 
EventBridge makes it easier to build an event-driven application.
 * [RocketMQ Incubating Community 
Projects](https://github.com/apache/rocketmq-externals): Incubator community 
projects of Apache RocketMQ, including 
[logappender](https://github.com/apache/rocketmq-externals/tree/master/logappender),
 
[rocketmq-ansible](https://github.com/apache/rocketmq-externals/tree/master/rocketmq-ansible),
 
[rocketmq-beats-integration](https://github.com/apache/rocketmq-externals/tree/master/rocketmq-beats-integration),
 [rocketmq-cloudevents-binding](https://github.co [...]
 * [RocketMQ Site](https://github.com/apache/rocketmq-site): The repository for 
Apache RocketMQ website.
 * [RocketMQ E2E](https://github.com/apache/rocketmq-e2e): A project for 
testing Apache RocketMQ, including end-to-end, performance, compatibility tests.
diff --git a/distribution/bin/README.md b/distribution/bin/README.md
index efbb67d9f4..ab702cfd3b 100644
--- a/distribution/bin/README.md
+++ b/distribution/bin/README.md
@@ -1,9 +1,9 @@
 ### Operating system tuning
-Before deploying broker servers, it's highly recommended to run **os.sh**, 
which is to optimize your operating system for better performance.
+Before deploying broker servers, it is highly recommended to run **os.sh**, 
which optimizes your operating system for better performance.
 
 ## Notice
 ### os.sh should be executed only once with root permission.
-### os.sh parameter settings are for reference purpose only. You can tune them 
according to your target host configurations.
+### os.sh parameter settings are for reference purposes only. You can tune 
them according to your target host configurations.
 
 
 ### Start broker
diff --git a/docs/en/Concept.md b/docs/en/Concept.md
index 03f2384293..670fbc3724 100644
--- a/docs/en/Concept.md
+++ b/docs/en/Concept.md
@@ -18,17 +18,16 @@ The Name Server serves as the provider of routing service. 
The producer or the c
 ## 7 Pull Consumer
 A type of Consumer, the application pulls messages from brokers by actively 
invoking the consumer pull message method, and the application has the 
advantages of controlling the timing and frequency of pulling messages. Once 
the batch of messages is pulled, user application will initiate consuming 
process.                    
 ## 8 Push Consumer
-A type of Consumer, the application do not invoke the consumer pull message 
method to pull messages, instead the client invoke pull message method itself. 
At the user level it seems like brokers 
-push to consumer when new messages arrived.                        
+A type of Consumer, the application does not invoke the consumer pull message 
method to pull messages, instead the client invokes the pull message method 
itself. At the user level it seems like brokers push to the consumer when new 
messages arrive.                        
 ## 9 Producer Group
 A collection of the same type of Producer, which sends the same type of 
messages with consistent logic. If a transaction message is sent and the 
original producer crashes after sending, the broker server will contact other 
producers in the same producer group to commit or rollback the transactional 
message.
 ## 10 Consumer Group
 A collection of the same type of Consumer, which consume the same type of 
messages with consistent logic. The consumer group makes load-balance and 
fault-tolerance super easy in terms of message consuming.
 Warning: consumer instances of one consumer group must have exactly the same 
topic subscription(s).   
 
-RocketMQ supports two types of consumption mode:Clustering and Broadcasting.
+RocketMQ supports two types of consumption mode: Clustering and Broadcasting.
 ## 11 Consumption Mode - Clustering
-Under the Clustering mode, all the messages from one topic will be delivered 
to all the consumers instances averagely as much as possible. That is, one 
message can be consumed by only one consumer instance.
+Under the Clustering mode, all the messages from one topic will be delivered 
to all the consumer instances as evenly as possible. That is, one message can 
be consumed by only one consumer instance.
 ## 12 Consumption Mode - Broadcasting
 Under the Broadcasting mode, each consumer instance of the same consumer group 
receives every message published to the corresponding topic.
 ## 13 Normal Ordered Message
@@ -39,4 +38,4 @@ Under the Strictly Ordered Message mode, all messages 
received by the consumers
 The physical carrier of information transmitted by a messaging system, the 
smallest unit of production and consumption data, each message must belong to 
one topic.
 Each Message in RocketMQ has a unique message id and can carry a key used to 
store business-related value. The system has the function to query messages by 
its id or key.
 ## 16 Tag
-Flags set for messages to distinguish different types of messages under the 
same topic, functioning as a "sub-topic". Messages from the same business unit 
can set different tags under the same topic in terms of different business 
purposes. The tag can effectively maintain the clarity and consistency of the 
code and optimize the query system provided by RocketMQ. The consumer can 
realize different "sub-topic" by using tag in order to achieve better 
expandability.
+Flags set for messages to distinguish different types of messages under the 
same topic, functioning as a "sub-topic". Messages from the same business unit 
can set different tags under the same topic for different business purposes. 
The tag can effectively maintain the clarity and consistency of the code and 
optimize the query system provided by RocketMQ. The consumer can realize 
different "sub-topics" by using tags in order to achieve better extensibility.
diff --git a/docs/en/Configuration_TLS.md b/docs/en/Configuration_TLS.md
index 445d186d27..f9716f92f5 100644
--- a/docs/en/Configuration_TLS.md
+++ b/docs/en/Configuration_TLS.md
@@ -1,8 +1,8 @@
 # TLS Configuration
-This section introduce TLS configuration in RocketMQ.
+This section introduces TLS configuration in RocketMQ.
 
-## 1 Generate Certification Files
-User can generate certification files using OpenSSL. Suggested to generate 
files in Linux.
+## 1 Generate Certificate Files
+Users can generate certificate files using OpenSSL. It is suggested to 
generate files in Linux.
 
 ### 1.1 Generate ca.pem
 ```shell
@@ -107,7 +107,7 @@ Add following parameters in JVM. The value of 
"tls.config.file" needs to be repl
 -Dtls.client.authServer=true -Dtls.enable=true  -Dtls.test.mode.enable=false  
-Dtls.config.file=/opt/certs/tlsclient.properties
 ```
 
-Enable TLS for client linke following:
+Enable TLS for client like the following:
 ```Java
 public class ExampleProducer {
     public static void main(String[] args) throws Exception {
diff --git a/docs/en/Deployment.md b/docs/en/Deployment.md
index 8f5c8f1e38..47a1b0587d 100644
--- a/docs/en/Deployment.md
+++ b/docs/en/Deployment.md
@@ -4,7 +4,7 @@
 
 ### 1 Single Master mode
 
-This is the simplest, but also the riskiest mode, that makes the entire 
service unavailable once the broker restarts or goes down. Production 
environments are not recommended, but can be used for local testing and 
development. Here are the steps to build.
+This is the simplest, but also the riskiest mode, that makes the entire 
service unavailable once the broker restarts or goes down. Production 
environments are not recommended, but it can be used for local testing and 
development. Here are the steps to build.
 
 **1)Start NameServer**
 
diff --git a/docs/en/Design_LoadBlancing.md b/docs/en/Design_LoadBlancing.md
index 86c47b1653..05c178464d 100644
--- a/docs/en/Design_LoadBlancing.md
+++ b/docs/en/Design_LoadBlancing.md
@@ -3,7 +3,7 @@ Load balancing in RocketMQ is accomplished on Client side. 
Specifically, it can
 
 ### Producer Load Balancing
 When the Producer sends a message, it will first find the specified 
TopicPublishInfo according to Topic. After getting the routing information of 
TopicPublishInfo, the RocketMQ client will select a queue (MessageQueue) from 
the messageQueue List in TopicPublishInfo  to send the message by 
default.Specific fault-tolerant strategies are defined in the MQFaultStrategy 
class.
-Here is a sendLatencyFaultEnable switch variable, which, if turned on, filters 
out the Broker agent of not available on the basis of randomly gradually 
increasing modular arithmetic selection. The so-called "latencyFault Tolerance" 
refers to a certain period of time to avoid previous failures. For example, if 
the latency of the last request exceeds 550 Lms, it will evade 30000 Lms; if it 
exceeds 1000L, it will evade 60000L; if it is closed, it will choose a queue 
(MessageQueue) to send m [...]
+Here is a sendLatencyFaultEnable switch variable, which, if turned on, filters 
out the Broker agents that are not available on the basis of randomly gradually 
increasing modular arithmetic selection. The so-called "latencyFault Tolerance" 
refers to a certain period of time to avoid previous failures. For example, if 
the latency of the last request exceeds 550 Lms, it will evade 30000 Lms; if it 
exceeds 1000L, it will evade 60000L; if it is closed, it will choose a queue 
(MessageQueue) to [...]
 
 ### Consumer Load Balancing
 In RocketMQ, the two consumption modes (Push/Pull) on the Consumer side are 
both based on the pull mode to get the message, while in the Push mode it is 
only a kind of encapsulation of the pull mode, which is essentially implemented 
as the message pulling thread after pulling a batch of messages from the 
server. After submitting to the message consuming thread pool, it continues to 
try again to pull the message to the server. If the message is not pulled, the 
pull is delayed and continue [...]
diff --git a/docs/en/Design_Trancation.md b/docs/en/Design_Trancation.md
index 930697b724..287378e37a 100644
--- a/docs/en/Design_Trancation.md
+++ b/docs/en/Design_Trancation.md
@@ -22,7 +22,7 @@ The compensation phase is used to resolve the timeout or 
failure case of the mes
 ### 1.2 The design of RocketMQ Transaction Message
 1 Transaction message is invisible to users in first phase(commit-request 
phase)   
   
-  Upon on the main process of transaction message, the message of first phase 
is invisible to the user. This is also the biggest difference from normal 
message. So how do we write the message while making it invisible to the user? 
And below is the solution of RocketMQ: if the message is a Half message, the 
topic and queueId of the original message will be backed up, and then changes 
the topic to RMQ_SYS_TRANS_HALF_TOPIC. Since the consumer group does not 
subscribe to the topic, the consu [...]
+  In the main process of transaction message, the message of first phase is 
invisible to the user. This is also the biggest difference from normal message. 
So how do we write the message while making it invisible to the user? And below 
is the solution of RocketMQ: if the message is a Half message, the topic and 
queueId of the original message will be backed up, and then changes the topic 
to RMQ_SYS_TRANS_HALF_TOPIC. Since the consumer group does not subscribe to the 
topic, the consumer c [...]
   
   In RocketMQ, the storage structure of the message in the broker is as 
follows. Each message has corresponding index information. The Consumer reads 
the content of the message through the secondary index of the ConsumeQueue. The 
flow is as follows:
 
diff --git a/docs/en/FAQ.md b/docs/en/FAQ.md
index dac53ecbfd..78c84fca20 100644
--- a/docs/en/FAQ.md
+++ b/docs/en/FAQ.md
@@ -8,7 +8,7 @@ The following questions are frequently asked with regard to the 
RocketMQ project
 
    Please refer to [Why RocketMQ](http://rocketmq.apache.org/docs/motivation)
 
-2. Do I have to install other softeware, such as zookeeper, to use RocketMQ?
+2. Do I have to install other software, such as zookeeper, to use RocketMQ?
 
    No. RocketMQ can run independently.
 
@@ -24,9 +24,9 @@ The following questions are frequently asked with regard to 
the RocketMQ project
 
 ### 2. How to reconsume message when consumption fails?
 
-&#8195;1) Cluster consumption pattern, The consumer business logic code 
returns Action.ReconsumerLater, NULL, or throws an exception, if a message 
failed to be consumed, it will retry for up to 16 times, after that, the 
message would be descarded.
+&#8195;1) Cluster consumption pattern, The consumer business logic code 
returns Action.ReconsumerLater, NULL, or throws an exception, if a message 
failed to be consumed, it will retry for up to 16 times, after that, the 
message would be discarded.
   
-&#8195;2) Broadcast consumption patternThe broadcaset consumption still 
ensures that a message is consumered at least once, but no resend option is 
provided.
+&#8195;2) Broadcast consumption pattern. The broadcast consumption still 
ensures that a message is consumed at least once, but no resend option is 
provided.
 
 ### 3. How to query the failed message if there is a consumption failure?
 
diff --git a/docs/en/Troubleshoopting.md b/docs/en/Troubleshoopting.md
index ee4adab8cf..505fde54da 100644
--- a/docs/en/Troubleshoopting.md
+++ b/docs/en/Troubleshoopting.md
@@ -10,7 +10,7 @@
 
 Solution: Execute  `export NAMESRV_ADDR=ip:9876` (ip refers to the address of 
NameServer deployed in the cluster) on the VM that deploys the RocketMQ 
cluster.Then you will execute commands of "mqadmin" successfully.
 
-## 2 The inconsistent version of RocketMQ between the producer and consumer 
leads to the problem that message can't be consumed normally.
+## 2 The inconsistent version of RocketMQ between the producer and consumer 
leads to the problem that messages can't be consumed normally.
 
 > Problem: The same producer sends a message, consumer A can consume, but 
 > consumer B can't consume, and the RocketMQ Console appears:
 >
diff --git a/docs/en/architecture.md b/docs/en/architecture.md
index 863a62200a..47cce84c2b 100644
--- a/docs/en/architecture.md
+++ b/docs/en/architecture.md
@@ -31,7 +31,7 @@ The RocketMQ architecture is divided into four parts, as 
shown in the figure abo
 
 - NameServer is an almost stateless node that can be deployed in a cluster 
without any information synchronization between nodes.
 
-- The broker deployment is relatively complex. The Broker is divided into the 
Master and the Slave. One Master can correspond to multiple Slaves. However, 
one Slave can only correspond to one Master. The correspondence between the 
Master and the Slave is defined by specifying the same BrokerName and different 
BrokerId. The BrokerId is 0. Indicates Master, non-zero means Slave. The Master 
can also deploy multiple. Each broker establishes a long connection with all 
nodes in the NameServer  [...]
+- The broker deployment is relatively complex. The Broker is divided into the 
Master and the Slave. One Master can correspond to multiple Slaves. However, 
one Slave can only correspond to one Master. The correspondence between the 
Master and the Slave is defined by specifying the same BrokerName and different 
BrokerId. The BrokerId 0 indicates Master, non-zero means Slave. The Master can 
also deploy multiple. Each broker establishes a long connection with all nodes 
in the NameServer clus [...]
 
 - The Producer establishes a long connection with one of the nodes in the 
NameServer cluster (randomly selected), periodically obtains Topic routing 
information from the NameServer, and establishes a long connection to the 
Master that provides the Topic service, and periodically sends a heartbeat to 
the Master. Producer is completely stateless and can be deployed in a cluster.
 
diff --git a/docs/en/best_practice.md b/docs/en/best_practice.md
index da279e297e..5e3b853774 100755
--- a/docs/en/best_practice.md
+++ b/docs/en/best_practice.md
@@ -4,8 +4,8 @@
 ### 1.1 Attention of send message
 
 #### 1  Uses of tags
-An application should use one topic as far as possible, but identify the 
message's subtype with tags.Tags can be set freely by the application.
-Only when producers set tags while sending messages, can consumers to filter 
messages through broker with tags when subscribing messages: 
message.setTags("TagA").  
+An application should use one topic as far as possible, but identify the 
message's subtype with tags. Tags can be set freely by the application.
+Only when producers set tags while sending messages, can consumers filter 
messages through broker with tags when subscribing messages: 
message.setTags("TagA").  
  
 #### 2 Uses of keys
 The unique identifier for each message at the business level set to the Keys 
field to help locate message loss problems in the future.
@@ -37,23 +37,23 @@ Each state is describing below:
 
 - **SEND_OK**
 
-Message send successfully.Note that even though message send successfully, but 
it doesn't mean than it is reliable.
+Message send successfully. Note that even though message send successfully, it 
doesn't mean that it is reliable.
 To make sure nothing lost, you should also enable the SYNC_MASTER or 
SYNC_FLUSH.
 
 - **FLUSH_DISK_TIMEOUT**
 
-Message send successfully, but the server flush messages to disk timeout.At 
this point, the message has entered the server's memory, and the message will 
be lost only when the server is down.
+Message send successfully, but the server flush messages to disk timeout. At 
this point, the message has entered the server's memory, and the message will 
be lost only when the server is down.
 Flush mode and sync flush time interval can be set in the configuration 
parameters. It will return FLUSH_DISK_TIMEOUT when Broker server doesn't finish 
flush message to disk in timeout(default is 5s
 ) when sets FlushDiskType=SYNC_FLUSH(default is async flush).
 
 - **FLUSH_SLAVE_TIMEOUT**
 
-Message send successfully, but sync to slave timeout.At this point, the 
message has entered the server's memory, and the message will be lost only when 
the server is down.
+Message send successfully, but sync to slave timeout. At this point, the 
message has entered the server's memory, and the message will be lost only when 
the server is down.
 It will return FLUSH_SLAVE_TIMEOUT when Broker server role is 
SYNC_MASTER(default is ASYNC_MASTER),and it doesn't sync message to slave 
successfully in the timeout(default 5s).
 
 - **SLAVE_NOT_AVAILABLE**
 
-Message send successfully, but slave is not available.It will return 
SLAVE_NOT_AVAILABLE when Broker role is SYNC_MASTER(default is ASYNC_MASTER), 
and it doesn't have a slave server available. 
+Message send successfully, but slave is not available. It will return 
SLAVE_NOT_AVAILABLE when Broker role is SYNC_MASTER(default is ASYNC_MASTER), 
and it doesn't have a slave server available. 
 
 ### 1.2 Handling of message send failure
 Send method of producer itself supports internal retry. The logic of retry is 
as follows:
@@ -77,7 +77,7 @@ Typically, this is the process by which messages are sent:
 - Client send request to server
 - Server process request
 - Server response to client 
-So, the time taken to send a message is the sum of the three steps above.Some 
scenarios require very little time, but not much reliability, such as log 
collect application.
+So, the time taken to send a message is the sum of the three steps above. Some 
scenarios require very little time, but not much reliability, such as log 
collect application.
 This type application can use oneway to send messages. Oneway only send 
request without waiting for a reply, and send a request at the client 
implementation level is simply the overhead of an
  operating system call that writes data to the client's socket buffer, this 
process that typically takes microseconds.
 
diff --git a/tieredstore/README.md b/tieredstore/README.md
index 41e7458a2a..6b5ecc8c8d 100644
--- a/tieredstore/README.md
+++ b/tieredstore/README.md
@@ -13,7 +13,7 @@ This article is a cookbook for RocketMQ tiered storage.
 Use the following steps to easily use tiered storage
 
 1. Change `messageStorePlugIn` to 
`org.apache.rocketmq.tieredstore.TieredMessageStore` in your `broker.conf`.
-2. Configure your backend service provider. change 
`tieredBackendServiceProvider` to your storage medium implement. We give a 
default implement: POSIX provider, and you need to change `tieredStoreFilePath` 
to the mount point of storage medium for tiered storage.
+2. Configure your backend service provider. Change 
`tieredBackendServiceProvider` to your storage medium implementation. We 
provide a default implementation: POSIX provider, and you need to change 
`tieredStoreFilePath` to the mount point of the storage medium for tiered 
storage.
 3. Start the broker and enjoy!
 
 ## Configuration
@@ -21,16 +21,16 @@ Use the following steps to easily use tiered storage
 The following are some core configurations, for more details, see 
[TieredMessageStoreConfig](https://github.com/apache/rocketmq/blob/develop/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/common/TieredMessageStoreConfig.java)
 
 | Configuration                   | Default value                              
                   | Unit        | Function                                     
                                   |
-| ------------------------------- 
|---------------------------------------------------------------| ----------- | 
------------------------------------------------------------------------------- 
|
+| ------------------------------- 
|---------------------------------------------------------------| ----------- 
|---------------------------------------------------------------------------------|
 | messageStorePlugIn              |                                            
                   |             | Set to 
org.apache.rocketmq.tieredstore.TieredMessageStore to use tiered storage |
 | tieredMetadataServiceProvider   | 
org.apache.rocketmq.tieredstore.metadata.DefaultMetadataStore |             | 
Select your metadata provider                                                   
|
 | tieredBackendServiceProvider    | 
org.apache.rocketmq.tieredstore.provider.PosixFileSegment     |             | 
Select your backend service provider                                            
|
-| tieredStoreFilePath             |                                            
                   |             | Select the directory using for tiered 
storage, only for POSIX provider.         |
+| tieredStoreFilePath             |                                            
                   |             | Select the directory used for tiered 
storage, only for POSIX provider.          |
 | tieredStorageLevel              | NOT_IN_DISK                                
                   |             | The options are DISABLE, NOT_IN_DISK, 
NOT_IN_MEM, FORCE                         |
 | tieredStoreFileReservedTime     | 72                                         
                   | hour        | Default topic TTL in tiered storage          
                                   |
 | tieredStoreGroupCommitCount     | 2500                                       
                   |             | The number of messages that trigger one 
batch transfer                          |
 | tieredStoreGroupCommitSize      | 33554432                                   
                   | byte        | The size of messages that trigger one batch 
transfer, 32M by default            |
-| tieredStoreMaxGroupCommitCount  | 10000                                      
                   |             | The maximum number of messages waiting to be 
transfered per queue               |
+| tieredStoreMaxGroupCommitCount  | 10000                                      
                   |             | The maximum number of messages waiting to be 
transferred per queue              |
 | readAheadCacheExpireDuration    | 1000                                       
                   | millisecond | Read-ahead cache expiration time             
                                   |
 | readAheadCacheSizeThresholdRate | 0.3                                        
                   |             | The maximum heap space occupied by the 
read-ahead cache                         |
 
@@ -61,4 +61,4 @@ We need community participation to add more backend service 
providers for tiered
 
 1. Extend 
[FileSegment](https://github.com/apache/rocketmq/blob/develop/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/FileSegment.java)
 and implement the methods of 
[FileSegmentProvider](https://github.com/apache/rocketmq/blob/develop/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/FileSegmentProvider.java)
 interface.
 2. Record metrics where appropriate. See 
`rocketmq_tiered_store_provider_rpc_latency`, 
`rocketmq_tiered_store_provider_upload_bytes`, and 
`rocketmq_tiered_store_provider_download_bytes`
-3. No need to maintain your own cache and avoid polluting the page cache. It 
is already having the read-ahead cache.
+3. No need to maintain your own cache and avoid polluting the page cache. It 
already has the read-ahead cache.

Reply via email to