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

Use JCTools queues #1330

Closed
jponge opened this issue Jul 26, 2023 · 6 comments
Closed

Use JCTools queues #1330

jponge opened this issue Jul 26, 2023 · 6 comments
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request technical-debt Technical debt reduction
Milestone

Comments

@jponge
Copy link
Member

jponge commented Jul 26, 2023

Mutiny currently contains code for queues coming from older and modified JCTools versions and RxJava 2 derivatives.

  1. We should instead depend on current JCTools
  2. io.smallrye.mutiny.helpers.queues.Queues is the facade for providing different kinds of queues
  3. We might decide to shade JCTools in Mutiny instead of a direct dependency
  4. Mutiny uses system properties for some queue sizes (e.g. mutiny.buffer-size.xs), we should instead use Infrastructure-provided configuration
@jponge jponge added enhancement New feature or request dependencies Pull requests that update a dependency file technical-debt Technical debt reduction labels Jul 26, 2023
@jponge jponge added this to the 2.4.0 milestone Jul 26, 2023
@jponge
Copy link
Member Author

jponge commented Jul 26, 2023

/cc @cescoffier (we had an offline discussion on that topic) @franz1981 (JCTools)

@jponge
Copy link
Member Author

jponge commented Jul 26, 2023

@franz1981 Looks like JCTools doesn't have a module-info or an automatic module manifest entry. Are there plans to fix this? I'm not a big fan of JPMS, but we've made Mutiny JPMS-friendly for a couple of years.

[INFO] --- maven-compiler-plugin:3.11.0:compile (default-compile) @ mutiny ---
[WARNING] **********************************************************************************************************************************************
[WARNING] * Required filename-based automodules detected: [jctools-core-4.0.1.jar]. Please don't publish this project to a public artifact repository! *
[WARNING] **********************************************************************************************************************************************

@franz1981
Copy link
Contributor

franz1981 commented Jul 26, 2023

@jponge Consider 2 things:

I remember @cescoffier built a bi-offering mpsc queue variant: it is still there? if yes maybe there's something I need to change on JCTools to allow you create such.

Re JPMS -> JCTools/JCTools#370

@jponge jponge linked a pull request Aug 4, 2023 that will close this issue
@jponge jponge modified the milestones: 2.4.0, 2.5.0 Aug 29, 2023
@jponge jponge modified the milestones: 2.5.0, 2.6.0 Sep 25, 2023
jponge added a commit that referenced this issue Oct 25, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330
@jponge
Copy link
Member Author

jponge commented Oct 25, 2023

Work continues in #1413

Thanks @franz1981

@jponge jponge closed this as completed Oct 25, 2023
@jponge jponge reopened this Oct 25, 2023
@jponge
Copy link
Member Author

jponge commented Oct 25, 2023

I closed the issue, not the draft PR 🤣

jponge added a commit that referenced this issue Oct 25, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330
jponge added a commit that referenced this issue Oct 25, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from io.smallrye.mutiny.helpers.queues.Queues
as well as previous MPSC/SPSC classes in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Oct 25, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
@jponge jponge linked a pull request Oct 25, 2023 that will close this issue
jponge added a commit that referenced this issue Nov 6, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Nov 17, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Nov 17, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- Introduced Infrastructure#useUnsafeForQueues to decide when to use unpadded vs atomic variants.
- Introduced native compilation smoke tests.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Nov 17, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- We use the unpadded variants to relieve memory pressure.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Nov 30, 2023
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- We use the unpadded variants to relieve memory pressure.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
@jponge jponge modified the milestones: 2.6.0, 2.7.0 (or 3.0.0?) Dec 1, 2023
jponge added a commit that referenced this issue Jan 19, 2024
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- We use the unpadded variants to relieve memory pressure.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
jponge added a commit that referenced this issue Jan 22, 2024
- Refactored the Queues class and made all queue creations converge to it (except for tests).
- We use the unpadded variants to relieve memory pressure.

Issue: #1330

BREAKING CHANGE: constants and methods have been removed from
io.smallrye.mutiny.helpers.queues.Queues as well as previous MPSC/SPSC classes
in the io.smallrye.mutiny.helpers.queues package.
@jponge
Copy link
Member Author

jponge commented Feb 2, 2024

Done in #1434

@jponge jponge closed this as completed Feb 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request technical-debt Technical debt reduction
Projects
None yet
2 participants