Last tested: Feb 11, 2020
When a render job starts to generate a PNG or PDF of a look, explore or dashboard, it goes through the following steps:
- The render job enters the caching queue, waiting until a caching spot is open. By default, there are 2 render threads but this can be changed with a startup flag (change with caution)
- Once a spot opens up, the render job enters the cacher. This is where Looker runs all queries in a dashboard, or the single query for an explore or look, and caches the results. This step ensures that once Chromium starts up, it doesn't have to wait around for the SQL to finish.
- Once the queries are cached, the job enters the render queue where it waits for a render thread.
- Once a spot opens up, the render job starts. The renderer then starts a Chromium process, and Looker connects to the Chromium process via its developer tools. Chromium then loads the content from Looker from the cache it set in step 2 (as long as the cache has not expired), waits to receive a message from the content that it is "done", and takes a screenshot and saves it to cache.
The render_job internal DB table keeps track of all these steps along the way.
Once this process is done, a deliver thread takes the saved PDF or PNG from the cache and sends it on to the email/sftp/action/etc