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

Reply via email to