"Load the settings from the database for each request (thread), do not use with caching." Why can't that be cached? Surely if there is a problem with invalidation, then when you change a setting it such invalidate the cache there?