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

[improve][broker] PIP-192: Define new load manager base interfaces #4

Open
wants to merge 144 commits into
base: master
Choose a base branch
from

Conversation

Demogorgon314
Copy link
Owner

No description provided.

@Demogorgon314 Demogorgon314 self-assigned this Oct 18, 2022
@Demogorgon314 Demogorgon314 changed the title PIP-192: Define new load manager base interfaces [improve][broker] PIP-192: Define new load manager base interfaces Oct 18, 2022
@Demogorgon314 Demogorgon314 force-pushed the PIP-192-New_Load_Manager_Base_Classes branch from f116925 to f13c655 Compare October 18, 2022 07:35
@Demogorgon314 Demogorgon314 force-pushed the PIP-192-New_Load_Manager_Base_Classes branch from 5e7dad5 to 2458fbe Compare November 10, 2022 01:49
coderzc and others added 22 commits November 10, 2022 10:50
* Allow to use io_uring instead of epoll

* fix pom
…duled (apache#18360)

Motivation
The variable `expireChunkMessageTaskScheduled` could be accessed by multi thread concurrently. Need to make it thread safe.

Modification
* Use AtomicBoolean and CAS operation to access the `expireChunkMessageTaskScheduled`
Allow users to override the default `-Djava.net.preferIPv4Stack=true` config to run Pulsar in IPv6 environment.
…2-42003 (apache#18394)

* [fix][sec] Upgrade jackson-databind to 2.13.4.2 to get rid of CVE-2022-42003

* Fix IO jackson dependencies

* Fix IO http

* revert unrelated change
…pache#17522)

* [improve][transactions] Add command to list transaction coordinators url

* Address pr's comment and rebase

* checkstyle

* remove debug

* Remove useless call and fix style

* style
…m storage/cache to the write to the consumer channel) (apache#18245)

* InflightReadsLimiter - limit the memory used by reads end-to-end (from storage/cache to the write to the consumer channel)

Motivation:

Broker can go out of memory due to many reads enqueued on the PersistentDispatcherMultipleConsumers dispatchMessagesThread (that is used in case of dispatcherDispatchMessagesInSubscriptionThread set to true, that is the default value)
The limit of the amount of memory retained due to reads MUST take into account also the entries coming from the Cache.

When dispatcherDispatchMessagesInSubscriptionThread is false (the behaviour of Pulsar 2.10) there is some kind of natural (but still unpredictable!!) back pressure mechanism because the thread that receives the entries from BK of the cache dispatches immediately and synchronously the entries to the consumer and releases them

Modifications:

- Add a new component (InflightReadsLimiter) that keeps track of the overall amount of memory retained due to inflight reads.
- Add a new configuration entry managedLedgerMaxReadsInFlightSizeInMB
- The feature is disabled by default
- Add new metrics to track the values

* Change error message

* checkstyle

* Fix license

* remove duplicate method after cherry-pick

* Rename onDeallocate
The repo halted doesn't mean we don't provide related functionality :)
@Demogorgon314 Demogorgon314 force-pushed the PIP-192-New_Load_Manager_Base_Classes branch from 2458fbe to 07e8ab9 Compare November 14, 2022 04:13
congbobo184 and others added 27 commits November 26, 2022 14:01
reason: https://lists.apache.org/thread/jcrq9q0k6kh9rvb71dwb9s3mvo5c5dk5

branch-2.9 has reset to commit `5ed247de3a5e0ff67f181b4805fd6140d8174994`, so close force-push

- [x] `doc-not-needed` <!-- Your PR changes do not impact docs -->
…pache#18603)

This PR is a supplement to apache#18369.
- `AbstractTopic.isSameAddressProducersExceeded()`
- `AbstractBaseDispatcher.isConsumersExceededOnSubscription()`
### Motivation

Now we only use caffeine in broker module. *caffeine* has a jdk11+ version, which is more proper for jdk11+ project to integrated with.(Spring3.0 uses caffeine 3.X too.) So I think it's worth for us to update caffeine to 3.x

### Modifications

Update caffeine from 2.9.1 to 3.1.2

- [ ] Anything that affects deployment

### Documentation

<!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. -->

- [ ] `doc` <!-- Your PR contains doc changes. Please attach the local preview screenshots (run `sh start.sh` at `pulsar/site2/website`) to your PR description, or else your PR might not get merged. -->
- [ ] `doc-required` <!-- Your PR changes impact docs and you will update later -->
- [x] `doc-not-needed` <!-- Your PR changes do not impact docs -->
- [ ] `doc-complete` <!-- Docs have been already added -->

### Matching PR in forked repository

apache#18647
@Demogorgon314 Demogorgon314 force-pushed the PIP-192-New_Load_Manager_Base_Classes branch from 6534ce0 to 8e2240e Compare November 30, 2022 12:41
@github-actions
Copy link

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

@github-actions github-actions bot added the Stale label Dec 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.