pulsar icon indicating copy to clipboard operation
pulsar copied to clipboard

[improve][broker]: DelayedDeliveryTracker init and addMessage

Open GuoHaoZai opened this issue 3 years ago • 3 comments

resolves: https://github.com/apache/pulsar/issues/17094

Motivation

improve perf

  1. we not need add lock when MsgMetadata.hasDeliverAtTime return false.
  2. use double check lock to init DelayedDeliveryTracker and InMemoryDelayedDeliveryTracker#addMessage add synchronized to ensure thread safe

Modifications

  1. PersistentDispatcherMultipleConsumers.java use double check lock init DelayedDeliveryTracker
  2. PersistentDispatcherMultipleConsumers.java not lock when msgMetadata.hasDeliverAtTime return false
  3. InMemoryDelayedDeliveryTracker.java addMessage method add lock to ensure thread safe

Verifying this change

  • [ ] Make sure that the change passes the CI checks.

This change is already covered by existing tests:org.apache.pulsar.broker.delayed.InMemoryDeliveryTrackerTest.

(example:)

  • Added integration tests for end-to-end deployment with large payloads (10MB)
  • Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If yes was chosen, please highlight the changes

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API: (yes / no)
  • The schema: (yes / no / don't know)
  • The default values of configurations: (yes / no)
  • The wire protocol: (yes / no)
  • The rest endpoints: (yes / no)
  • The admin cli options: (yes / no)
  • Anything that affects deployment: (yes / no / don't know)

Documentation

Check the box below or label this PR directly.

Need to update docs?

  • [ ] doc-required (Your PR needs to update docs and you will update later)

  • [x] doc-not-needed (Please explain why)

  • [ ] doc (Your PR contains doc changes)

  • [ ] doc-complete (Docs have been already added)

GuoHaoZai avatar Aug 14 '22 16:08 GuoHaoZai

modify Motivation

GuoHaoZai avatar Aug 16 '22 12:08 GuoHaoZai

@Guohaozai, Do you have time to deal with this PR?

coderzc avatar Aug 29 '22 05:08 coderzc

The pr had no activity for 30 days, mark with Stale label.

github-actions[bot] avatar Sep 29 '22 02:09 github-actions[bot]