Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[improve][doc] Updated concepts-broker-load-balancing-types #655

Merged

Conversation

heesung-sn
Copy link
Contributor

@heesung-sn heesung-sn commented Jul 26, 2023

Updated concepts-broker-load-balancing-types.

We will have a separate blog for the performance test part. I think we need to keep the tone of this comparison natural on the website.

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

@github-actions
Copy link
Contributor

@heesung-sn Please add the following content to your PR description and select a checkbox:

- [ ] `doc` <!-- Your PR contains doc changes -->
- [ ] `doc-required` <!-- Your PR changes impact docs and you will update later -->
- [ ] `doc-not-needed` <!-- Your PR changes do not impact docs -->
- [ ] `doc-complete` <!-- Docs have been already added -->

@github-actions github-actions bot added doc Improvements or additions to documentation and removed doc-label-missing labels Jul 26, 2023
@heesung-sn
Copy link
Contributor Author

heesung-sn commented Jul 26, 2023

Screen Shot 2023-07-26 at 4 01 09 PM sharing a preview from my local ide.

@Anonymitaet Anonymitaet added this to the 3.1.0 milestone Jul 27, 2023
| Dimension | Modular broker load balancer |Extensible broker load balancer
|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---
Available version | Pulsar 1.7.0 <br/> <br/>2017 |Pulsar 3.0.0 <br/> <br/>2023
Load Balance Metadata Store and Replication | Dependent on ZooKeeper for load balance metadata store and replication.<br/> <br/> - All broker load data and all bundle load data are stored in ZooKeeper and replicated to all brokers via ZooKeeper watchers. <br/><br/>- All bundle ownerships are stored in Zookeeper as ephemeral locks. | Dependent on system topics and table views for load balance metadata store and replication. <br/> <br/> - All broker load data are stored in a non-persistent system topic and replicated to all brokers via table views. <br/> <br/>- Each broker publishes only top k bundles' load data in a non-persistent system topic, and only the leader broker consumes it via a table view. <br/> <br/> - Bundle ownerships are stored in a persistent system topic and replicated to all brokers via table views.<br/> <br/> * The absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Load Balance Metadata Store and Replication | Dependent on ZooKeeper for load balance metadata store and replication.<br/> <br/> - All broker load data and all bundle load data are stored in ZooKeeper and replicated to all brokers via ZooKeeper watchers. <br/><br/>- All bundle ownerships are stored in Zookeeper as ephemeral locks. | Dependent on system topics and table views for load balance metadata store and replication. <br/> <br/> - All broker load data are stored in a non-persistent system topic and replicated to all brokers via table views. <br/> <br/>- Each broker publishes only top k bundles' load data in a non-persistent system topic, and only the leader broker consumes it via a table view. <br/> <br/> - Bundle ownerships are stored in a persistent system topic and replicated to all brokers via table views.<br/> <br/> * The absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics.
Load Balance Metadata Store and Replication | Dependent on ZooKeeper for load balance metadata store and replication.<br/> <br/> - All broker load data and all bundle load data are stored in ZooKeeper and replicated to all brokers via ZooKeeper watchers. <br/><br/>- All bundle ownerships are stored in ZooKeeper as ephemeral locks. | Dependent on system topics and table views for load balance metadata store and replication. <br/> <br/> - All broker load data are stored in non-persistent system topics and replicated to all brokers via table views. <br/> <br/>- Each broker publishes only top k bundles' load data in non-persistent system topics, and only the leader broker consumes it via table views. <br/> <br/> - Bundle ownerships are stored in persistent system topics and replicated to all brokers via table views.<br/> <br/> - The absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The broker load data is stored in a single non-persistent topic. (1st topic)
The topk bundle load data is stored in a separate non-persistent topic.(2nd topic)
Bundle ownerships are stored in a separate persistent topic.(3rd topic)

I intentionally used * to note that the following is an annotation.

the absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest using another format (like Note: xxxx), otherwise, users might take it as an item of the unordered list.

image

Copy link
Contributor Author

@heesung-sn heesung-sn Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced * with Note.

