Re: Camel & Virtual threads
Kotlin Coroutines and Java Virtual Threads are conceptually very similar. In details and implementation they are different, of course. A good presentation on comparing coroutines and virtual threads by Urs Peter: https://www.youtube.com/watch?v=bOLChQ3fFQo I was just referencing Kotlin Coroutines btw, for Camel only virtual threads are relevant. On Fri, Sep 1, 2023 at 11:01 AM bukaj_s wrote: > sry I meant executor. > > On Fri, 1 Sept 2023, 10:57 bukaj_s, wrote: > > > You are confusing coroutines and virtual threads. > > Afaik you can try to use virtual thread pool, question is how much > > synchronization is camel using under the hood. > > > > On Fri, 1 Sept 2023, 10:34 ski n, wrote: > > > >> OK, thanks. It will take some (couple of years) before most libraries > are > >> catching up. > >> > >> At least, Spring Boot will already support Java 21 with virtual threads > in > >> their next release ( > >> https://spring.io/blog/2023/08/24/spring-boot-3-2-0-m2-available-now). > I > >> don't know exactly how they do it, but they ship Spring as a multi > release > >> Jar for this purpose. When running Spring on Java 21 you can enable it ( > >> > >> > https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2.0-M1-Release-Notes#support-for-virtual-threads > >> ). > >> > >> I was thinking more or less in the same lines for Camel. For most of the > >> cases the underlying libraries needs to be updated, but for some stuff > >> like > >> Seda or Stream caching this may already work from within the libraries > own > >> code. > >> > >> Raymond > >> > >> > >> > >> > >> > >> > >> On Fri, Sep 1, 2023 at 9:36 AM Claus Ibsen > wrote: > >> > >> > Hi > >> > > >> > No plan for virtual threads - this relies on 3rd party libraries and > >> many > >> > other frameworks starting to adopt them as well, which means Java 21 > as > >> > minimum base version. > >> > Support for Java 21 is to run on JDK21. JDK17 will be primary > supported, > >> > and 21 secondary, that is the plan for this year. > >> > > >> > > >> > On Fri, Sep 1, 2023 at 9:34 AM ski n > wrote: > >> > > >> > > In integration there is a lot of Async I/O (calling disk, databases, > >> > api's > >> > > and other external systems). Though Camel is very fast, it's mostly > >> these > >> > > async I/O calls that take time and eat a lot of platform threads. > >> > > > >> > > For example: > >> > > > >> > > from("direct:start") > >> > > .log("some log") //this takes less than 1 ms > >> > > .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this > >> takes > >> > > less than 1 ms > >> > > .to("http://someapi;) //this takes 3 seconds > >> > > .setHeader("Result","Done") //this takes less than 1 ms > >> > > .to("sql://insertindatabase") //this takes less than 1 seconds > >> > > ; > >> > > > >> > > One solution to this is using virtual threads. They are already part > >> of > >> > > Kotlin (coroutines), but now coming to Java as well in Java 21 > >> (release > >> > > 19th September). > >> > > > >> > > In the Camel 4 blog "What's new" it states that: > >> > > > >> > > "We plan to support Java 21 on next LTS released by the end of this > >> > year." > >> > > > >> > > Camel next LTS release (4.2) is expected around December. > >> > > > >> > > I was wondering what the plans here are with supporting virtual > >> threads? > >> > > Will they part of 4.2 or planned for later? > >> > > > >> > > Raymond > >> > > > >> > > >> > > >> > -- > >> > Claus Ibsen > >> > - > >> > @davsclaus > >> > Camel in Action 2: https://www.manning.com/ibsen2 > >> > > >> > > >
Re: Camel & Virtual threads
sry I meant executor. On Fri, 1 Sept 2023, 10:57 bukaj_s, wrote: > You are confusing coroutines and virtual threads. > Afaik you can try to use virtual thread pool, question is how much > synchronization is camel using under the hood. > > On Fri, 1 Sept 2023, 10:34 ski n, wrote: > >> OK, thanks. It will take some (couple of years) before most libraries are >> catching up. >> >> At least, Spring Boot will already support Java 21 with virtual threads in >> their next release ( >> https://spring.io/blog/2023/08/24/spring-boot-3-2-0-m2-available-now). I >> don't know exactly how they do it, but they ship Spring as a multi release >> Jar for this purpose. When running Spring on Java 21 you can enable it ( >> >> https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2.0-M1-Release-Notes#support-for-virtual-threads >> ). >> >> I was thinking more or less in the same lines for Camel. For most of the >> cases the underlying libraries needs to be updated, but for some stuff >> like >> Seda or Stream caching this may already work from within the libraries own >> code. >> >> Raymond >> >> >> >> >> >> >> On Fri, Sep 1, 2023 at 9:36 AM Claus Ibsen wrote: >> >> > Hi >> > >> > No plan for virtual threads - this relies on 3rd party libraries and >> many >> > other frameworks starting to adopt them as well, which means Java 21 as >> > minimum base version. >> > Support for Java 21 is to run on JDK21. JDK17 will be primary supported, >> > and 21 secondary, that is the plan for this year. >> > >> > >> > On Fri, Sep 1, 2023 at 9:34 AM ski n wrote: >> > >> > > In integration there is a lot of Async I/O (calling disk, databases, >> > api's >> > > and other external systems). Though Camel is very fast, it's mostly >> these >> > > async I/O calls that take time and eat a lot of platform threads. >> > > >> > > For example: >> > > >> > > from("direct:start") >> > > .log("some log") //this takes less than 1 ms >> > > .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this >> takes >> > > less than 1 ms >> > > .to("http://someapi;) //this takes 3 seconds >> > > .setHeader("Result","Done") //this takes less than 1 ms >> > > .to("sql://insertindatabase") //this takes less than 1 seconds >> > > ; >> > > >> > > One solution to this is using virtual threads. They are already part >> of >> > > Kotlin (coroutines), but now coming to Java as well in Java 21 >> (release >> > > 19th September). >> > > >> > > In the Camel 4 blog "What's new" it states that: >> > > >> > > "We plan to support Java 21 on next LTS released by the end of this >> > year." >> > > >> > > Camel next LTS release (4.2) is expected around December. >> > > >> > > I was wondering what the plans here are with supporting virtual >> threads? >> > > Will they part of 4.2 or planned for later? >> > > >> > > Raymond >> > > >> > >> > >> > -- >> > Claus Ibsen >> > - >> > @davsclaus >> > Camel in Action 2: https://www.manning.com/ibsen2 >> > >> >
Re: Camel & Virtual threads
You are confusing coroutines and virtual threads. Afaik you can try to use virtual thread pool, question is how much synchronization is camel using under the hood. On Fri, 1 Sept 2023, 10:34 ski n, wrote: > OK, thanks. It will take some (couple of years) before most libraries are > catching up. > > At least, Spring Boot will already support Java 21 with virtual threads in > their next release ( > https://spring.io/blog/2023/08/24/spring-boot-3-2-0-m2-available-now). I > don't know exactly how they do it, but they ship Spring as a multi release > Jar for this purpose. When running Spring on Java 21 you can enable it ( > > https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2.0-M1-Release-Notes#support-for-virtual-threads > ). > > I was thinking more or less in the same lines for Camel. For most of the > cases the underlying libraries needs to be updated, but for some stuff like > Seda or Stream caching this may already work from within the libraries own > code. > > Raymond > > > > > > > On Fri, Sep 1, 2023 at 9:36 AM Claus Ibsen wrote: > > > Hi > > > > No plan for virtual threads - this relies on 3rd party libraries and many > > other frameworks starting to adopt them as well, which means Java 21 as > > minimum base version. > > Support for Java 21 is to run on JDK21. JDK17 will be primary supported, > > and 21 secondary, that is the plan for this year. > > > > > > On Fri, Sep 1, 2023 at 9:34 AM ski n wrote: > > > > > In integration there is a lot of Async I/O (calling disk, databases, > > api's > > > and other external systems). Though Camel is very fast, it's mostly > these > > > async I/O calls that take time and eat a lot of platform threads. > > > > > > For example: > > > > > > from("direct:start") > > > .log("some log") //this takes less than 1 ms > > > .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this > takes > > > less than 1 ms > > > .to("http://someapi;) //this takes 3 seconds > > > .setHeader("Result","Done") //this takes less than 1 ms > > > .to("sql://insertindatabase") //this takes less than 1 seconds > > > ; > > > > > > One solution to this is using virtual threads. They are already part of > > > Kotlin (coroutines), but now coming to Java as well in Java 21 (release > > > 19th September). > > > > > > In the Camel 4 blog "What's new" it states that: > > > > > > "We plan to support Java 21 on next LTS released by the end of this > > year." > > > > > > Camel next LTS release (4.2) is expected around December. > > > > > > I was wondering what the plans here are with supporting virtual > threads? > > > Will they part of 4.2 or planned for later? > > > > > > Raymond > > > > > > > > > -- > > Claus Ibsen > > - > > @davsclaus > > Camel in Action 2: https://www.manning.com/ibsen2 > > >
Re: Camel & Virtual threads
OK, thanks. It will take some (couple of years) before most libraries are catching up. At least, Spring Boot will already support Java 21 with virtual threads in their next release ( https://spring.io/blog/2023/08/24/spring-boot-3-2-0-m2-available-now). I don't know exactly how they do it, but they ship Spring as a multi release Jar for this purpose. When running Spring on Java 21 you can enable it ( https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2.0-M1-Release-Notes#support-for-virtual-threads ). I was thinking more or less in the same lines for Camel. For most of the cases the underlying libraries needs to be updated, but for some stuff like Seda or Stream caching this may already work from within the libraries own code. Raymond On Fri, Sep 1, 2023 at 9:36 AM Claus Ibsen wrote: > Hi > > No plan for virtual threads - this relies on 3rd party libraries and many > other frameworks starting to adopt them as well, which means Java 21 as > minimum base version. > Support for Java 21 is to run on JDK21. JDK17 will be primary supported, > and 21 secondary, that is the plan for this year. > > > On Fri, Sep 1, 2023 at 9:34 AM ski n wrote: > > > In integration there is a lot of Async I/O (calling disk, databases, > api's > > and other external systems). Though Camel is very fast, it's mostly these > > async I/O calls that take time and eat a lot of platform threads. > > > > For example: > > > > from("direct:start") > > .log("some log") //this takes less than 1 ms > > .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this takes > > less than 1 ms > > .to("http://someapi;) //this takes 3 seconds > > .setHeader("Result","Done") //this takes less than 1 ms > > .to("sql://insertindatabase") //this takes less than 1 seconds > > ; > > > > One solution to this is using virtual threads. They are already part of > > Kotlin (coroutines), but now coming to Java as well in Java 21 (release > > 19th September). > > > > In the Camel 4 blog "What's new" it states that: > > > > "We plan to support Java 21 on next LTS released by the end of this > year." > > > > Camel next LTS release (4.2) is expected around December. > > > > I was wondering what the plans here are with supporting virtual threads? > > Will they part of 4.2 or planned for later? > > > > Raymond > > > > > -- > Claus Ibsen > - > @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 >
Re: Camel & Virtual threads
Hi No plan for virtual threads - this relies on 3rd party libraries and many other frameworks starting to adopt them as well, which means Java 21 as minimum base version. Support for Java 21 is to run on JDK21. JDK17 will be primary supported, and 21 secondary, that is the plan for this year. On Fri, Sep 1, 2023 at 9:34 AM ski n wrote: > In integration there is a lot of Async I/O (calling disk, databases, api's > and other external systems). Though Camel is very fast, it's mostly these > async I/O calls that take time and eat a lot of platform threads. > > For example: > > from("direct:start") > .log("some log") //this takes less than 1 ms > .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this takes > less than 1 ms > .to("http://someapi;) //this takes 3 seconds > .setHeader("Result","Done") //this takes less than 1 ms > .to("sql://insertindatabase") //this takes less than 1 seconds > ; > > One solution to this is using virtual threads. They are already part of > Kotlin (coroutines), but now coming to Java as well in Java 21 (release > 19th September). > > In the Camel 4 blog "What's new" it states that: > > "We plan to support Java 21 on next LTS released by the end of this year." > > Camel next LTS release (4.2) is expected around December. > > I was wondering what the plans here are with supporting virtual threads? > Will they part of 4.2 or planned for later? > > Raymond > -- Claus Ibsen - @davsclaus Camel in Action 2: https://www.manning.com/ibsen2
Camel & Virtual threads
In integration there is a lot of Async I/O (calling disk, databases, api's and other external systems). Though Camel is very fast, it's mostly these async I/O calls that take time and eat a lot of platform threads. For example: from("direct:start") .log("some log") //this takes less than 1 ms .setHeader(Exchange.HTTP_URI, constant("http://someapi;)) //this takes less than 1 ms .to("http://someapi;) //this takes 3 seconds .setHeader("Result","Done") //this takes less than 1 ms .to("sql://insertindatabase") //this takes less than 1 seconds ; One solution to this is using virtual threads. They are already part of Kotlin (coroutines), but now coming to Java as well in Java 21 (release 19th September). In the Camel 4 blog "What's new" it states that: "We plan to support Java 21 on next LTS released by the end of this year." Camel next LTS release (4.2) is expected around December. I was wondering what the plans here are with supporting virtual threads? Will they part of 4.2 or planned for later? Raymond