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

WIP: [AMQ-9394] Tech Preview: Virtual Thread support #1121

Closed
wants to merge 1 commit into from

Conversation

mattrpav
Copy link
Contributor

@mattrpav mattrpav commented Nov 17, 2023

TODO:

  • Throw exception if virtualThreadTaskRunner is enabled and JDK 21 (or higher) is not available
  • Breakout the Virtual Thread factory init so it only logs on JDK 17
  • Add webpage with instructions and implementation progress status (https://activemq.apache.org/virtual-threads)
  • Add a VirtualThreadTaskRunner
  • Consider separate config flag for persistenceAdapter TaskRunner
  • Replace Thread.yield() usage with VirtualThread friendly alternative

@mattrpav mattrpav self-assigned this Nov 17, 2023
@jbonofre jbonofre self-requested a review November 17, 2023 18:07
@mattrpav mattrpav force-pushed the AMQ-9394 branch 3 times, most recently from e83ff29 to c87c1ad Compare November 18, 2023 19:26
@PascalSchumacher
Copy link
Contributor

Great to see work done on this! 👍

What about other threads like ActiveMQ Data File Writer, ActiveMQ Journal *, can/should these be virtual too or is that a bad idea?

@mattrpav
Copy link
Contributor Author

Great to see work done on this! 👍

What about other threads like ActiveMQ Data File Writer, ActiveMQ Journal *, can/should these be virtual too or is that a bad idea?

Those are single threaded processing right now. They would most benefit from being converted (or create a configurable alternative) to use Linux's IO_uring (aka kqueue in macOS) vs Virtual Thread (which would block on I/O anyway).

@mattrpav
Copy link
Contributor Author

mattrpav commented Mar 5, 2024

Newer PR here: #1172

@mattrpav mattrpav closed this Mar 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants