Tim Armstrong created IMPALA-9457:
-------------------------------------

             Summary: Lazy start of disk threads in I/O manager
                 Key: IMPALA-9457
                 URL: https://issues.apache.org/jira/browse/IMPALA-9457
             Project: IMPALA
          Issue Type: Improvement
          Components: Backend
            Reporter: Tim Armstrong


Currently DiskIoMgr starts all the I/O threads upfront for all supported 
filesystems. This means there are 100s of idle threads in most impalads that 
never do anything. It would be sensible to start the threads for a disk only 
when the first range is submitted. It's not immediately obvious where the best 
place to do this is. A couple of ideas:

* Try to do it in ScheduleContext in a lightweight way, e.g. check an atomic to 
see if it's been initialised, then acquire a lock and create the threads if 
needed.  Propagating the status if thread creation fails may be the tricky part
* Start up one thread per disk, so I/O can always make progress, and start an 
extra thread per disk each time a range is pulled off the queue in 
DiskQueue::GetNextRequestRange() so that the number of threads ramps up as scan 
ranges are submitted. It could potentially be clever and try to track how many 
threads are parked and only create new threads if 0 threads are parked.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to