Hi,

This week I implemented a cache-based strategy for improving the
performance of rendering distro tracker's package tables. I opened a Merge
Request with my proposal [1].

My proposal changed distro tracker to use Redis as cache backend.
For each package, I'm caching a hash for which the keys reference the
column type, and the values having the html to be rendered for that column
and package. Thus, if a package appears in more than one table, we will
reuse the same cache entry for them.

Although my proposal considerably improved the performance, Raphael Herztog
suggested some design changes related to cache storing and cleaning. He
mentioned that we want caching at two levels: one at the cell level and
whose invalidation is managed properly by some code; one that expires
relatively quickly at the row level. Also, I need to provide an efficient
way to invalidate the cached data.

I'm currently working on this ;)

[1] https://salsa.debian.org/qa/distro-tracker/merge_requests/44
-- 
*Arthur de Moura Del Esposte*
Software Engineer

CCSL/IME - http://ccsl.ime.usp.br/
LAPPIS - http://fga.unb.br/lappis

Reply via email to