#35567 [Bug]: Global proxy spend cache loses concurrent increments
### Check for existing issues
- [x] I searched open and closed issues before filing - [x] [#34732](https://github.com/BerriAI/litellm/issues/34732) covers the separate `max_budget_per_session` admission race
### What happened?
The cache used to enforce `litellm.max_budget` is updated with a non-atomic read, add, and set sequence
After each successful request, `update_cache` reads `GLOBAL_PROXY_SPEND_CACHE_KEY`, computes `global_proxy_spend + response_cost`, and schedules an asynchronous `async_set_cache_pipeline`. Two concurrent callbacks can both read the same starting value and both write their own result, permanently losing one increment from the cached global spend
The auth path reads this cached scalar through the event-driven coordinator and passes it to `_global_proxy_budget_check`. Under sustained concurrency, a lost-update value can be kept alive by later writes that refresh the cache TTL, so this is more than the ordinary delay before a completed request becomes visible
There is also no pre-call reservation for the global proxy budget. Even if the post-call update were atomic, concurrent requests can all be admitted against the same below-budget value. The existing …