Thank you, I will take a look on them.
Leonid
On 11/11/20 5:30 PM, Cheng Tan wrote:
One thing I can think of is the ACL operations (create / delete ACLs). They are
much more less frequently used other than the produce/consume/topic creation so
I’m not sure if it’s valuable to use as a benchmark.
- Cheng
On Nov 11, 2020, at 4:33 PM, Leonid Mesnik <leonid.mes...@oracle.com> wrote:
Hi Ismael
Thank you for your help and quick response. You are right, the file IO is
blocking with Loom now. And small number threads might not having benefits if
they were just changed to virtual threads.
The virtual threads could help when you have a lot of tasks which are executed
in some thread pool. So each such task is executed in separate virtual thread
and could be yielded instead of blocking thread. Do you think you have
something similar in Kafka?
It would be great if you just point me to such tasks. So I could try to execute them in
virtual thread pool. If you don't think you have them or they couldn't be easily
"virtualized" it is fine. I understand that Loom is still a separate project
and it might be premature to think about any significant changes related to it. So now I
would like just to try to use such changes to test Loom implementation itself.
Leonid
On 11/10/20 6:24 AM, Ismael Juma wrote:
Hi Leonid,
Thanks for looking into this. I think the main question is how
virtual threads would help here. Kafka tends to use a small number of
threads combined with non blocking IO, but there are some exceptions like
disk IO. My understanding is that the latter is still blocking even with
the latest builds of Loom. Is that right?
Ismael
On Mon, Nov 9, 2020 at 10:26 AM Leonid Mesnik <leonid.mes...@oracle.com>
wrote:
Hi
Currently, I am working on Loom project which enables virtual threads
for Java.
https://wiki.openjdk.java.net/display/loom/Main
As one of real-life tests it would be interesting to run Kafka using
virtual threads. However it might require some support in Kafka for
this. It is needed to add ability to start some threads as "virtual". Do
you know if anyone is interested and could help me with this?
Here are more details:
Basically, the virtual thread is a sub-class of java.lang.Thread. So it
is need to refactor code to avoid subclassing of thread and factorize
thread creation. I placed "example" fix what should be done to add
ability to run KafkaThread as virtual thread. It is just to demonstrate
the overall idea of changes.
https://urldefense.com/v3/__https://github.com/lmesnik/kafka/commit/872a2d5fd57b0c76878eece6c54c783897ccbf5e__;!!GqivPVa7Brio!MaLCXTeiTLzVpWU8BD3j4o6RxBqSOki307AHuhzHGrX1Q_9khpAC-9FTvrXyrcGUNA$
<https://urldefense.com/v3/__https://github.com/lmesnik/kafka/commit/872a2d5fd57b0c76878eece6c54c783897ccbf5e__;!!GqivPVa7Brio!MaLCXTeiTLzVpWU8BD3j4o6RxBqSOki307AHuhzHGrX1Q_9khpAC-9FTvrXyrcGUNA$>
I want to check with you if it is a good approach for Kafka and are
there are other places to be updated. There is no plan to push such
support in mainline yet. Also, no plans to make any significant changes.
But if they want we could do it.
What do you think about this?
Leonid