I agree that it is confusing. I don't have any immediate ideas for
fixing the problem, but here are my observations:

It can also be confusing to new users that the Apache Pulsar docker
image has a different bookkeeper.conf than the Apache Bookkeeper
project.

I found configuring the function worker particularly confusing when I
first started working with it. Here is an example [0] of my confusion.

The function worker config is a yml file instead of a conf file and it
has a different way of providing arbitrary configuration.

We do not have a standard way of naming configuration values. The
"same" config can have different names in different components.

Thanks,
Michael

[0] - https://github.com/apache/pulsar/pull/11468

On Tue, Dec 13, 2022 at 9:45 AM Yunze Xu <y...@streamnative.io.invalid> wrote:
>
> > they have to prepend PULSAR_PREFIX_ to the other options.
>
> Good point. It should be taken carefully.
>
> Thanks,
> Yunze
>
> On Tue, Dec 13, 2022 at 10:46 PM Enrico Olivelli <eolive...@gmail.com> wrote:
> >
> > I agree that we should make it simpler.
> > There are too many knobs that people shouldn't try to turn if they
> > don't know what they are doing.
> >
> > Il giorno mar 13 dic 2022 alle ore 14:19 Kai Wang
> > <wangkai744567...@gmail.com> ha scritto:
> > >
> > > +1, we can provide a minimal configuration file to users. It only 
> > > contains the required config and a few commonly used configs.
> > >
> > > The full configuration file can be named `broker.full.conf`, and it is 
> > > used to provide a reference for users.
> >
> > I am not sure that we need this file, we can use the documentation
> > website to advertise about all the possibilities.
> >
> > I want to add a point:
> > currently k8s users use the script that handles only the options
> > explicitly written in broker.conf and proxy.conf.
> > and they have to prepend PULSAR_PREFIX_ to the other options.
> >
> > We should make changes that are compatible with current k8s users,
> > otherwise it will be a big pain.
> > Maybe we have to change the script that applies the ENV to the .conf file
> >
> >
> > Enrico
> >
> > >
> > > Thanks,
> > > Kai
> > > On Dec 13, 2022 at 9:03 PM +0800, Yunze Xu 
> > > <y...@streamnative.io.invalid>, wrote:
> > > > For example, when running a standalone (without TLS enabled), only the
> > > > following configs are required:
> > > >
> > > > ```properties
> > > > brokerServicePort=6650
> > > > webServicePort=8080
> > > > allowLoopback=true
> > > > clusterName=standalone
> > > > managedLedgerDefaultEnsembleSize=1
> > > > managedLedgerDefaultWriteQuorum=1
> > > > managedLedgerDefaultAckQuorum=1
> > > > ```
> > > >
> > > > Actually only these two ports and `clusterName` are needed, other
> > > > configurations can be configured with a default values for standalone.
> > > > However, I found there are over 600 configurations in the
> > > > `standalone.conf`:
> > > >
> > > > ```bash
> > > > $ grep "^[^#]" conf/standalone.conf | wc -l
> > > > 629
> > > > ```
> > > >
> > > > Thanks,
> > > > Yunze Xu
> > > >
> > > > On Tue, Dec 13, 2022 at 8:53 PM Yunze Xu <y...@streamnative.io> wrote:
> > > > >
> > > > > Hi all,
> > > > >
> > > > > As more people joined the development of Pulsar and more PIPs are
> > > > > opened, I found the configurations became very large. At the moment
> > > > > for commit 9917aac, there are 426 configuration items in broker.conf,
> > > > > which is too many.
> > > > >
> > > > > ```bash
> > > > > $ grep "^[^#]" conf/broker.conf | wc -l
> > > > > 426
> > > > > ```
> > > > >
> > > > > For beginners, finding the real useful configs from the `broker.conf`
> > > > > is hard. For developers, it's also bad. For example, the IDE code
> > > > > completion works significantly slower for a method of
> > > > > `ServiceConfiguration` than other classes.
> > > > >
> > > > > Let's look at Apache Kafka, there are only 17 configs in the server
> > > > > configuration file.
> > > > >
> > > > > ```bash
> > > > > kafka_2.13-3.3.1$ grep "^[^#]" config/server.properties | wc -l
> > > > > 17
> > > > > ```
> > > > >
> > > > > I think this difference makes Pulsar far more complicated to customize
> > > > > than Kafka, or than Pulsar should be.
> > > > >
> > > > > I have an idea that we can split `ServiceConfiguration` into different
> > > > > configuration classes. Some configs that are not commonly used should
> > > > > be moved into another configuration file. Just a brainstorm, does
> > > > > anyone else have better ideas?
> > > > >
> > > > > Thanks,
> > > > > Yunze

Reply via email to