Re: [Discuss] Suggestion for a "clear" parameter in Pulsar-admin to simplify tenant and namespace cleanup

2023-04-17 Thread PengHui Li
The new operation will delete all the data and the metadata under
a tenant or namespace. I would like to suggest to use

`delete-all-namespaces` and `delete-all-topics`

The `delete` actually acts as a fact of deleting metadata and data.
And `truncate` is for deleting the data. IMO, we'd better not
introduce another new keyword, either `clear` or `wipe`, because
it will bring more knowledge to Pulsar users who must understand.


Thanks,
Penghui

On Mon, Apr 17, 2023 at 10:56 AM Xiangying Meng 
wrote:

> Hi Enrico,
>
> Thank you for your feedback. While I understand that
> "delete-all-namespaces" is more explicit,
> I also think it's a bit lengthy for a command-line parameter.
> I personally believe the "wipe" option, combined with a safety confirmation
> step,
>  would be more user-friendly and efficient.
>
> By adding a safety confirmation step, we can minimize the risk of
> accidental mass deletion.
> Users would be required to confirm their intention to perform the deletion
> by
> typing 'YES' or a similar confirmation word before the operation proceeds.
>
> What do you think about this approach?
> If there's a consensus, I can work on implementing this feature with the
> "wipe" option and the safety confirmation step.
>
> Best regards,
> Xiangying
>
> On Sun, Apr 16, 2023 at 11:25 PM Enrico Olivelli 
> wrote:
>
> > Il Dom 16 Apr 2023, 15:45 Asaf Mesika  ha
> scritto:
> >
> > > How about "truncate" instead of "clear"?
> > >
> >
> >
> > Truncate is better, or maybe 'wipe' (because truncate means another
> > operation for topics currently)
> >
> > Another alternative, more explicit:
> > pulsar-admin tenants delete-all-namespaces TENANT
> >
> > Enrico
> >
> > >
> > > Just wondering - since it is such a dangerous command, how can we help
> > the
> > > user not make an accidental mass deletion?
> > >
> > > On Sat, Apr 15, 2023 at 1:12 PM Girish Sharma  >
> > > wrote:
> > >
> > > > > However, the current goal is to keep the tenant and namespace
> intact
> > > > while
> > > > > cleaning up their contents.
> > > > Ah, I see now. Yes, in that case a clear command is better. Will this
> > > > command also take into account the value of the broker config
> > > > `forceDeleteNamespaceAllowed` in case someone is clearing the owner
> > > tenant?
> > > >
> > > > Regards
> > > >
> > > > On Sat, Apr 15, 2023 at 3:39 PM Enrico Olivelli  >
> > > > wrote:
> > > >
> > > > > The proposal sounds really useful, especially for automated
> testing.
> > > > > +1
> > > > >
> > > > > Enrico
> > > > >
> > > > > Il giorno sab 15 apr 2023 alle ore 12:07 Xiangying Meng
> > > > >  ha scritto:
> > > > > >
> > > > > > Dear Girish,
> > > > > >
> > > > > > Thank you for your response and suggestion to extend the use of
> the
> > > > > > `boolean force` flag for namespaces and tenants.
> > > > > > I understand that the `force` flag is already implemented for
> > > deleting
> > > > > > topics, namespaces, and tenants,
> > > > > > and it provides a consistent way to perform these actions.
> > > > > >
> > > > > > However, the current goal is to keep the tenant and namespace
> > intact
> > > > > while
> > > > > > cleaning up their contents.
> > > > > > In other words, I want to have a way to remove all topics within
> a
> > > > > > namespace or all namespaces and topics
> > > > > > within a tenant without actually deleting the namespace or tenant
> > > > itself.
> > > > > >
> > > > > > To achieve this goal, I proposed adding a `clear` command for
> > > > > `namespaces`
> > > > > > and `tenants`.
> > > > > >
> > > > > > This approach would allow users to keep the tenant and namespace
> > > > > structures
> > > > > > in place
> > > > > > while cleaning up their contents.
> > > > > > I hope this clarifies my intention, and I would like to hear your
> > > > > thoughts
> > > > > > on this proposal.
> > > > > >
> > > > > > Best regards,
> > > > > > Xiangying
> > > > > >
> > > > > > On Sat, Apr 15, 2023 at 5:49 PM Girish Sharma <
> > > scrapmachi...@gmail.com
> > > > >
> > > > > > wrote:
> > > > > >
> > > > > > > Hello Xiangying,
> > > > > > > This indeed is a cumbersome task to delete a filled namespace
> or
> > > > > tenant. We
> > > > > > > face this challenge in our organization where we use the
> > > > multi-tenancy
> > > > > > > feature of pulsar heavily.
> > > > > > >
> > > > > > > I would like to suggest a different command to do this though..
> > > > > Similar to
> > > > > > > how you cannot delete a topic without deleting its
> > > > > > > subscribers/producers/consumers, unless we use the `boolean
> > force`
> > > > > flag.
> > > > > > > Why not extend this to namespace and tenant as well and let the
> > > force
> > > > > param
> > > > > > > do the cleanup (which your suggested `clear` command would do).
> > > > > > >
> > > > > > > As of today, using force to delete a namespace just returns 405
> > > > saying
> > > > > > > broker doesn't allow force delete of namespace containing
> topics.
> > > > > > >
> > > > > > > Any thoughts?
> > > > > 

Re: [DISCUSS] Add checklist for PMC binding vote of PIP

2023-04-17 Thread PengHui Li
I don't think it will bring more burden on reviewers.
It will only provide a checklist for reviewers before
you vote +1 or -1. It could be done in 1 minute if you
did a great proposal review. Of course, if you are
missing some aspects that should be reviewed,
This will make the reviewer spend more time reviewing
the missing items, but it is valuable.

I don't think this proposal is accusing PMCs, but PMCs
might also miss some items. The checklist can help PMCs
to avoid missing items. Actually, I think every PMC has
checklist for a proposal review. It might be recorded in
a tiny notebook, or in his brain. Now, the proposal provides
a way to share your experience of proposal review.

And we are actually doing the same thing in the voting of
release. Everyone will provide a list of what they have
verified with +1 or -1.

Regards,
Penghui


On Mon, Apr 17, 2023 at 10:37 AM Xiangying Meng 
wrote:

> Hi, Asaf
> This is a great suggestion. I believe one significant advantage is that
> it can help newcomers better understand the voting process and how
> decisions are made.
> The checklist can serve as a reference framework,
> assisting new members in becoming familiar with the project's voting
> requirements and standards more quickly,
> thereby improving the overall participation and transparency of the
> project.
>
> Moreover, this checklist can ensure that all participants have thoroughly
> reviewed the PIP,
> resulting in higher-quality PIPs.
> Although introducing a checklist may bring some additional burden,
> in the long run, it contributes to the project's robust development and
> continuous improvement.
>
> Thanks
> Xiangying
>
>
> On Sun, Apr 16, 2023 at 11:23 PM Enrico Olivelli 
> wrote:
>
> > Asaf,
> > I understand your intent.
> >
> > I think that when anyone casts a +1, especially with '(binding)' they
> know
> > well what they are doing.
> > It is not an 'I like it', but it is an important assumption of
> > responsibility.
> > This applies to all the VOTEs.
> >
> > Requiring this checklist may be good in order to help new comers to
> > understand better how we take our decisions.
> >
> > If you feel that currently there are people who cast binding votes
> without
> > knowing what they do...then I believe that it is kind of a serious issue.
> >
> > It happened a few times recently that I  see this sort of ML threads
> about
> > 'the PMC is not doing well', 'we want to retire people in the PMC...',
> 'PMC
> > members vote on stuff without knowing what they do'...
> >
> > I wonder what is the root cause of this.
> >
> > Back to he original question, my position it:
> > +1 to writing a clear and very brief summary of the consideration you hBe
> > to take before casting your vote.
> > -1 to requiring this checklist when we cast a vote
> >
> > Thanks
> > Enrico
> >
> >
> >
> > Il Dom 16 Apr 2023, 15:47 Asaf Mesika  ha
> scritto:
> >
> > > Would love additional feedback on this suggestion.
> > >
> > >
> > > On Fri, Mar 31, 2023 at 4:19 AM PengHui Li  wrote:
> > >
> > > > It looks like we can try to add a new section to
> > > > https://github.com/apache/pulsar/blob/master/wiki/proposals/PIP.md
> > > > like "Review the proposal" and it is not only for PMCs, all the
> > reviewers
> > > > can follow the checklist
> > > > to cast a solemn vote.
> > > >
> > > > And I totally support the motivation of this discussion.
> > > >
> > > > Regards,
> > > > Penghui
> > > >
> > > > On Fri, Mar 31, 2023 at 4:46 AM Asaf Mesika 
> > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > When you read last year's PIPs, many lack background information,
> > hard
> > > to
> > > > > read and understand even if you know pulsar in and out.
> > > > >
> > > > > First step to fix was to change the PIP is structured:
> > > > > https://github.com/apache/pulsar/pull/19832
> > > > >
> > > > > In my opinion, when someone votes "+1" and it's binding, they
> > basically
> > > > > take the responsibility to say:
> > > > >
> > > > > * I read the PIP fully.
> > > > > * A person having basic Pulsar user knowledge, can read the PIP and
> > > fully
> > > > > understand it
> > > > >   Why? Since it contains all background information necessary to
> > > > > understand the problem and the solution
> > > > >It is written in a coherent and easy to understand way.
> > > > > * I validated the solution technically and can vouch for it.
> > > > >Examples:
> > > > >The PIP adds schema compatibility rules for Protobuf Native.
> > > > >  I learned / know protobuf well.
> > > > >  I validated the rules written containing all rules
> > needed
> > > > and
> > > > > not containing wrong rules, or missing rules.
> > > > >
> > > > >The PIP adds new OpenID Connect authentication.
> > > > >   I learned / know Authentication in Pulsar.
> > > > >I learned / know OpenID connect
> > > > >I validated the solution is architecturally correct
> > and
> > > > > sound.
> > > > >
> > > > >

Re: [Discuss] Suggestion for a "clear" parameter in Pulsar-admin to simplify tenant and namespace cleanup

2023-04-17 Thread Xiangying Meng
Hi Penghui,

I appreciate your feedback and completely agree with your concern about the
learning curve for Pulsar users. Introducing additional keywords could
potentially increase the complexity for users who need to understand the
new terms. Therefore, I accept your suggestion to use delete-all-namespaces
and delete-all-topics for the proposed improvement.

Thank you for sharing your insights, and I look forward to working on this
enhancement with the community's support.

Best regards,
Xiangying

On Mon, Apr 17, 2023 at 3:24 PM PengHui Li  wrote:

> The new operation will delete all the data and the metadata under
> a tenant or namespace. I would like to suggest to use
>
> `delete-all-namespaces` and `delete-all-topics`
>
> The `delete` actually acts as a fact of deleting metadata and data.
> And `truncate` is for deleting the data. IMO, we'd better not
> introduce another new keyword, either `clear` or `wipe`, because
> it will bring more knowledge to Pulsar users who must understand.
>
>
> Thanks,
> Penghui
>
> On Mon, Apr 17, 2023 at 10:56 AM Xiangying Meng 
> wrote:
>
> > Hi Enrico,
> >
> > Thank you for your feedback. While I understand that
> > "delete-all-namespaces" is more explicit,
> > I also think it's a bit lengthy for a command-line parameter.
> > I personally believe the "wipe" option, combined with a safety
> confirmation
> > step,
> >  would be more user-friendly and efficient.
> >
> > By adding a safety confirmation step, we can minimize the risk of
> > accidental mass deletion.
> > Users would be required to confirm their intention to perform the
> deletion
> > by
> > typing 'YES' or a similar confirmation word before the operation
> proceeds.
> >
> > What do you think about this approach?
> > If there's a consensus, I can work on implementing this feature with the
> > "wipe" option and the safety confirmation step.
> >
> > Best regards,
> > Xiangying
> >
> > On Sun, Apr 16, 2023 at 11:25 PM Enrico Olivelli 
> > wrote:
> >
> > > Il Dom 16 Apr 2023, 15:45 Asaf Mesika  ha
> > scritto:
> > >
> > > > How about "truncate" instead of "clear"?
> > > >
> > >
> > >
> > > Truncate is better, or maybe 'wipe' (because truncate means another
> > > operation for topics currently)
> > >
> > > Another alternative, more explicit:
> > > pulsar-admin tenants delete-all-namespaces TENANT
> > >
> > > Enrico
> > >
> > > >
> > > > Just wondering - since it is such a dangerous command, how can we
> help
> > > the
> > > > user not make an accidental mass deletion?
> > > >
> > > > On Sat, Apr 15, 2023 at 1:12 PM Girish Sharma <
> scrapmachi...@gmail.com
> > >
> > > > wrote:
> > > >
> > > > > > However, the current goal is to keep the tenant and namespace
> > intact
> > > > > while
> > > > > > cleaning up their contents.
> > > > > Ah, I see now. Yes, in that case a clear command is better. Will
> this
> > > > > command also take into account the value of the broker config
> > > > > `forceDeleteNamespaceAllowed` in case someone is clearing the owner
> > > > tenant?
> > > > >
> > > > > Regards
> > > > >
> > > > > On Sat, Apr 15, 2023 at 3:39 PM Enrico Olivelli <
> eolive...@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > The proposal sounds really useful, especially for automated
> > testing.
> > > > > > +1
> > > > > >
> > > > > > Enrico
> > > > > >
> > > > > > Il giorno sab 15 apr 2023 alle ore 12:07 Xiangying Meng
> > > > > >  ha scritto:
> > > > > > >
> > > > > > > Dear Girish,
> > > > > > >
> > > > > > > Thank you for your response and suggestion to extend the use of
> > the
> > > > > > > `boolean force` flag for namespaces and tenants.
> > > > > > > I understand that the `force` flag is already implemented for
> > > > deleting
> > > > > > > topics, namespaces, and tenants,
> > > > > > > and it provides a consistent way to perform these actions.
> > > > > > >
> > > > > > > However, the current goal is to keep the tenant and namespace
> > > intact
> > > > > > while
> > > > > > > cleaning up their contents.
> > > > > > > In other words, I want to have a way to remove all topics
> within
> > a
> > > > > > > namespace or all namespaces and topics
> > > > > > > within a tenant without actually deleting the namespace or
> tenant
> > > > > itself.
> > > > > > >
> > > > > > > To achieve this goal, I proposed adding a `clear` command for
> > > > > > `namespaces`
> > > > > > > and `tenants`.
> > > > > > >
> > > > > > > This approach would allow users to keep the tenant and
> namespace
> > > > > > structures
> > > > > > > in place
> > > > > > > while cleaning up their contents.
> > > > > > > I hope this clarifies my intention, and I would like to hear
> your
> > > > > > thoughts
> > > > > > > on this proposal.
> > > > > > >
> > > > > > > Best regards,
> > > > > > > Xiangying
> > > > > > >
> > > > > > > On Sat, Apr 15, 2023 at 5:49 PM Girish Sharma <
> > > > scrapmachi...@gmail.com
> > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hello Xiangying,
> > > > > > > > This indeed is a cumbersome task to del

Re: [VOTE] Pulsar Release 2.11.1 Candidate-2

2023-04-17 Thread PengHui Li
The RC version failed to verify the state function

The output:

```
~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
functions status --tenant test --namespace test-namespace --name word_count
{
  "numInstances" : 1,
  "numRunning" : 1,
  "instances" : [ {
"instanceId" : 0,
"status" : {
  "running" : true,
  "error" : "",
  "numRestarts" : 0,
  "numReceived" : 15,
  "numSuccessfullyProcessed" : 0,
  "numUserExceptions" : 15,
  "latestUserExceptions" : [ {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731596735
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731596736
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731596737
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731596738
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731596738
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731656845
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731656845
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731656846
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731656847
  }, {
"exceptionString" : "State test/test-namespace/word_count is not
enabled.",
"timestampMs" : 1681731656847
  } ],
  "numSystemExceptions" : 0,
  "latestSystemExceptions" : [ ],
  "averageLatency" : 0.146536533,
  "lastInvocationTime" : 1681731656847,
  "workerId" : "c-standalone-fw-localhost-8080"
}
  } ]
}
-
~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
functions querystate --tenant test --namespace test-namespace --name
word_count -k hello -w
# key 'hello' doesn't exist.
# key 'hello' doesn't exist.
# key 'hello' doesn't exist
State storage client is not done initializing. Please try again in a little
while.

Reason: State storage client is not done initializing. Please try again in
a little while.
```

The logs from broker:

