AsturaPhoenix / trip_planner_aquamarine

BASK Trip Planner cross-platform
MIT License
2 stars 1 forks source link

[server] Caching #64

Closed AsturaPhoenix closed 1 year ago

AsturaPhoenix commented 1 year ago

commit 79c5f01150783c5b0596da26cecc4b02b53fd283 Author: Ross Wang imagipioneer@gmail.com Date: Thu May 11 16:53:29 2023 -0700

[server] Caching

Write locks are being held for the duration of a fetch, which can be long. Two possibilities for dealing with this include downloading to a temporary file or using a memory cache. This goes with a memory cache to also save on disk IO costs. For simplicity, there's still a cache miss case under heavy load where a write lock may block reads. Also for simplcity since latlngs are infrequently read and seldom written, they are not cached.

commit 1654ad1d5c4e3ee444fe02ad8754f54e3422fac2 Author: Ross Wang imagipioneer@gmail.com Date: Wed May 10 23:06:49 2023 -0700

[server] Factor out mutex map

Factors out a data structure that tracks lockable resources by key.