Week (7) - Introducing the caching layer

iifawzi_
Published: 07/27/2021

Hi, I hope that you're all doing great!
This Week I've worked on introducing the caching layer, previously we were depending on the MongoDB collection to fetch the requested icons, and then perform the requested changes ( icon customizations ), we wanted to make this process faster, thus we introduced the Redis layer, where we cache all the icons in the memory. The redis layer got updated whenever any update occurred to the db, this way our caching layer will always be up to date, and I've decided to cache all the icons because we need to decrease the miss probability ( checking the redis layer and not finding the icon ), and since we're just caching the raw non-customized icons, we don't need to wait until a miss happen to cache the icon.

What's next?

Currently, i'm working on the suggestions APIs, we need to provide the ability of suggesting tags, I've encountered some issues regarding how will we be able to manage the votes, no accounts are involved in this process. We didn't decide how we will manage it yet, stay tuned for the next blog!
DJDT

Versions

Time

Settings from gsoc.settings

Headers

Request

SQL queries from 1 connection

Static files (2312 found, 3 used)

Templates (11 rendered)

Cache calls from 1 backend

Signals

Log messages