```
2023-04-17T19:42:55,447+0800 [pulsar-web-48-15] INFO
 org.eclipse.jetty.server.RequestLog - 127.0.0.1 - - [17/Apr/2023:19:42:55
+0800] "GET /admin/v2/namespaces/test HTTP/1.1" 200 23 "-"
"Pulsar-Java-v2.11.1" 5
2023-04-17T19:42:55,450+0800 [pulsar-web-48-4] INFO
 org.apache.pulsar.common.nar.NarUnpacker - Created directory
/var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked
2023-04-17T19:42:55,451+0800 [pulsar-web-48-4] INFO
 org.apache.pulsar.common.nar.NarUnpacker - Extracting
/var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/functions4142072620718955215.tmp
to
/var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
2023-04-17T19:42:55,452+0800 [pulsar-web-48-4] ERROR
org.apache.pulsar.common.nar.NarUnpacker - There was a problem extracting
the nar file. Deleting
/var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
to clean up state.
java.io.FileNotFoundException:
/var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q/META-INF/MANIFEST.MF
(No such file or directory)
at java.io.FileOutputStream.open0(Native Method) ~[?:?]
at java.io.FileOutputStream.open(FileOutputStream.java:295) ~[?:?]
at java.io.FileOutputStream.(FileOutputStream.java:236) ~[?:?]
at java.io.FileOutputStream.(FileOutputStream.java:185) ~[?:?]
at org.apache.pulsar.common.nar.NarUnpacker.makeFile(NarUnpacker.java:143)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at org.apache.pulsar.common.nar.NarUnpacker.unpack(NarUnpacker.java:126)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at
org.apache.pulsar.common.nar.NarUnpacker.doUnpackNar(NarUnpacker.java:95)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at org.apache.pulsar.common.nar.NarUnpacker.unpackNar(NarUnpacker.java:64)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at
org.apache.pulsar.common.nar.NarClassLoader.getFromArchive(NarClassLoader.java:148)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at
org.apache.pulsar.common.nar.NarClassLoaderBuilder.build(NarClassLoaderBuilder.java:72)
~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
at
org.apache

Re: [VOTE] Pulsar Release 2.10.4 Candidate 4

2023-04-17 Thread PengHui Li
+1 (binding)

- Checked the signature
- Build from the source package
- Start standalone
- Checked cassandra connector
- Checked state function

Regards,
Penghui

On Sat, Apr 15, 2023 at 5:37 PM  wrote:

> +1 (Binding)
>
>  • Built from the source package (maven 3.8.6 OpenJDK 11)
>  • Ran binary package standalone with pub/sub
>  • Ran docker image(pulsar-all) standalone with pub/sub
>  • Ran License check
>
> Best,
> Mattison
> On Apr 12, 2023, 17:10 +0800, Xiangying Meng ,
> wrote:
> > This is the fourth release candidate for Apache Pulsar, version 2.10.4.
> >
> > This release contains 126 commits by 37 contributors.
> > https://github.com/apache/pulsar/compare/v2.10.3...v2.10.4-candidate-4
> >
> > *** Please download, test and vote on this release. This vote will stay
> open
> > for at least 72 hours ***
> >
> > Note that we are voting upon the source (tag), binaries are provided for
> > convenience.
> >
> > Source and binary files:
> > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-2.10.4-candidate-4/
> >
> > SHA-512 checksums:
> >
> 63343005235be32e970574c9733f06cb472adfdd6511d53b91902d66c805b21cee4039b51b69013bf0f9cbcde82f4cd944c069a7d119d1c908a40716ff82eca3
> > apache-pulsar-2.10.4-bin.tar.gz
> >
> 2d3398a758917bccefa8550f3f69ec8a72a29f541bcd45963e6fddaec024cc690b33f1d49392dc2437e332e90a89e47334925a50960c5f8960e34c1ac8ed2543
> > apache-pulsar-2.10.4-src.tar.gz
> >
> > Maven staging repo:
> > https://repository.apache.org/content/repositories/orgapachepulsar-1226
> >
> > The tag to be voted upon:
> > v2.10.4-candidate-4
> > (1fe05d5cd3ec9f70cd7179efa4b69eac72fd88bd)
> > https://github.com/apache/pulsar/releases/tag/v2.10.4-candidate-4
> >
> > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > https://downloads.apache.org/pulsar/KEYS
> >
> > Docker images:
> >
> > 
> >
> https://hub.docker.com/layers/xiangyingmeng/pulsar/2.10.4/images/sha256-8b76d49401d3fe398be3cde395fb164ad8722b64691e31c44991f32746ca8119?context=repo
> >
> > 
> >
> https://hub.docker.com/layers/xiangyingmeng/pulsar-all/2.10.4/images/sha256-c20a13ed215e4837f95a99cf84914d03f557204d44ed610dfc41d2e23a77a92c?context=repo
> >
> > Please download the source package, and follow the README to build
> > and run the Pulsar standalone service.
>


Re: [VOTE] Pulsar Release 2.9.5 Candidate 3

2023-04-17 Thread PengHui Li
+1 (binding)

- Checked the signature
- Build from the source package
- Start standalone
- Checked cassandra connector
- Checked state function

Regards,
Penghui

On Sat, Apr 15, 2023 at 6:08 PM  wrote:

> +1 (Binding)
>
>  • Built from the source package (maven 3.8.6 OpenJDK 11.0)
>  • Ran binary package standalone with pub/sub
>  • Ran docker image(pulsar-all) standalone with pub/sub
>  • Ran License check
>
> Best,
> Mattison
> On Apr 10, 2023, 15:38 +0800, Cong Zhao , wrote:
> > This is the third release candidate for Apache Pulsar, version 2.9.5.
> >
> > This release contains 105 commits by 32 contributors.
> > https://github.com/apache/pulsar/compare/v2.9.4...v2.9.5-candidate-3
> >
> > *** Please download, test, and vote on this release. This vote will stay
> > open
> > for at least 72 hours ***
> >
> > Note that we are voting upon the source (tag), binaries are provided for
> > convenience.
> >
> > Source and binary files:
> > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-2.9.5-candidate-3/
> >
> > SHA-512 checksums:
> >
> c5f1b06f2f7249616a07b732daa036546591c1aa9e9f37e88ddce6d3eaf3d78b2c6da548ef42946d20d70f9397cd5b55ea4e01fe5cb4aa96fb4608bd62635f67
> > apache-pulsar-2.9.5-bin.tar.gz
> >
> >
> 72dee0fb642a269c5d0aedfa3e56aee503f56af319b67e4628f39da8cdd44f0bbdcd019e121eafca32b7b7665959770a3d91f0618d157837808da9511e9011a40f
> > apache-pulsar-2.9.5-src.tar.gz
> >
> >
> 738478bbcf323080487f5645b4c1edb9f45d126a8a2cd7e8c5678c8569ec7b21042ecb6fdd4796b65c6a24bd1e5ad082f5c0d15eb1a64408be4f4c53a06d3ef660
> > apache-pulsar-offloaders-2.9.5-bin.tar.gz
> >
> > Maven staging repo:
> > https://repository.apache.org/content/repositories/orgapachepulsar-1223/
> >
> > The tag to be voted upon:
> > v2.9.5-candidate-3 (7337470f33586aa639854266efe95c2fa32f48db)
> > https://github.com/apache/pulsar/releases/tag/v2.9.5-candidate-3
> >
> > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > https://downloads.apache.org/pulsar/KEYS
> >
> > Docker images:
> >
> > 
> >
> https://hub.docker.com/layers/czcoder/pulsar/2.9.5/images/sha256-9bcbad78a65a09b3fe5d3acd158574ad0eda4531cc8c49db16760a2ed1364070?context=explore
> >
> > 
> >
> https://hub.docker.com/layers/czcoder/pulsar-all/2.9.5/images/sha256-94e50aa1d5b91be9698c959c787eaff0677bb3c65dd1a578b1a641fa5a1d1715?context=explore
> >
> > 
> >
> https://hub.docker.com/layers/czcoder/pulsar-grafana/2.9.5/images/sha256-d857951e85b41fe7172769380ffbcac126c75dc476fdcb4755623600b3eb03e0?context=explore
> >
> > Please download the source package, and follow the README to build
> > and run the Pulsar standalone service.
> >
> > Thanks
> > Cong Zhao
>


Re: [VOTE] Pulsar Release 2.11.1 Candidate-2

2023-04-17 Thread Haiting Jiang
Hi Penghui

Did you set `PULSAR_STANDALONE_USE_ZOOKEEPER=1` when verifying
Stateful Functions ?

Thanks,
Haiting

On Mon, Apr 17, 2023 at 7:48 PM PengHui Li  wrote:
>
> The RC version failed to verify the state function
>
> The output:
>
> ```
> ~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
> functions status --tenant test --namespace test-namespace --name word_count
> {
>   "numInstances" : 1,
>   "numRunning" : 1,
>   "instances" : [ {
> "instanceId" : 0,
> "status" : {
>   "running" : true,
>   "error" : "",
>   "numRestarts" : 0,
>   "numReceived" : 15,
>   "numSuccessfullyProcessed" : 0,
>   "numUserExceptions" : 15,
>   "latestUserExceptions" : [ {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731596735
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731596736
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731596737
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731596738
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731596738
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731656845
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731656845
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731656846
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731656847
>   }, {
> "exceptionString" : "State test/test-namespace/word_count is not
> enabled.",
> "timestampMs" : 1681731656847
>   } ],
>   "numSystemExceptions" : 0,
>   "latestSystemExceptions" : [ ],
>   "averageLatency" : 0.146536533,
>   "lastInvocationTime" : 1681731656847,
>   "workerId" : "c-standalone-fw-localhost-8080"
> }
>   } ]
> }
> -
> ~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
> functions querystate --tenant test --namespace test-namespace --name
> word_count -k hello -w
> # key 'hello' doesn't exist.
> # key 'hello' doesn't exist.
> # key 'hello' doesn't exist
> State storage client is not done initializing. Please try again in a little
> while.
>
> Reason: State storage client is not done initializing. Please try again in
> a little while.
> ```
>
> The logs from broker:
>
> ```
> 2023-04-17T19:42:55,447+0800 [pulsar-web-48-15] INFO
>  org.eclipse.jetty.server.RequestLog - 127.0.0.1 - - [17/Apr/2023:19:42:55
> +0800] "GET /admin/v2/namespaces/test HTTP/1.1" 200 23 "-"
> "Pulsar-Java-v2.11.1" 5
> 2023-04-17T19:42:55,450+0800 [pulsar-web-48-4] INFO
>  org.apache.pulsar.common.nar.NarUnpacker - Created directory
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked
> 2023-04-17T19:42:55,451+0800 [pulsar-web-48-4] INFO
>  org.apache.pulsar.common.nar.NarUnpacker - Extracting
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/functions4142072620718955215.tmp
> to
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
> 2023-04-17T19:42:55,452+0800 [pulsar-web-48-4] ERROR
> org.apache.pulsar.common.nar.NarUnpacker - There was a problem extracting
> the nar file. Deleting
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
> to clean up state.
> java.io.FileNotFoundException:
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q/META-INF/MANIFEST.MF
> (No such file or directory)
> at java.io.FileOutputStream.open0(Native Method) ~[?:?]
> at java.io.FileOutputStream.open(FileOutputStream.java:295) ~[?:?]
> at java.io.FileOutputStream.(FileOutputStream.java:236) ~[?:?]
> at java.io.FileOutputStream.(FileOutputStream.java:185) ~[?:?]
> at org.apache.pulsar.common.nar.NarUnpacker.makeFile(NarUnpacker.java:143)
> ~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
> at org.apache.pulsar.common.nar.NarUnpacker.unpack(NarUnpacker.java:126)
> ~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
> at
> org.apache.pulsar.common.nar.NarUnpacker.doUnpackNar(NarUnpacker.java:95)
> ~[org.apache.pulsar-pulsar-common-2.11.1.jar:2.11.1]
> at org.apache.pulsar.common.n

