codelipenghui opened a new pull request #11629:
URL: https://github.com/apache/pulsar/pull/11629


   If we have many ledgers in a managed ledger, for checking if need to delete 
the offloaded ledger from bookies,
   for each ledger, will call getOffloadPolicies() from the Offloader. For the 
BlobStoreManagedLedgerOffloader we
   are generate the offload policies from the properties for each getting 
operation(Maybe need another PR to find way to optimize this part). This will 
lead to high CPU usage
   
   Stack:
   
   ```
   "bookkeeper-ml-workers-OrderedExecutor-4-0" #68 prio=5 os_prio=0 
tid=0x00007f23663d8000 nid=0xae runnable [0x00007f22b8ac2000]
      java.lang.Thread.State: RUNNABLE
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.apache.pulsar.common.util.FieldParser.convert(FieldParser.java:119)
        at org.apache.pulsar.common.util.FieldParser.value(FieldParser.java:194)
        at 
org.apache.pulsar.common.policies.data.OffloadPolicies.lambda$create$0(OffloadPolicies.java:265)
        at 
org.apache.pulsar.common.policies.data.OffloadPolicies$$Lambda$127/540923243.accept(Unknown
 Source)
        at 
java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
        at 
java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
        at 
org.apache.pulsar.common.policies.data.OffloadPolicies.create(OffloadPolicies.java:261)
        at 
org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreManagedLedgerOffloader.getOffloadPolicies(BlobStoreManagedLedgerOffloader.java:303)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.isOffloadedNeedsDelete(ManagedLedgerImpl.java:2091)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.internalTrimConsumedLedgers(ManagedLedgerImpl.java:2176)
        - locked <0x00000006a3f2c000> (a 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$trimConsumedLedgersInBackground$24(ManagedLedgerImpl.java:1997)
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl$$Lambda$722/254878114.run(Unknown
 Source)
        at org.apache.bookkeeper.mledger.util.SafeRun$1.safeRun(SafeRun.java:32)
        at 
org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36)
        at 
org.apache.bookkeeper.common.util.OrderedExecutor$TimedRunnable.run(OrderedExecutor.java:203)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(Thread.java:748)
   ```
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to