So I’m home sick today, and going through the laundry list of things I haven’t gotten around to recently.
Weathrman is on that list.
I’ve pushed a new version of the server that performs searches on behalf of app users up. This is designed to do two things: reduce the cost of running the service, and improve the search quality.
In order to reduce the cost, I’m going to do the obvious thing: I’m going to produce fewer searches. Specifically, that means:
- Instead of asking for a 3-hour window, we’re asking for a 4-hour window around ‘now’.
- Increase the search window from 3 months to 4 months (2 in either direction)
- Fetch 4 pages of results instead of 5.
- Reduce the minimum number of results needed at any search level from 5 to 3.
- Remove street-level searching (level 16) - it too rarely has results, and just creates latency.
This means our worst case goes from being 7 tiers of 5 parallel searches to being 6 tiers of 4 parallel searches. It also means the average case, which cost 1 tier of 5 searches before we were likely to find any results, will now get faster, and I won’t be paying for that wasted time.
The downside is that I’m only fetching four pages of results; searches cover the entire four-month window, and it’s possible that none of the first four pages will have photos taken within the required time-of-day range; if that happens, we skip up a level. Dropping one of the pages of search results makes that more likely, and it’s probably not completely mitigated by the widening of the 3-hour window to 4. The net effect is that searches may feel… a little less local.
Hopefully, these changes mean I’ll be able to continue supporting this service for longer, and more cheaply. Going back to the days when the client was responsible for performing all these searches just isn’t going to happen - it’s just too convenient to be able to run the searches from the server, and much more reliable. It does mean that I’m bearing the cost of a free app - but as long as I can keep the costs down, I don’t mind.