RE: [VOTE] Pulsar Node.js Client Release 1.8.2 Candidate 4

2023-04-17 Thread Masahiro Sakamoto
+1 (binding)

- verified checksum and signature
- confirmed that the build was successful
- ran produce/consume

Regards,

Masahiro Sakamoto
Yahoo Japan Corp.
E-mail: massa...@yahoo-corp.jp

-Original Message-
From: Baodi Shi 
Sent: Friday, April 14, 2023 6:12 PM
To: dev@pulsar.apache.org
Subject: [VOTE] Pulsar Node.js Client Release 1.8.2 Candidate 4

Hi everyone,

This is the first release candidate for Apache Pulsar Node.js client,
version 1.8.2.

It fixes the following issues:
https://github.com/apache/pulsar-client-node/pulls?q=is%3Apr+label%3Arelease%2Fv1.8.2+is%3Aclosed

Please download the source files and review this release candidate:
- Download the source package, verify shasum and asc
- Follow the README.md to build and run the Pulsar Node.js client.

The release candidate package has been published to the npm registry:

https://www.npmjs.com/package/pulsar-client/v/1.8.2-rc.4

You can install it by `npm i pulsar-client@1.8.2-rc.4
--pulsar_binary_host_mirror=
https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-node/%60
and verify the package.

You can refer to this repository to verify tls related features:

https://github.com/shibd/pulsar-client-tls-test

The vote will be open for at least 72 hours. It is adopted by majority
approval, with at least 3 PMC affirmative votes.

Source files:
https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/

Pulsar's KEYS file containing PGP keys we use to sign the release:
https://downloads.apache.org/pulsar/KEYS

SHA-512 checksum:
2bcfd0155abe653924d974839307c2bc980c982252e83c6442b1a368262057d4401eef186ec2b962ec973deedd81a899469ecee6afc61bd5718fa548c7c510ad
 ./apache-pulsar-client-node-1.8.2.tar.gz

The tag to be voted upon:
v1.8.2-rc.4(7b3de1f)
https://github.com/apache/pulsar-client-node/releases/tag/v1.8.2-rc.4

Please review and vote on the release candidate #1 for the version
1.8.2, as follows:
[ ] +1, Approve the release
[ ] -1, Do not approve the release (please provide specific comments)


Thanks,
Baodi Shi


Re: [VOTE] Pulsar Node.js Client Release 1.8.2 Candidate 4

2023-04-17 Thread Yuto Furuta
+1 (non-binding)

* verify checksum and signatures
* build the source
* run producer, consumer, consumer_listener (source/npm)

Regards,

Yuto Furuta

差出人: Baodi Shi 
送信日時: 2023年4月14日 18:12
宛先: dev@pulsar.apache.org 
件名: [VOTE] Pulsar Node.js Client Release 1.8.2 Candidate 4

Hi everyone,

This is the first release candidate for Apache Pulsar Node.js client,
version 1.8.2.

It fixes the following issues:
https://github.com/apache/pulsar-client-node/pulls?q=is%3Apr+label%3Arelease%2Fv1.8.2+is%3Aclosed

Please download the source files and review this release candidate:
- Download the source package, verify shasum and asc
- Follow the README.md to build and run the Pulsar Node.js client.

The release candidate package has been published to the npm registry:

https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fpulsar-client%2Fv%2F1.8.2-rc.4&data=05%7C01%7Cyfuruta%40yahoo-corp.jp%7Ca14b3d60007641e8d58f08db3cc86e9d%7Ca208d369cd4e4f87b11998eaf31df2c3%7C1%7C0%7C638170603764950233%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bKG26QUm5gWo1CuJc3AHOcHgMb1KWPkjiAkYeM1VHWA%3D&reserved=0

You can install it by `npm i pulsar-client@1.8.2-rc.4
--pulsar_binary_host_mirror=
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdist.apache.org%2Frepos%2Fdist%2Fdev%2Fpulsar%2Fpulsar-client-node%2F%2560&data=05%7C01%7Cyfuruta%40yahoo-corp.jp%7Ca14b3d60007641e8d58f08db3cc86e9d%7Ca208d369cd4e4f87b11998eaf31df2c3%7C1%7C0%7C638170603764950233%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=m%2Fhe8LW3RSogO%2FnPl%2FAzik217g%2FPAH0cBneu%2FXFTuxw%3D&reserved=0
and verify the package.

You can refer to this repository to verify tls related features:

https://github.com/shibd/pulsar-client-tls-test

The vote will be open for at least 72 hours. It is adopted by majority
approval, with at least 3 PMC affirmative votes.

Source files:
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdist.apache.org%2Frepos%2Fdist%2Fdev%2Fpulsar%2Fpulsar-client-node%2Fpulsar-client-node-1.8.2-rc.4%2F&data=05%7C01%7Cyfuruta%40yahoo-corp.jp%7Ca14b3d60007641e8d58f08db3cc86e9d%7Ca208d369cd4e4f87b11998eaf31df2c3%7C1%7C0%7C638170603764950233%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=TUQ7OMPmRmeXJWD%2Fty53ForqI9Y6JMUF6VogHew7mHo%3D&reserved=0

Pulsar's KEYS file containing PGP keys we use to sign the release:
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdownloads.apache.org%2Fpulsar%2FKEYS&data=05%7C01%7Cyfuruta%40yahoo-corp.jp%7Ca14b3d60007641e8d58f08db3cc86e9d%7Ca208d369cd4e4f87b11998eaf31df2c3%7C1%7C0%7C638170603764950233%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=K8gGLEtq%2BLYSYC6kYdseBEMmGzJgSdEzNBUmx5C%2BM%2Fg%3D&reserved=0

SHA-512 checksum:
2bcfd0155abe653924d974839307c2bc980c982252e83c6442b1a368262057d4401eef186ec2b962ec973deedd81a899469ecee6afc61bd5718fa548c7c510ad
 ./apache-pulsar-client-node-1.8.2.tar.gz

The tag to be voted upon:
v1.8.2-rc.4(7b3de1f)
https://github.com/apache/pulsar-client-node/releases/tag/v1.8.2-rc.4

Please review and vote on the release candidate #1 for the version
1.8.2, as follows:
[ ] +1, Approve the release
[ ] -1, Do not approve the release (please provide specific comments)


Thanks,
Baodi Shi


Re: [DISCUSS] forbid user to upload `BYTES` schema

2023-04-17 Thread Yufan Sheng
>I support reverting the PR first and then looking for a long-term solution.

Flink uses the schema to store some kv based properties. If we can
expose all the operations of the topic level metadata store. We can
truly drop the use of uploading the BYTES schema in the Flink
connector.

On Mon, Apr 17, 2023 at 12:12 PM PengHui Li  wrote:
>
> I'm sorry. I have provided the wrong description of the changes from the PR.
> The PR has changed the server side, so it's hard for users to ask to
> upgrade
> the Flink connector if the pulsar server is upgraded.
>
> I support reverting the PR first and then looking for a long-term solution.
>
> Best,
> Penghui
>
> On Mon, Apr 17, 2023 at 10:16 AM PengHui Li  wrote:
>
> > > Did we consider
> > making a call to upload a Bytes schema a no-op?
> >
> > It was a BUG that the PR fixed.
> > You will not be able to get the uploaded schema as expected.
> > Please take a look at the details from the GitHub issue.
> >
> > What is the challenge for the Flink connector now?
> > The changes only take effect on the client side.
> > So, the issue will only happen if they use a new connector.
> > Upgrading the Pulsar server will not make any impaction?
> > Is it better to fix the Flink connector?
> > IMO, the Flink connector should not use admin-api
> > to upload a BYTE schema. It's a redundant operation.
> > Pulsar will do nothing.
> >
> > What do you think about a long-term solution?
> >
> > Regards
> > - Penghui
> >
> > On Sat, Apr 15, 2023 at 12:52 AM Michael Marshall 
> > wrote:
> >
> >> I think the primary point is that unless there is a strict need, we
> >> shouldn't introduce breaking changes to the implementation. Why did we
> >> choose to forbid users from uploading a Bytes schema? Did we consider
> >> making a call to upload a Bytes schema a no-op?
> >>
> >> Thanks,
> >> Michael
> >>
> >> On Fri, Apr 14, 2023 at 10:46 AM SiNan Liu 
> >> wrote:
> >> >
> >> > 1. I don't know much about flink, but what I see here is that you need
> >> to
> >> > save a `ResolvedCatalogTable`, which I see has `CatalogTable`, so it is
> >> > used to record the metadata information of the table.
> >> > **In
> >> >
> >> org.apache.flink.connector.pulsar.table.catalog.impl.PulsarCatalogSupport#createTable**
> >> > ```java
> >> > @Override
> >> > public void createTable(ObjectPath tablePath, ResolvedCatalogTable
> >> > table)
> >> > throws PulsarAdminException {
> >> > // only allow creating table in explict database, the topic is
> >> used
> >> > to save table
> >> > // information
> >> > if (!isExplicitDatabase(tablePath.getDatabaseName())) {
> >> > throw new CatalogException(
> >> > String.format(
> >> > "Can't create explict table under pulsar
> >> > tenant/namespace: %s because it's a native database",
> >> > tablePath.getDatabaseName()));
> >> > }
> >> >
> >> > String mappedTopic =
> >> findExplicitTablePlaceholderTopic(tablePath);
> >> > pulsarAdminTool.createTopic(mappedTopic, 1);
> >> >
> >> > // use pulsar schema to store explicit table information
> >> > try {
> >> > SchemaInfo schemaInfo =
> >> > TableSchemaHelper.generateSchemaInfo(table.toProperties());
> >> > pulsarAdminTool.uploadSchema(mappedTopic, schemaInfo);
> >> > } catch (Exception e) {
> >> > // delete topic if table info cannot be persisted
> >> > try {
> >> > pulsarAdminTool.deleteTopic(mappedTopic);
> >> > } catch (PulsarAdminException ex) {
> >> > // do nothing
> >> > }
> >> > e.printStackTrace();
> >> > throw new CatalogException("Can't store table metadata");
> >> > }
> >> > }
> >> > ```
> >> >
> >> > 2. In `TableSchemaHelper.generateSchemaInfo(table.toProperties());`:
> >> > Why must SchemaType.BYTE be used? Is it OK to use SchemaType.JSON?
> >> > ```java
> >> > public static SchemaInfo generateSchemaInfo(Map
> >> > properties)
> >> > throws JsonProcessingException {
> >> > ObjectMapper mapper = new ObjectMapper();
> >> > // json
> >> > String json = mapper.writeValueAsString(properties);
> >> > return SchemaInfoImpl.builder()
> >> > .name("flink_table_schema")
> >> > //.type(SchemaType.BYTES)
> >> > //.schema(mapper.writeValueAsBytes(properties))
> >> > // SchemaType.JSON
> >> > .type(SchemaType.JSON)
> >> > .schema(json.getBytes())
> >> > .build();
> >> > }
> >> > ```
> >> >
> >> > 3. Sorry, I'm a newbie. Can an experienced developer help with this?
> >> Thanks!
> >> >
> >> >
> >> > Thanks,
> >> > sinan
> >> >
> >> >
> >> > Enrico Olivelli  于2023年4月14日周五 22:50写道:
> >> >
> >> > > Il giorno ven 14 apr 2023 alle ore 16:48 Christophe Bornet
> >> > >

[DISCUSS] Sorting out pulsar's internal thread pools

2023-04-17 Thread mattisonchao

Hello, folks.

I would like to start discussing the pulsar internal thread pool sorting out.

How did I get this idea?

Recently, we met some problems with the BK operation timeout. After 
investigating, we found an issue that is we share the IO executor(workgroup) 
with the Bookkeeper client and internal client and do some other async task in 
the dispatcher or somewhere to avoid deadlock.

But the problem over here. If we use this executor to do some kind of 
`blocking`(or spend much time computing. e.g. reply to many delayed messages) 
operation, it will block BK clients from sending requests if they are using the 
same thread.

And then, I checked all the usage of the thread pool. We need the rule to 
constrain what thread pool we should use.

What am I expecting?

I want to collect all the thread pools and define a clear usage guide to avoid 
wrong use and improve the fault tolerance(the component problem shouldn't 
affect the whole broker)



I need to hear your guy's opinions. Please feel free to leave any questions. 
Thanks!


Best,
Mattison




Re: [VOTE] Pulsar Release 2.10.4 Candidate 4

2023-04-17 Thread guo jiwei
+1 (binding)

- Check the signature
- Build from the source package
- Start the standalone
- Validate Pub/Sub and Java Functions
- Validate Stateful Functions

Regards
Jiwei Guo (Tboy)

On Mon, Apr 17, 2023 at 8:52 PM PengHui Li  wrote:
>
> +1 (binding)
>
> - Checked the signature
> - Build from the source package
> - Start standalone
> - Checked cassandra connector
> - Checked state function
>
> Regards,
> Penghui
>
> On Sat, Apr 15, 2023 at 5:37 PM  wrote:
>
> > +1 (Binding)
> >
> >  • Built from the source package (maven 3.8.6 OpenJDK 11)
> >  • Ran binary package standalone with pub/sub
> >  • Ran docker image(pulsar-all) standalone with pub/sub
> >  • Ran License check
> >
> > Best,
> > Mattison
> > On Apr 12, 2023, 17:10 +0800, Xiangying Meng ,
> > wrote:
> > > This is the fourth release candidate for Apache Pulsar, version 2.10.4.
> > >
> > > This release contains 126 commits by 37 contributors.
> > > https://github.com/apache/pulsar/compare/v2.10.3...v2.10.4-candidate-4
> > >
> > > *** Please download, test and vote on this release. This vote will stay
> > open
> > > for at least 72 hours ***
> > >
> > > Note that we are voting upon the source (tag), binaries are provided for
> > > convenience.
> > >
> > > Source and binary files:
> > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-2.10.4-candidate-4/
> > >
> > > SHA-512 checksums:
> > >
> > 63343005235be32e970574c9733f06cb472adfdd6511d53b91902d66c805b21cee4039b51b69013bf0f9cbcde82f4cd944c069a7d119d1c908a40716ff82eca3
> > > apache-pulsar-2.10.4-bin.tar.gz
> > >
> > 2d3398a758917bccefa8550f3f69ec8a72a29f541bcd45963e6fddaec024cc690b33f1d49392dc2437e332e90a89e47334925a50960c5f8960e34c1ac8ed2543
> > > apache-pulsar-2.10.4-src.tar.gz
> > >
> > > Maven staging repo:
> > > https://repository.apache.org/content/repositories/orgapachepulsar-1226
> > >
> > > The tag to be voted upon:
> > > v2.10.4-candidate-4
> > > (1fe05d5cd3ec9f70cd7179efa4b69eac72fd88bd)
> > > https://github.com/apache/pulsar/releases/tag/v2.10.4-candidate-4
> > >
> > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > https://downloads.apache.org/pulsar/KEYS
> > >
> > > Docker images:
> > >
> > > 
> > >
> > https://hub.docker.com/layers/xiangyingmeng/pulsar/2.10.4/images/sha256-8b76d49401d3fe398be3cde395fb164ad8722b64691e31c44991f32746ca8119?context=repo
> > >
> > > 
> > >
> > https://hub.docker.com/layers/xiangyingmeng/pulsar-all/2.10.4/images/sha256-c20a13ed215e4837f95a99cf84914d03f557204d44ed610dfc41d2e23a77a92c?context=repo
> > >
> > > Please download the source package, and follow the README to build
> > > and run the Pulsar standalone service.
> >


Re: [VOTE] Pulsar Release 2.11.1 Candidate-2

2023-04-17 Thread PengHui Li
Ah, yes, it works after setting `PULSAR_STANDALONE_USE_ZOOKEEPER=1`
We need to push a PR to fix the validation document.

+1 (binding)

Thanks,
Penghui

On Mon, Apr 17, 2023 at 11:14 PM Haiting Jiang 
wrote:

> Hi Penghui
>
> Did you set `PULSAR_STANDALONE_USE_ZOOKEEPER=1` when verifying
> Stateful Functions ?
>
> Thanks,
> Haiting
>
> On Mon, Apr 17, 2023 at 7:48 PM PengHui Li  wrote:
> >
> > The RC version failed to verify the state function
> >
> > The output:
> >
> > ```
> > ~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
> > functions status --tenant test --namespace test-namespace --name
> word_count
> > {
> >   "numInstances" : 1,
> >   "numRunning" : 1,
> >   "instances" : [ {
> > "instanceId" : 0,
> > "status" : {
> >   "running" : true,
> >   "error" : "",
> >   "numRestarts" : 0,
> >   "numReceived" : 15,
> >   "numSuccessfullyProcessed" : 0,
> >   "numUserExceptions" : 15,
> >   "latestUserExceptions" : [ {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731596735
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731596736
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731596737
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731596738
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731596738
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731656845
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731656845
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731656846
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731656847
> >   }, {
> > "exceptionString" : "State test/test-namespace/word_count is not
> > enabled.",
> > "timestampMs" : 1681731656847
> >   } ],
> >   "numSystemExceptions" : 0,
> >   "latestSystemExceptions" : [ ],
> >   "averageLatency" : 0.146536533,
> >   "lastInvocationTime" : 1681731656847,
> >   "workerId" : "c-standalone-fw-localhost-8080"
> > }
> >   } ]
> > }
> >
> -
> > ~/Downloads/release_2.11.1/apache-pulsar-2.11.1 » bin/pulsar-admin
> > functions querystate --tenant test --namespace test-namespace --name
> > word_count -k hello -w
> > # key 'hello' doesn't exist.
> > # key 'hello' doesn't exist.
> > # key 'hello' doesn't exist
> > State storage client is not done initializing. Please try again in a
> little
> > while.
> >
> > Reason: State storage client is not done initializing. Please try again
> in
> > a little while.
> > ```
> >
> > The logs from broker:
> >
> > ```
> > 2023-04-17T19:42:55,447+0800 [pulsar-web-48-15] INFO
> >  org.eclipse.jetty.server.RequestLog - 127.0.0.1 - -
> [17/Apr/2023:19:42:55
> > +0800] "GET /admin/v2/namespaces/test HTTP/1.1" 200 23 "-"
> > "Pulsar-Java-v2.11.1" 5
> > 2023-04-17T19:42:55,450+0800 [pulsar-web-48-4] INFO
> >  org.apache.pulsar.common.nar.NarUnpacker - Created directory
> >
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked
> > 2023-04-17T19:42:55,451+0800 [pulsar-web-48-4] INFO
> >  org.apache.pulsar.common.nar.NarUnpacker - Extracting
> >
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/functions4142072620718955215.tmp
> > to
> >
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
> > 2023-04-17T19:42:55,452+0800 [pulsar-web-48-4] ERROR
> > org.apache.pulsar.common.nar.NarUnpacker - There was a problem extracting
> > the nar file. Deleting
> >
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q
> > to clean up state.
> > java.io.FileNotFoundException:
> >
> /var/folders/t4/w6thygwj0y596w0j5h_pzlw4gn/T/pulsar-nar/functions4142072620718955215.tmp-unpacked/3E3BMXidvkyl6VKTjb2b4Q/META-INF/MANIFEST.MF
> > (No such file or directory)
> > at java.io.FileOutputStream.open0(Native Method) ~[?:?]
> > at java.io.FileOutputStream.open(FileOutputStream.java:295) ~[?:?]
> > at java.io.FileOutputStream.(FileOutputStream.java:236) ~[?:?]
> > at java.io.FileOutputStream.

Re: [DISCUSS] forbid user to upload `BYTES` schema

2023-04-17 Thread PengHui Li
> Flink uses the schema to store some kv based properties. If we can
expose all the operations of the topic level metadata store. We can
truly drop the use of uploading the BYTES schema in the Flink
connector.

After 3.0.0, Pulsar will provide the ability to set properties for a topic
https://github.com/apache/pulsar/pull/17238.

Thanks,
Penghui

On Mon, Apr 17, 2023 at 11:44 PM Yufan Sheng  wrote:

> >I support reverting the PR first and then looking for a long-term
> solution.
>
> Flink uses the schema to store some kv based properties. If we can
> expose all the operations of the topic level metadata store. We can
> truly drop the use of uploading the BYTES schema in the Flink
> connector.
>
> On Mon, Apr 17, 2023 at 12:12 PM PengHui Li  wrote:
> >
> > I'm sorry. I have provided the wrong description of the changes from the
> PR.
> > The PR has changed the server side, so it's hard for users to ask to
> > upgrade
> > the Flink connector if the pulsar server is upgraded.
> >
> > I support reverting the PR first and then looking for a long-term
> solution.
> >
> > Best,
> > Penghui
> >
> > On Mon, Apr 17, 2023 at 10:16 AM PengHui Li  wrote:
> >
> > > > Did we consider
> > > making a call to upload a Bytes schema a no-op?
> > >
> > > It was a BUG that the PR fixed.
> > > You will not be able to get the uploaded schema as expected.
> > > Please take a look at the details from the GitHub issue.
> > >
> > > What is the challenge for the Flink connector now?
> > > The changes only take effect on the client side.
> > > So, the issue will only happen if they use a new connector.
> > > Upgrading the Pulsar server will not make any impaction?
> > > Is it better to fix the Flink connector?
> > > IMO, the Flink connector should not use admin-api
> > > to upload a BYTE schema. It's a redundant operation.
> > > Pulsar will do nothing.
> > >
> > > What do you think about a long-term solution?
> > >
> > > Regards
> > > - Penghui
> > >
> > > On Sat, Apr 15, 2023 at 12:52 AM Michael Marshall <
> mmarsh...@apache.org>
> > > wrote:
> > >
> > >> I think the primary point is that unless there is a strict need, we
> > >> shouldn't introduce breaking changes to the implementation. Why did we
> > >> choose to forbid users from uploading a Bytes schema? Did we consider
> > >> making a call to upload a Bytes schema a no-op?
> > >>
> > >> Thanks,
> > >> Michael
> > >>
> > >> On Fri, Apr 14, 2023 at 10:46 AM SiNan Liu 
> > >> wrote:
> > >> >
> > >> > 1. I don't know much about flink, but what I see here is that you
> need
> > >> to
> > >> > save a `ResolvedCatalogTable`, which I see has `CatalogTable`, so
> it is
> > >> > used to record the metadata information of the table.
> > >> > **In
> > >> >
> > >>
> org.apache.flink.connector.pulsar.table.catalog.impl.PulsarCatalogSupport#createTable**
> > >> > ```java
> > >> > @Override
> > >> > public void createTable(ObjectPath tablePath,
> ResolvedCatalogTable
> > >> > table)
> > >> > throws PulsarAdminException {
> > >> > // only allow creating table in explict database, the topic
> is
> > >> used
> > >> > to save table
> > >> > // information
> > >> > if (!isExplicitDatabase(tablePath.getDatabaseName())) {
> > >> > throw new CatalogException(
> > >> > String.format(
> > >> > "Can't create explict table under pulsar
> > >> > tenant/namespace: %s because it's a native database",
> > >> > tablePath.getDatabaseName()));
> > >> > }
> > >> >
> > >> > String mappedTopic =
> > >> findExplicitTablePlaceholderTopic(tablePath);
> > >> > pulsarAdminTool.createTopic(mappedTopic, 1);
> > >> >
> > >> > // use pulsar schema to store explicit table information
> > >> > try {
> > >> > SchemaInfo schemaInfo =
> > >> > TableSchemaHelper.generateSchemaInfo(table.toProperties());
> > >> > pulsarAdminTool.uploadSchema(mappedTopic, schemaInfo);
> > >> > } catch (Exception e) {
> > >> > // delete topic if table info cannot be persisted
> > >> > try {
> > >> > pulsarAdminTool.deleteTopic(mappedTopic);
> > >> > } catch (PulsarAdminException ex) {
> > >> > // do nothing
> > >> > }
> > >> > e.printStackTrace();
> > >> > throw new CatalogException("Can't store table
> metadata");
> > >> > }
> > >> > }
> > >> > ```
> > >> >
> > >> > 2. In `TableSchemaHelper.generateSchemaInfo(table.toProperties());`:
> > >> > Why must SchemaType.BYTE be used? Is it OK to use SchemaType.JSON?
> > >> > ```java
> > >> > public static SchemaInfo generateSchemaInfo(Map
> > >> > properties)
> > >> > throws JsonProcessingException {
> > >> > ObjectMapper mapper = new ObjectMapper();
> > >> > // json
> > >> > String json = mapper.writeValueAsString(properties);
> > >> > return Sch

Re: [DISCUSS] forbid user to upload `BYTES` schema

2023-04-17 Thread PengHui Li
I have pushed out a PR to revert this change first.

https://github.com/apache/pulsar/pull/20123

Please help review.

Thanks,
Penghui

On Tue, Apr 18, 2023 at 11:36 AM PengHui Li  wrote:

> > Flink uses the schema to store some kv based properties. If we can
> expose all the operations of the topic level metadata store. We can
> truly drop the use of uploading the BYTES schema in the Flink
> connector.
>
> After 3.0.0, Pulsar will provide the ability to set properties for a topic
> https://github.com/apache/pulsar/pull/17238.
>
> Thanks,
> Penghui
>
> On Mon, Apr 17, 2023 at 11:44 PM Yufan Sheng  wrote:
>
>> >I support reverting the PR first and then looking for a long-term
>> solution.
>>
>> Flink uses the schema to store some kv based properties. If we can
>> expose all the operations of the topic level metadata store. We can
>> truly drop the use of uploading the BYTES schema in the Flink
>> connector.
>>
>> On Mon, Apr 17, 2023 at 12:12 PM PengHui Li  wrote:
>> >
>> > I'm sorry. I have provided the wrong description of the changes from
>> the PR.
>> > The PR has changed the server side, so it's hard for users to ask to
>> > upgrade
>> > the Flink connector if the pulsar server is upgraded.
>> >
>> > I support reverting the PR first and then looking for a long-term
>> solution.
>> >
>> > Best,
>> > Penghui
>> >
>> > On Mon, Apr 17, 2023 at 10:16 AM PengHui Li  wrote:
>> >
>> > > > Did we consider
>> > > making a call to upload a Bytes schema a no-op?
>> > >
>> > > It was a BUG that the PR fixed.
>> > > You will not be able to get the uploaded schema as expected.
>> > > Please take a look at the details from the GitHub issue.
>> > >
>> > > What is the challenge for the Flink connector now?
>> > > The changes only take effect on the client side.
>> > > So, the issue will only happen if they use a new connector.
>> > > Upgrading the Pulsar server will not make any impaction?
>> > > Is it better to fix the Flink connector?
>> > > IMO, the Flink connector should not use admin-api
>> > > to upload a BYTE schema. It's a redundant operation.
>> > > Pulsar will do nothing.
>> > >
>> > > What do you think about a long-term solution?
>> > >
>> > > Regards
>> > > - Penghui
>> > >
>> > > On Sat, Apr 15, 2023 at 12:52 AM Michael Marshall <
>> mmarsh...@apache.org>
>> > > wrote:
>> > >
>> > >> I think the primary point is that unless there is a strict need, we
>> > >> shouldn't introduce breaking changes to the implementation. Why did
>> we
>> > >> choose to forbid users from uploading a Bytes schema? Did we consider
>> > >> making a call to upload a Bytes schema a no-op?
>> > >>
>> > >> Thanks,
>> > >> Michael
>> > >>
>> > >> On Fri, Apr 14, 2023 at 10:46 AM SiNan Liu 
>> > >> wrote:
>> > >> >
>> > >> > 1. I don't know much about flink, but what I see here is that you
>> need
>> > >> to
>> > >> > save a `ResolvedCatalogTable`, which I see has `CatalogTable`, so
>> it is
>> > >> > used to record the metadata information of the table.
>> > >> > **In
>> > >> >
>> > >>
>> org.apache.flink.connector.pulsar.table.catalog.impl.PulsarCatalogSupport#createTable**
>> > >> > ```java
>> > >> > @Override
>> > >> > public void createTable(ObjectPath tablePath,
>> ResolvedCatalogTable
>> > >> > table)
>> > >> > throws PulsarAdminException {
>> > >> > // only allow creating table in explict database, the
>> topic is
>> > >> used
>> > >> > to save table
>> > >> > // information
>> > >> > if (!isExplicitDatabase(tablePath.getDatabaseName())) {
>> > >> > throw new CatalogException(
>> > >> > String.format(
>> > >> > "Can't create explict table under
>> pulsar
>> > >> > tenant/namespace: %s because it's a native database",
>> > >> > tablePath.getDatabaseName()));
>> > >> > }
>> > >> >
>> > >> > String mappedTopic =
>> > >> findExplicitTablePlaceholderTopic(tablePath);
>> > >> > pulsarAdminTool.createTopic(mappedTopic, 1);
>> > >> >
>> > >> > // use pulsar schema to store explicit table information
>> > >> > try {
>> > >> > SchemaInfo schemaInfo =
>> > >> > TableSchemaHelper.generateSchemaInfo(table.toProperties());
>> > >> > pulsarAdminTool.uploadSchema(mappedTopic, schemaInfo);
>> > >> > } catch (Exception e) {
>> > >> > // delete topic if table info cannot be persisted
>> > >> > try {
>> > >> > pulsarAdminTool.deleteTopic(mappedTopic);
>> > >> > } catch (PulsarAdminException ex) {
>> > >> > // do nothing
>> > >> > }
>> > >> > e.printStackTrace();
>> > >> > throw new CatalogException("Can't store table
>> metadata");
>> > >> > }
>> > >> > }
>> > >> > ```
>> > >> >
>> > >> > 2. In
>> `TableSchemaHelper.generateSchemaInfo(table.toProperties());`:
>> > >> > Why must SchemaType.BYTE be used? Is it OK to use SchemaType.JSON?

Re: [DISCUSS] Sorting out pulsar's internal thread pools

2023-04-17 Thread Yunze Xu
I agree with this improvement. I had the same idea before but it would
take too much time so I didn't continue at that time.

Thanks,
Yunze

On Tue, Apr 18, 2023 at 10:08 AM  wrote:
>
>
> Hello, folks.
>
> I would like to start discussing the pulsar internal thread pool sorting out.
>
> How did I get this idea?
>
> Recently, we met some problems with the BK operation timeout. After 
> investigating, we found an issue that is we share the IO executor(workgroup) 
> with the Bookkeeper client and internal client and do some other async task 
> in the dispatcher or somewhere to avoid deadlock.
>
> But the problem over here. If we use this executor to do some kind of 
> `blocking`(or spend much time computing. e.g. reply to many delayed messages) 
> operation, it will block BK clients from sending requests if they are using 
> the same thread.
>
> And then, I checked all the usage of the thread pool. We need the rule to 
> constrain what thread pool we should use.
>
> What am I expecting?
>
> I want to collect all the thread pools and define a clear usage guide to 
> avoid wrong use and improve the fault tolerance(the component problem 
> shouldn't affect the whole broker)
>
>
>
> I need to hear your guy's opinions. Please feel free to leave any questions. 
> Thanks!
>
>
> Best,
> Mattison
>
>


Re: [DISCUSS] Add checklist for PMC binding vote of PIP

2023-04-17 Thread Yunze Xu
Basically I think describing how much work the reviewer did to give
his +1 is good. Just like the vote for a release, each +1 follows with
the verifications he did, e.g. here [1] is a vote for Pulsar 2.11.1
candidate 1:

> • Built from the source package (maven 3.8.6 OpenJDK 17.0)
> • Ran binary package standalone with pub/sub
> ...

But I don't think forcing the rule is good. The proposal could
sometimes be not so complicated. From my personal experience,
sometimes I vote my +1 just because I think it's good and there is no
serious problem. If you want me to vote again with the checklist, I
might still not have an idea of what I should write, unless there is a
template and I filled the template. Only if the proposal is somehow
complicated will the checklist be meaningful, like the PIP-192, which
is a very complicated proposal.

> Moreover, this checklist can ensure that all participants have thoroughly 
> reviewed the PIP,

Regarding this point from Xiangying, I want to repeat a similar
thought [2] for the previous discussion.

IF ANYONE WANT, HE CAN STILL COPY A CHECKLIST FROM OTHERS AND JUST
PERFORM SOME SLIGHTLY CHANGES.

Forcing a checklist won't change anything if there is a PMC that gave
his vote without any careful review. It just makes the rule more
complicated. If you don't trust a PMC, no rule could restrict him.
Rules only make him a better game player.

In addition, when a reviewer approves a PR, should he add a checklist
as well, instead of a simple LGTM or +1? Huge PRs appear more often
than complicated proposals.

In conclusion, I am +0 to this suggestion. If this suggestion is
passed, I will follow it well. But if I cannot think of a checklist
with a proposal, I will try to be a good vote game player.

[1] https://lists.apache.org/thread/13xmt4jdwmlo1mo5dhkxlg9pnkfdwjjj
[2] https://lists.apache.org/thread/o0vw1dfoo84pscfd46gdm3sm9mvovmr2

Thanks,
Yunze

On Mon, Apr 17, 2023 at 3:48 PM PengHui Li  wrote:
>
> I don't think it will bring more burden on reviewers.
> It will only provide a checklist for reviewers before
> you vote +1 or -1. It could be done in 1 minute if you
> did a great proposal review. Of course, if you are
> missing some aspects that should be reviewed,
> This will make the reviewer spend more time reviewing
> the missing items, but it is valuable.
>
> I don't think this proposal is accusing PMCs, but PMCs
> might also miss some items. The checklist can help PMCs
> to avoid missing items. Actually, I think every PMC has
> checklist for a proposal review. It might be recorded in
> a tiny notebook, or in his brain. Now, the proposal provides
> a way to share your experience of proposal review.
>
> And we are actually doing the same thing in the voting of
> release. Everyone will provide a list of what they have
> verified with +1 or -1.
>
> Regards,
> Penghui
>
>
> On Mon, Apr 17, 2023 at 10:37 AM Xiangying Meng 
> wrote:
>
> > Hi, Asaf
> > This is a great suggestion. I believe one significant advantage is that
> > it can help newcomers better understand the voting process and how
> > decisions are made.
> > The checklist can serve as a reference framework,
> > assisting new members in becoming familiar with the project's voting
> > requirements and standards more quickly,
> > thereby improving the overall participation and transparency of the
> > project.
> >
> > Moreover, this checklist can ensure that all participants have thoroughly
> > reviewed the PIP,
> > resulting in higher-quality PIPs.
> > Although introducing a checklist may bring some additional burden,
> > in the long run, it contributes to the project's robust development and
> > continuous improvement.
> >
> > Thanks
> > Xiangying
> >
> >
> > On Sun, Apr 16, 2023 at 11:23 PM Enrico Olivelli 
> > wrote:
> >
> > > Asaf,
> > > I understand your intent.
> > >
> > > I think that when anyone casts a +1, especially with '(binding)' they
> > know
> > > well what they are doing.
> > > It is not an 'I like it', but it is an important assumption of
> > > responsibility.
> > > This applies to all the VOTEs.
> > >
> > > Requiring this checklist may be good in order to help new comers to
> > > understand better how we take our decisions.
> > >
> > > If you feel that currently there are people who cast binding votes
> > without
> > > knowing what they do...then I believe that it is kind of a serious issue.
> > >
> > > It happened a few times recently that I  see this sort of ML threads
> > about
> > > 'the PMC is not doing well', 'we want to retire people in the PMC...',
> > 'PMC
> > > members vote on stuff without knowing what they do'...
> > >
> > > I wonder what is the root cause of this.
> > >
> > > Back to he original question, my position it:
> > > +1 to writing a clear and very brief summary of the consideration you hBe
> > > to take before casting your vote.
> > > -1 to requiring this checklist when we cast a vote
> > >
> > > Thanks
> > > Enrico
> > >
> > >
> > >
> > > Il Dom 16 Apr 2023, 15:47 Asaf Mesika  ha
> > sc

Re: [DISCUSS] Sorting out pulsar's internal thread pools

2023-04-17 Thread Lin Lin
This is a good idea. 

Thanks,
Lin Lin

On 2023/04/18 02:07:55 mattisonc...@gmail.com wrote:
> 
> Hello, folks.
> 
> I would like to start discussing the pulsar internal thread pool sorting out.
> 
> How did I get this idea?
> 
> Recently, we met some problems with the BK operation timeout. After 
> investigating, we found an issue that is we share the IO executor(workgroup) 
> with the Bookkeeper client and internal client and do some other async task 
> in the dispatcher or somewhere to avoid deadlock.
> 
> But the problem over here. If we use this executor to do some kind of 
> `blocking`(or spend much time computing. e.g. reply to many delayed messages) 
> operation, it will block BK clients from sending requests if they are using 
> the same thread.
> 
> And then, I checked all the usage of the thread pool. We need the rule to 
> constrain what thread pool we should use.
> 
> What am I expecting?
> 
> I want to collect all the thread pools and define a clear usage guide to 
> avoid wrong use and improve the fault tolerance(the component problem 
> shouldn't affect the whole broker)
> 
> 
> 
> I need to hear your guy's opinions. Please feel free to leave any questions. 
> Thanks!
> 
> 
> Best,
> Mattison
> 
> 
> 


Re: [DISCUSS] Sorting out pulsar's internal thread pools

2023-04-17 Thread Xiangying Meng
Thank you for bringing up this important topic. I completely agree with
this initiative.
This would be a great starting point for revisiting and improving the
Pulsar codebase.

Thanks,
Xiangying

On Tue, Apr 18, 2023 at 2:18 PM Lin Lin  wrote:

> This is a good idea.
>
> Thanks,
> Lin Lin
>
> On 2023/04/18 02:07:55 mattisonc...@gmail.com wrote:
> >
> > Hello, folks.
> >
> > I would like to start discussing the pulsar internal thread pool sorting
> out.
> >
> > How did I get this idea?
> >
> > Recently, we met some problems with the BK operation timeout. After
> investigating, we found an issue that is we share the IO
> executor(workgroup) with the Bookkeeper client and internal client and do
> some other async task in the dispatcher or somewhere to avoid deadlock.
> >
> > But the problem over here. If we use this executor to do some kind of
> `blocking`(or spend much time computing. e.g. reply to many delayed
> messages) operation, it will block BK clients from sending requests if they
> are using the same thread.
> >
> > And then, I checked all the usage of the thread pool. We need the rule
> to constrain what thread pool we should use.
> >
> > What am I expecting?
> >
> > I want to collect all the thread pools and define a clear usage guide to
> avoid wrong use and improve the fault tolerance(the component problem
> shouldn't affect the whole broker)
> >
> >
> >
> > I need to hear your guy's opinions. Please feel free to leave any
> questions. Thanks!
> >
> >
> > Best,
> > Mattison
> >
> >
> >
>