Use thread-local as a per-request cache