|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---
Available version | Pulsar 1.7.0 <br/> <br/>2017 |Pulsar 3.0.0 <br/> <br/>2023
Load Balance Metadata Store and Replication | Dependent on ZooKeeper for load balance metadata store and replication.<br/> <br/> - All broker load data and all bundle load data are stored in ZooKeeper and replicated to all brokers via ZooKeeper watchers. <br/><br/>- All bundle ownerships are stored in Zookeeper as ephemeral locks. | Dependent on system topics and table views for load balance metadata store and replication. <br/> <br/> - All broker load data are stored in a non-persistent system topic and replicated to all brokers via table views. <br/> <br/>- Each broker publishes only top k bundles' load data in a non-persistent system topic, and only the leader broker consumes it via a table view. <br/> <br/> - Bundle ownerships are stored in a persistent system topic and replicated to all brokers via table views.<br/> <br/> * The absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics.
Load Balance Decision<br/>(Load Balance leader dependency)| Single leader broker decides on bundle-broker assignment, bundle splitting, and bundle unloading. <br/> <br/> * The leader broker requires global load information | Each broker decides and runs bundle-broker assignment(lookup) and bundle splitting based on the local(replicated) information. <br/><br/> The leader broker still decides on bundle unloading globally.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Load Balance Decision<br/>(Load Balance leader dependency)| Single leader broker decides on bundle-broker assignment, bundle splitting, and bundle unloading. <br/> <br/> * The leader broker requires global load information | Each broker decides and runs bundle-broker assignment(lookup) and bundle splitting based on the local(replicated) information. <br/><br/> The leader broker still decides on bundle unloading globally.
Load Balance Decision<br/>(Load Balance leader dependency)| Single leader broker decides on bundle-broker assignment, bundle splitting, and bundle unloading. <br/> <br/> - The leader broker requires global load information | Each broker decides and runs bundle-broker assignment (lookup) and bundle splitting based on the local (replicated) information. <br/><br/> The leader broker still decides on bundle unloading globally.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I intentionally used * to note that the following is an annotation.

The leader broker requires global load information

Available version | Pulsar 1.7.0 <br/> <br/>2017 |Pulsar 3.0.0 <br/> <br/>2023
Load Balance Metadata Store and Replication | Dependent on ZooKeeper for load balance metadata store and replication.<br/> <br/> - All broker load data and all bundle load data are stored in ZooKeeper and replicated to all brokers via ZooKeeper watchers. <br/><br/>- All bundle ownerships are stored in Zookeeper as ephemeral locks. | Dependent on system topics and table views for load balance metadata store and replication. <br/> <br/> - All broker load data are stored in a non-persistent system topic and replicated to all brokers via table views. <br/> <br/>- Each broker publishes only top k bundles' load data in a non-persistent system topic, and only the leader broker consumes it via a table view. <br/> <br/> - Bundle ownerships are stored in a persistent system topic and replicated to all brokers via table views.<br/> <br/> * The absolute size of the replicated load data and the complexity of the replication decreased due to passing the data through memory-only, non-persistent topics.
Load Balance Decision<br/>(Load Balance leader dependency)| Single leader broker decides on bundle-broker assignment, bundle splitting, and bundle unloading. <br/> <br/> * The leader broker requires global load information | Each broker decides and runs bundle-broker assignment(lookup) and bundle splitting based on the local(replicated) information. <br/><br/> The leader broker still decides on bundle unloading globally.
Pub/Sub Reconnection upon Bundle Unloading | When bundles are unloaded, the topics in the bundles will be temporarily closed, and producers and consumers connect to new owner brokers. <br/> <br/> - Connecting to the new owner brokers involves redirecting lookup requests via the leader broker. | Any broker can respond to the lookup requests to locate the new owner brokers without asking the leader broker. The reconnection does not go through the leader broker.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Pub/Sub Reconnection upon Bundle Unloading | When bundles are unloaded, the topics in the bundles will be temporarily closed, and producers and consumers connect to new owner brokers. <br/> <br/> - Connecting to the new owner brokers involves redirecting lookup requests via the leader broker. | Any broker can respond to the lookup requests to locate the new owner brokers without asking the leader broker. The reconnection does not go through the leader broker.
Pub/sub reconnection upon bundle unloading | When bundles are unloaded, the topics in the bundles are temporarily closed, and producers and consumers connect to new owner brokers. <br/> <br/> - Connecting to the new owner brokers involves redirecting lookup requests via the leader broker. | Any broker can respond to the lookup requests to locate the new owner brokers without asking the leader broker. The reconnection does not go through the leader broker.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated.

@heesung-sn heesung-sn force-pushed the concepts-broker-load-balancing-types branch from f2a054e to 341254f Compare July 27, 2023 01:34
@Anonymitaet Anonymitaet merged commit b56a30e into apache:main Jul 27, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants