Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Switch from pg_local to pg#14825

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
mkuratczyk wants to merge4 commits intomain
base:main
Choose a base branch
Loading
fromremove-pg_local
Draft

Switch from pg_local to pg#14825

mkuratczyk wants to merge4 commits intomainfromremove-pg_local

Conversation

@mkuratczyk
Copy link
Contributor

@mkuratczykmkuratczyk commentedOct 27, 2025
edited
Loading

pg_local is based on the pg2 module, which got removed
from Erlang/OTP years ago. It was replaced by the more
efficient pg module, so let's use it directly.

We use node-local scopes and single-item groups so that
(de)registration is fast, but we can list all connections/channels
(by listing all groups in the scope).

michaelklishin and lin72h reacted with thumbs up emoji
@mergifymergifybot added the make labelOct 27, 2025
@mkuratczykmkuratczykforce-pushed theremove-pg_local branch 2 times, most recently from7998fc2 to669513bCompareOctober 27, 2025 13:42
@michaelklishinmichaelklishin added this to the4.3.0 milestoneOct 27, 2025
@michaelklishin
Copy link
Collaborator

To add a bit of context here.

Process groups can be used in many ways but specifically in RabbitMQ they were used for tracking of exclusive queues on an AMQP 0-9-1 connection, so that when a connection terminates, all exclusive queues (if any) on it would be terminated very shortly after.

RabbitMQ Stream Protocol does not allow clients to declare exclusive streams, so it likely can avoid using process groups entirely. And so can most protocol readers.

@mkuratczykmkuratczykforce-pushed theremove-pg_local branch 2 times, most recently from4292012 tob88adbbCompareOctober 30, 2025 13:41
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this pull requestNov 4, 2025
And no longer a function available in the stream plugin.Referencesrabbitmq/rabbitmq-server#14825
mkuratczykand others added4 commitsNovember 17, 2025 15:49
This function was not called from anywhereand was the only place that expected streamconnections to be registered in pg_local.
pg_local is based on the pg2 module, which got removedfrom Erlang/OTP years ago. It was replaced by the moreefficient pg module, so let's use it directly.We use node-local scopes and single-item groups so that(de)registration is fast, but we can list all connections/channels(by listing all groups in the scope).
These values don't chnage at runtime andtake a surprising amount of resources whenopening a lot of connections. This speedsup opening many connections/channels by 10%in my tests.
The metadata can take a few milliseconds to reflect a node is down, sothe test code must consider a connection failure and test another node.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

Projects

None yet

Milestone

4.3.0

Development

Successfully merging this pull request may close these issues.

4 participants

@mkuratczyk@michaelklishin@acogoluegnes

[8]ページ先頭

©2009-2025 Movatter.jp