almogtavor opened a new issue, #12318:
URL: https://github.com/apache/lucene/issues/12318

   ### Description
   
   I'd like to use Lucene Monitor in a non-blocking IO application, and I'd 
like to know what is the recommended way of doing that. Currently, I match 
queries with the `ParallelMatcher` class, but since I'd like to migrate my 
application to work with Project Reactor, I'm worried about the usage of 
`BlockingQueue` inside `ParallelMatcher`.
   
   When using the Java `BlockingQueue` implementation, the `put()` method will 
block if the queue is full, and the `take()` method will block if the queue is 
currently empty. This can be an effective way to handle cases where producers 
might produce data faster than consumers can handle it or vice versa. However, 
when using reactive programming paradigms (such as in Project Reactor), 
blocking should be avoided as much as possible because it goes against the 
non-blocking nature of reactive systems. Blocking can lead to thread starvation 
and ultimately affect the performance and scalability of the application.
   
   I'd like to get some help with understanding if there's another `Matcher` 
that will fit my async needs, or shall I create one of my own for this? From 
what I've seen, the `PartitionMatcher` doesn't use `BlockingQueue` but still 
uses `future.get()`. I'd like to know the following:
   
   1) Is there any `Matcher` that would work well inside a non-blocking IO 
application? If not, shall we create one?
   2) Assuming there is a non-blocking IO `Matcher`, is there any other area 
where I need to be worried about my usage of Lucene Monitor blocking ( This 
includes any IO operations, synchronization points, or data structures that can 
block)?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to