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

Error in starting bookie with multiple ledger directories #251

Closed
krumo opened this issue Feb 28, 2017 · 2 comments
Closed

Error in starting bookie with multiple ledger directories #251

krumo opened this issue Feb 28, 2017 · 2 comments

Comments

@krumo
Copy link
Contributor

krumo commented Feb 28, 2017

Expected behavior

When setting 2 directories as the storage directories, I expect the bookie could use 2 directories to store ledger files.

Actual behavior

When starting bookie with pulsar-daemon command, I get the error info in the log file as following:

2017-02-28 17:58:31,303 - ERROR [main:BookieServer@601] - Exception running bookie server :
java.lang.IllegalArgumentException: Db implementation only allows for one storage dir
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:93)
        at org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage.initialize(DbLedgerStorage.java:110)
        at org.apache.bookkeeper.bookie.Bookie.<init>(Bookie.java:508)
        at org.apache.bookkeeper.proto.BookieServer.newBookie(BookieServer.java:308)
        at org.apache.bookkeeper.proto.BookieServer.<init>(BookieServer.java:116)
        at org.apache.bookkeeper.proto.BookieServer.main(BookieServer.java:584)

Steps to reproduce

  1. Start the zookeeper ensemble.
  2. Modify the bookkeeper.conf and set ledgerDirectories=/mnt/datadir1/pulsar/bk-data,/mnt/datadir2/pulsar/bk-data, where datadir1 and datadir2 are located in different disks.
  3. Run pulsar-daemon start bookie command.

System configuration

Pulsar version: 1.16.1

@agarman
Copy link

agarman commented Feb 28, 2017

Pulsar uses a fork of Bookkeeper optimized for its workload. AFAIK complete compatibility with Apache Bookkeeper documentation is a nice-to-have not must-have.

If/when the Pulsar fork is merged into Apache Bookkeeper, then full configurations will likely be supported.

Until then refer to Pulsar Bookkeeper documentation.

@merlimat & co. would it make sense to pair down bookkeeper.conf to not have traps w.r.t. configurations that do not work with Pulsar Bookkeeper?

@merlimat
Copy link
Contributor

If/when the Pulsar fork is merged into Apache Bookkeeper, then full configurations will likely be supported.

The effort of merging the fork into main branch of apache bookkeeper is actively ongoing :)

@merlimat & co. would it make sense to pair down bookkeeper.conf to not have traps w.r.t. configurations that do not work with Pulsar Bookkeeper?

All the bookkeeper options are actually supported. The issue with the multiple directories is that they are not supported in the DbLedgerStorage implementation that comes enabled in the config file shipped with Pulsar.

That doesn't prevent one to use the classic SortedLedgerStorage that support that feature.

So, for @krumo my suggestions could be to either:

  1. Use LVM / software-raid / hardware-raid to provide a single disk view for the ledger storage volume
  2. Enable SortedLedgerStorage and keep using multiple volumes
    ledgerStorageClass=org.apache.bookkeeper.bookie.SortedLedgerStorage
    
    The main reason for DbLedgerStorage is to support a large number of topics per bookie, which might not be the primary concern for every one.

@krumo krumo closed this as completed Mar 1, 2017
hrsakai pushed a commit to hrsakai/pulsar that referenced this issue Dec 10, 2020
Signed-off-by: xiaolong.ran <rxl@apache.org>
hangc0276 pushed a commit to hangc0276/pulsar that referenced this issue May 26, 2021
Master issue: apache#241

This PR add support for Kafka DescribeConfigs request. The request is to get topic or broker related configs from Kafka but the Kafka's config is much different from KoP. We just only support request for topic's configs and use the default config value so that Confluent Schema Registry can run with KoP.


* Handle DescribeConfig request

* Add check for topic existence

* Fix NPE when DescribeConfigsRequest has no config names

* Check for non-existed topic

* Add unit test for DescribeConfigsRequest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants