Bug #37913
Améliorer la mise en cache de get_warehouses
0%
Description
Suite à #27412 la durée des tests est passée de 20 min à 1h30. Ce ticket avait introduit la nécessité de mettre en cache les retours de get_warehouses, mais le cache django utilisé s'avère trop lent sur les gros objets, conséquence des appels à pickle.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
On peut reprendre ta première intuition d'utiliser l'objet request global stocké par hobo.middleware.utils.StoreRequestMiddleware
mais comme je le notais dans #27412 ça peut aussi passer par une réorganisation du code qui permette de threader (passer de proche en proche) warehouses
plus simplement, i.e. par exemple avec un accesseur qui obtiendrait warehouse en même temps que les visualisations. C'est un peu plug long mais ça a le mérite d'être plus explicite.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0001-visualization-share-warehouses-between-visualization.patch 0001-visualization-share-warehouses-between-visualization.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Je tente l'approche que tu suggères.
Est-ce que je revert le commit qui met les warehouses en cache ? Il reste toujours ~10x plus rapide que les accès disques, mais d'un autre côté on a supprimé les appels fréquents, raison pour laquelle il avait été mis en place.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Valentin Deniaud a écrit :
Je tente l'approche que tu suggères.
Est-ce que je revert le commit qui met les warehouses en cache ? Il reste toujours ~10x plus rapide que les accès disques, mais d'un autre côté on a supprimé les appels fréquents, raison pour laquelle il avait été mis en place.
Oui revert, comme je le notais il casse bijoe en production (on va voir avoir les visualisations d'un tenant sur un autre).
Par contre il doit manquer un truc parce que je ne vois pas où from_json()
serait appelé avec le nouveau paramètre warehouses
.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
je ne vois pas où from_json() serait appelé avec le nouveau paramètre
Nulle part effectivement, je l'ai enlevé.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-visualization-share-warehouses-between-visualization.patch 0002-visualization-share-warehouses-between-visualization.patch ajouté
- Fichier 0001-Revert-utils-cache-warehouses-27412.patch 0001-Revert-utils-cache-warehouses-27412.patch ajouté
Avec le patch c'est mieux.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 6553db03ed30201fc958358b06319ec0695770b0 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Nov 25 13:46:15 2019 +0100 visualization: share warehouses between visualizations (#37913) commit 90a5bb49c4c6fa28690a7fe50404123e0960f314 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Nov 25 15:06:11 2019 +0100 Revert "utils: cache warehouses (#27412)" This reverts commit ba2c0c4fabba4d3ff71dde36ede01c812bc73282.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
visualization: share warehouses between visualizations (#37913)