Skip to content

Latest commit

 

History

History
22 lines (17 loc) · 866 Bytes

how.rst

File metadata and controls

22 lines (17 loc) · 866 Bytes

How django-cachalot works

Note

 If you don’t understand, you can pretend it’s magic.

Reverse engineering

It’s a lot of Django reverse engineering combined with a strong test suite. Such a test suite is crucial for a reverse engineering project. If some important part of Django changes and breaks the expected behaviour, you can be sure that the test suite will fail.

Monkey patching

Django-cachalot modifies Django in place during execution to add a caching tool just before SQL queries are executed. When a SQL query reads data, we save the result in cache. If that same query is executed later, we fetch that result from cache. When we detect INSERT, UPDATE or DELETE, we know which tables are modified. All the previous cached queries can therefore be safely invalidated.