In-memory caching using only python #18
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here is a module that implements Least Recently Used caching using only python. This can be used on servers that don't have a dedicated caching system.
In my performance tests I hit the server with 200 requests per second for 60 seconds, 20 times, and averaged the results. Using --pycache vs no caching showed these improvements with a postgress database:
100% increase in average responses/requests served in 60 seconds (4,041 -> 8,094 requests server)
13% decrease in average request timeouts in 60 seconds (1715 -> 1484 timeouts)
92% decrease in average response time (546ms -> 46ms response time)
Additionally the server no longer became overwhelmed and unresponsive.