Anonymitaet commented on a change in pull request #9692:
URL: https://github.com/apache/pulsar/pull/9692#discussion_r581825197



##########
File path: site2/docs/administration-isolation.md
##########
@@ -0,0 +1,84 @@
+---
+id: administration-isolation
+title: Pulsar isolation
+sidebar_label: Pulsar isolation
+---
+
+In an organization, a Pulsar instance provides services to multiple teams. 
When organizing the resources across multiple teams, you want to make a 
suitable isolation plan to avoid the resource competition between different 
teams and applications and provide high-quality messaging service. In this 
case, you need to take resource isolation into consideration and weigh your 
intended actions against expected and unexpected consequences.
+
+To enforce resource isolation, you can use the Pulsar isolation policy, which 
allows you to allocate resources (**broker** and **bookie**) for the namespace.
+
+## Broker isolation
+
+In Pulsar, when namespaces (more specifically, namespace bundles) are assigned 
dynamically to brokers, the namespace isolation policy limits the set of 
brokers that can be used for assignment. Before topics are assigned to brokers, 
you can set the namespace isolation policy with a primary or a secondary regex 
to select desired brokers.
+
+You can set a namespace isolation policy for a cluster using one of the 
following methods. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+```
+pulsar-admin ns-isolation-policy set options
+```
+
+For more information about the command and descriptions, see 
[here](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#-em-set-em-).
+
+**Example**
+
+```shell
+bin/pulsar-admin ns-isolation-policy set \
+--auto-failover-policy-type min_available \
+--auto-failover-policy-params min_limit=1,usage_threshold=80 \
+--namespaces my-tenant/my-namespace \
+--primary 10.193.216.*  my-cluster policy-name
+```
+
+<!--REST API-->
+
+[PUT 
/admin/v2/namespaces/{tenant}/{namespace}](https://pulsar.apache.org/admin-rest-api/?version=master&apiversion=v2#operation/createNamespace)
+
+<!--Java admin API-->
+
+For how to set namespace isolation policy using Java admin API, see 
[here](https://github.com/apache/pulsar/blob/master/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/NamespacesImpl.java#L251).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Bookie isolation
+
+A namespace can be isolated into user-defined groups of bookies, which 
guarantees all the data that belongs to the namespace is stored in desired 
bookies. The bookie affinity group uses the BookKeeper [rack-aware placement 
policy](https://bookkeeper.apache.org/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsemblePlacementPolicy.html)
 and it is a way to feed rack information which is stored as JSON format in 
znode.
+
+You can set a bookie affinity group using one of the following methods.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+```
+pulsar-admin namespaces set-bookie-affinity-group options
+```
+
+For more information about the command and descriptions, see 
[here](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#-em-set-bookie-affinity-group-em-).
+
+**Example**
+
+```shell
+bin/pulsar-admin bookies set-bookie-rack \
+--bookie 127.0.0.1:3181 \

Review comment:
       @sijie thanks for your suggestions.
   
   I think your `note`, `--bookie bookie-id (the bookie id is in 
<hostname>:<port> format)`, and `Explain what people should put in --primary.` 
are "explanations" for the command `pulsar-admin bookies set-bookie-rack`, 
right?
   
   Currently, both `pulsar-admin bookies list-bookies` and `pulsar-admin 
bookies set-bookie-rack` are not available on the [pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces),
 and it seems that we have the following bookie related commands but none of 
them are available on the [pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces).
 
   
![image](https://user-images.githubusercontent.com/50226895/108981061-4f8ad480-76c7-11eb-8f47-6bdb8dc145ec.png)
   
   Will these commands be shown on the [pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces)?
 If so, I think the **explanations talked above** should be added to the 
command `pulsar-admin bookies set-bookie-rack`on the [pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces)
 rather than here because users who want to use pulsar-admin commands would 
navigate to the [pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces)
 to see descriptions, notes, and flags. And **here are just example values**.
   
   For example, I [added the descriptions for `--primary-group` and 
`--secondary-group`](https://github.com/apache/pulsar/pull/9422/files) on the 
[pulsar-admin 
website](http://pulsar.apache.org/tools/pulsar-admin/2.8.0-SNAPSHOT/#namespaces)
 rather than every occurrence they are shown on Pulsar website docs.
   
![image](https://user-images.githubusercontent.com/50226895/108982618-f4f27800-76c8-11eb-9844-a0fdf2d06b45.png)
   
   Thoughts?
   
   




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to