Hey Michael, The key thing is that the threads are all managed by gRPC's C++ implementation. On the server side, the C++ libraries underneath handle incoming requests, encoding/decoding responses, etc. all concurrently without calling into Python. Arrow calls into Python only for the actual RPC endpoint logic. This is all multithreaded and within a single process. (In fact, you probably should avoid fork() and things built on top of it, like the multiprocessing module - it will not play well with the C++-level libraries.) Threading is all managed by the C++ library and so there is not any one place to look at, is there something specific you were looking for?
Best, David On Tue, Sep 7, 2021, at 18:45, Michael Ark wrote: > I am relatively new to Python and Arrow Flight. I want to understand how > Arrow Flight works with multiple clients making multiple requests to a single > server. It seems like Arrow Flight handles concurrency. Is it multithreaded, > but single process? How are the threads managed? Where can I find this logic? > When I try to track the threads in the server with logging, I get > DummyThreads, so it’s not very helpful. > > #arrow-flight > > Thanks! Appreciate any help you can provide.
