2020-02-26 09:21:27 UTC - Sijie Guo: Unfortunately no for standalone. What is the purpose of setting separate directory for standalone? ---- 2020-02-26 09:23:51 UTC - Antti Kaikkonen: I would just like to see which files are journal, how much space they take etc... maybe test performance when setting the ledger to use to use HDD and journal to use SSD. But I guess I have to set up a single node cluster to do that. ---- 2020-02-26 09:51:32 UTC - Sijie Guo: you can still see different directories under data/bookkeeper ---- 2020-02-26 09:51:50 UTC - Sijie Guo: and you can mount different disks to different directories. ---- 2020-02-26 10:25:35 UTC - ikeda: @ikeda has joined the channel ---- 2020-02-26 11:00:24 UTC - Balasubramanian Viswanathan: @Balasubramanian Viswanathan has joined the channel ---- 2020-02-26 11:12:53 UTC - Rajesh: @Rajesh has joined the channel ---- 2020-02-26 11:13:18 UTC - Prashant Shandilya: @Prashant Shandilya has joined the channel ---- 2020-02-26 11:21:50 UTC - Rajesh: How to check proxy service is running? in my LB shows outofservice. ---- 2020-02-26 11:49:22 UTC - Santosh M K: @Santosh M K has joined the channel ---- 2020-02-26 12:36:09 UTC - Manuel Mueller: > whatever hipster term we use now I laughed hard. ---- 2020-02-26 12:37:58 UTC - Zach C: @Zach C has joined the channel ---- 2020-02-26 12:43:57 UTC - Zach C: Hi @Sijie Guo - We're not actually seeing any errors when sending, just that pulsar is handling the Avro schema completely different from what we expected.
The issue we're running into is that one of our Avro objects is a union of other avro objects, and is defined as the follows: ```{ "name": "batch", "type": [ "null", { "type": "array", "items": [ "com.company.avro.SensorRec", "com.company.avro.DeviceRec" ] } ], "default": null, "doc": "" }``` However, when pulsar is generating the schema for this, it's simplifying the object down to: ```{ "name": "batch", "type": [ "null", { "type": "array", "items": { "type": "record", "name": "Object", "namespace": "java.lang", "fields": [] }, "java-class": "java.util.List" } ], "default": null }``` ---- 2020-02-26 12:54:01 UTC - Zach C: Attached are 3 sample files: 1. avro_schema - the simplified avro schemas 2. pulsar_simplified_object - the pulsar generated schema 3. kafka_simplified_object - the confluent generated schema (this is what we expected pulsar would create) ---- 2020-02-26 13:17:56 UTC - eilonk: @eilonk has joined the channel ---- 2020-02-26 13:28:37 UTC - eilonk: Hi all, deployed a pulsar cluster using helm on kubernetes and the native chart with slight modifications. when i port-forward to the manager it shows an empty page and asks me to add an environment. any reason why it doesn't connect to the cluster properly? what are some requirements i might be missing? ---- 2020-02-26 13:55:11 UTC - Rolf Arne Corneliussen: Thanks. Is there any practical limit on the number of topics to have in single namespace? (From what I have read you may have to adjust ZooKeeper `jute.maxbuffer` to allow `getChildren` to complete). ---- 2020-02-26 13:57:57 UTC - Rolf Arne Corneliussen: Also, I have noted that when creating over 50k topics, the Pulsar broker seems to be working more with (continuous) load balancing. ---- 2020-02-26 14:35:16 UTC - Rolf Arne Corneliussen: *Topic Compaction*. I am trying for figure out how this works on Pulsar. I have created a namespace and set compaction threshold ```bin/pulsar-admin namespaces set-compaction-threshold -t 50M tenant/namespace``` policies report "compaction_threshold" : 52428800 Then I have run a producer 11 times, in each iteration the `Producer` sends X messages with keys from a fixed set (similar to the stock ticker example). `producer.newMessage().key(keyIterator.next()).value(...)` After one iteration, the pulsar-admin topics stats reports 49MB `storageSize`, and after 11 iterations it reports ``` "storageSize" : 494_039_536, "backlogSize" : 494_039_536,``` So, the compaction should be at work here? If a try to trigger compaction manually, ```bin/pulsar-admin topics compact <persistent://tenant/namespace/topic> Compaction already in progress``` I created a Reader: ```client.newReader() .topic("<persistent://tenant/namespace/topic>") .readCompacted(true) .startMessageId(MessageId.earliest) .startMessageIdInclusive() .readerListener(scanner) ...``` But as far as I can tell, it reads all X * 11 messages (i.e. the whole history). I would have hoped to read a compacted version of the topic, any suggestions of what I can do to achieve that? ---- 2020-02-26 15:08:12 UTC - Ian: @Ian has joined the channel ---- 2020-02-26 16:20:38 UTC - Santiago Del Campo: Hello! We're having the following issue: Suddenly our bookkeeper it's responding with this exceptions: First time having this errors actually. Some producers throw a timeout but the rest of them work just fine. Any idea of the cause and how to fix it? ```16:12:27.127 [bookkeeper-io-16-2] ERROR org.apache.bookkeeper.proto.PerChannelBookieClient - Could not connect to bookie: [id: 0x51570dc1]/172.31.49.0:3181, current state CONNECTING : io.netty.channel.ConnectTimeoutException: connection timed out: /172.31.49.0:3181 at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261) [io.netty-netty-transport-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:150) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518) [io.netty-netty-transport-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232] 16:12:27.128 [ReplicationWorker] ERROR org.apache.bookkeeper.replication.ReplicationWorker - ReplicationWorker failed to replicate Ledger : 3 for 8 number of times, so deferring the ledger lock release by 300000 msecs 16:13:06.987 [bookkeeper-io-16-1] ERROR org.apache.bookkeeper.proto.PerChannelBookieClient - Could not connect to bookie: [id: 0x58baa6f7]/172.31.49.0:3181, current state CONNECTING : io.netty.channel.ConnectTimeoutException: connection timed out: /172.31.49.0:3181``` ---- 2020-02-26 17:48:41 UTC - Greg Gallagher: looks like your bookie @ 172.31.49 is not reachable from wherever that log is being generated ... can you check the logs on it ? ---- 2020-02-26 17:51:31 UTC - Alexander Ursu: Hi, recently made a setup for a Pulsar cluster in Docker Swarm which can be found at my comment on the github issue <https://github.com/apache/pulsar/issues/6264#issuecomment-591050063|here>. Would like to hear any thoughts and opinions from people here! ---- 2020-02-26 17:57:53 UTC - Santiago Del Campo: MMm.... but that would weird... that IP it's the IP of the bookie server... and it's completely reachable. In fact, the cluster itself did not fail... it'still receiving productions and consumptions from the clients. ---- 2020-02-26 17:59:43 UTC - Santiago Del Campo: Even weirder, the clients producing that were receiving timeouts before, were rebooted and the timeouts stopped, but those exceptions related to ledgers unable to be replicated persist. ---- 2020-02-26 18:14:14 UTC - Santiago Del Campo: The cluster it's on top of K8S and all the pulsar components live within one same server.... could be related to overhead? ---- 2020-02-26 20:23:17 UTC - Eugen: I'm seeing this warning when starting pulsar standalone: ```05:20:24.651 [main] WARN org.apache.distributedlog.impl.BKNamespaceDriver - Could not use Netty Epoll event loop for bookie server: java.lang.NoClassDefFoundError: Could not initialize class io.netty.channel.epoll.EpollEventLoop at io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:142) ~[io.netty-netty-transport-native-epoll-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:35) ~[io.netty-netty-transport-native-epoll-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84) ~[io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58) ~[io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47) ~[io.netty-netty-common-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:59) ~[io.netty-netty-transport-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:104) ~[io.netty-netty-transport-native-epoll-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:91) ~[io.netty-netty-transport-native-epoll-4.1.43.Final.jar:4.1.43.Final] at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:68) ~[io.netty-netty-transport-native-epoll-4.1.43.Final.jar:4.1.43.Final] at org.apache.distributedlog.impl.BKNamespaceDriver.getDefaultEventLoopGroup(BKNamespaceDriver.java:257) [org.apache.distributedlog-distributedlog-core-4.10.0.jar:4.10.0] at org.apache.distributedlog.impl.BKNamespaceDriver.initializeBookKeeperClients(BKNamespaceDriver.java:268) [org.apache.distributedlog-distributedlog-core-4.10.0.jar:4.10.0] at org.apache.distributedlog.impl.BKNamespaceDriver.initialize(BKNamespaceDriver.java:206) [org.apache.distributedlog-distributedlog-core-4.10.0.jar:4.10.0] at org.apache.distributedlog.api.namespace.NamespaceBuilder.build(NamespaceBuilder.java:239) [org.apache.distributedlog-distributedlog-core-4.10.0.jar:4.10.0] at org.apache.pulsar.functions.worker.WorkerService.start(WorkerService.java:105) [org.apache.pulsar-pulsar-functions-worker-2.5.0.jar:2.5.0] at org.apache.pulsar.broker.PulsarService.startWorkerService(PulsarService.java:1108) [org.apache.pulsar-pulsar-broker-2.5.0.jar:2.5.0] at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:505) [org.apache.pulsar-pulsar-broker-2.5.0.jar:2.5.0] at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:318) [org.apache.pulsar-pulsar-broker-2.5.0.jar:2.5.0] at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:119) [org.apache.pulsar-pulsar-broker-2.5.0.jar:2.5.0]``` What does this mean? Will pulsar run slower for me because of this? ---- 2020-02-26 20:50:59 UTC - Ravi Shah: How to pass pulsar backlog message metric to HPA to scale Kubernetes pods? ---- 2020-02-26 20:51:12 UTC - Ravi Shah: Is there any pulsar Prometheus adapter for custom metric which i can pass to HPA? ---- 2020-02-26 21:57:35 UTC - Greg Methvin: looks like this bug: <https://github.com/apache/pulsar/issues/6330> +1 : Eugen ---- 2020-02-26 23:51:31 UTC - Eugen: And I just found out that what the pulsar documentation is documenting (journalDirectory) is the legacy name, whereas journalDirectories is the new name . Anyways, both should work - but not with standalone - so it's unrelated to your problem anyway... +1 : Antti Kaikkonen ---- 2020-02-27 00:56:10 UTC - Eugen: The <https://github.com/openmessaging/openmessaging-benchmark/blob/master/driver-pulsar/deploy/templates/bookkeeper.conf#L26|openmessaging benchmark> uses multiple journal directories on the same SSD: ```# Use multiple journals to better exploit SSD throughput journalDirectories=/mnt/journal/1,/mnt/journal/2,/mnt/journal/3,/mnt/journal/4``` I wonder if there is any rule of thumb for SSDs in terms of how much parallelism to use for optimal performance? ---- 2020-02-27 03:48:45 UTC - sindhushree: @Addison Higham ---- 2020-02-27 03:49:37 UTC - sindhushree: Can u please share how u go the root context am facing the same issue ---- 2020-02-27 04:07:39 UTC - Sijie Guo: You can check `/metrics` http path to verify if your proxy service is running. ---- 2020-02-27 04:08:08 UTC - Sijie Guo: how do you add the cluster to pulsar manager? ---- 2020-02-27 04:09:53 UTC - Sijie Guo: Awesome. Do you want to contribute this setup as the documentation back to the community? ---- 2020-02-27 04:11:56 UTC - Sijie Guo: SSD’s performance varies between vendors. A good suggestion is to do a benchmark on what is the throughput for a single directory on SSD. then caculate the number directories based on the bandwidth capacity for your SSD. +1 : Eugen ---- 2020-02-27 04:14:22 UTC - Sijie Guo: Another way to think out that is one journal thread is used one journal directory. It is good to align the number of directories with your CPU cores. ---- 2020-02-27 04:14:34 UTC - Sijie Guo: That’s a simple rule of thumb. ---- 2020-02-27 04:16:41 UTC - Eugen: something like this: `Math.min(cpu cores, bandwidth spec / single-dir bandwidth)` ? ----