pelicanmapping / rocky

3D Geospatial SDK (C++17 / Vulkan / VSG)
MIT License
91 stars 15 forks source link

Rate limit mitigation (and minor fixes) #51

Closed AnyOldName3 closed 1 month ago

AnyOldName3 commented 1 month ago

This is kind of three unrelated things, so sorry for lumping them into one pull request.

gwaldron commented 1 month ago

Thanks. I agree it works much better with Bing. The randomizer is a little weird but we will go with it for now :)

AnyOldName3 commented 1 month ago

I had the CSMA/CA system from WiFi in mind (the collision avoidance part typically works the same way as I've done things here), so it wasn't my own invention. It did seem to be an improvement over a fixed time in my not-very-empirical testing, without needing as much of a delay on average.

There's still a bit of a problem in that the dependency cache thing I did a few days ago won't cache failed requests, which was intentional so it didn't doom a rate-limit-induced failure to affect future requests for the same tile, but also means that when a request fails because there's no data for a particular region at a particular level, it'll happen again for any other composite tile that covers the same source tile, and counts towards the rate limit.