mapbox / mapbox/tippecanoe

Earlier dispatch of new tasks

Open
#103 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
3.1k
Forks
430
PR merge metrics
No merged PRs in 30d

Description

With multithreading, the task dispatcher often sits there for a long time waiting for a single difficult tile to complete after all the other threads have finished.

I wonder if it would work any better to run through each task set twice: first to generate the next zoom level and then again to do the actual tiling. If I did this, then each thread, as soon as it was available, could pick up a new set of tasks at the next zoom level without having to wait for the slowest thread to complete. Potentially several threads could even be working on the difficult tile at different zoom levels at the same time.

Risk: ballooning temporary storage space since many levels of the same data could be live at the same time.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the multithreaded task dispatcher and how task sets are processed across zoom levels. Evaluate whether generating the next zoom level before actual tiling improves thread utilization without leaving excessive temporary data live; done means the scheduling behavior and storage trade-off are measured and addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.