Différences entre versions de « NF14659 — Stockage des pièces jointes sur le disque dur et plus dans la base de données »
De Documentation Polaris
(modifications automatiques tags et catégories via le cartographe) |
|||
Ligne 2 : | Ligne 2 : | ||
<blockquote><small>''Voir la carte de la fonctionnalité : [[PP58_—_A_classer#NF14659|A classer]]''</small></blockquote>{{FinInfoCartographe}} | <blockquote><small>''Voir la carte de la fonctionnalité : [[PP58_—_A_classer#NF14659|A classer]]''</small></blockquote>{{FinInfoCartographe}} | ||
{{DebutChapeau}}<br/><br/>{{FinChapeau}} | {{DebutChapeau}}<br/><br/>{{FinChapeau}} | ||
+ | == Concept == | ||
+ | |||
+ | === Fonctionnalité === | ||
+ | Nous gérons dorénavant le stockage des pièces jointes de la messagerie interne en dehors de la base de données, sur fichier plat, dans le répertoire <code>/var/polaris/media/attachments</code>. | ||
+ | |||
+ | Les pièces jointes ne sont pas envoyées aux postes de réplication tant que ceux-ci ne demande pas à la consulter, y compris lors de la synchronisation d'un poste. | ||
+ | |||
+ | === Finalités : === | ||
+ | Nous avons entrepris la réalisation de la séparation des pièces-jointes pour les raisons suivantes : | ||
+ | * '''gain d'espace''' : les objets binaires sont en effet stockés au format base64, ce qui augmente artificiellement leur taille et donc celle de la base de données ; | ||
+ | * '''gain de complexité''' : en gérant les pièces jointes en dehors de la base de données, nous ouvrons le champ des possibles sur leur gestion par des méthodes plus conventionnelles (transfert HTTP) ; | ||
+ | * '''gain de productivité''' : il est désormais possible de gérer le backup des pièces jointes de manière incrémentale sur une chronologie différente des données - car étant de simples fichiers dans une arborescence stable et définie - signifiant un gain énorme de place et de temps lors des sauvegardes ; | ||
+ | |||
+ | == Fonctionnement == | ||
+ | Voici le flux complet de la vie de la pièce-jointe. | ||
+ | |||
+ | <graphviz> | ||
+ | digraph G { | ||
+ | graph [fontname = "helvetica", size="8"]; | ||
+ | node [fontname = "helvetica", size="8"]; | ||
+ | edge [fontname = "helvetica", size="8"]; | ||
+ | |||
+ | a1 [shape=rect label="Nouvelle PJ"]; | ||
+ | a2 [shape=rect label="Consulter la PJ"]; | ||
+ | |||
+ | o1 [label="Réplication"]; | ||
+ | o2 [label="Téléchargement PJ"]; | ||
+ | o3 [label="Demande au TLR"]; | ||
+ | o4 [label="Réplication"]; | ||
+ | o5 [label="Extraction depuis la base"]; | ||
+ | o6 [shape=doublecircle label="Disque TLR"]; | ||
+ | o7 [label="Téléchargement"]; | ||
+ | o8 [label="Stockage cache"]; | ||
+ | o9 [shape=doublecircle label="Disque Local"]; | ||
+ | q1 [shape=diamond label="En cache"]; | ||
+ | |||
+ | subgraph cluster_TLR { | ||
+ | label = "TLR"; | ||
+ | color=green; | ||
+ | |||
+ | o4; | ||
+ | o5; | ||
+ | o6; | ||
+ | o7; | ||
+ | }; | ||
+ | |||
+ | subgraph cluster_S1 { | ||
+ | label = "Service Fils A"; | ||
+ | color=violet; | ||
+ | |||
+ | o1; | ||
+ | }; | ||
+ | |||
+ | subgraph cluster_S2 { | ||
+ | label = "Service Fils B"; | ||
+ | color=maroon; | ||
+ | |||
+ | q1; | ||
+ | o2; | ||
+ | o3; | ||
+ | o8; | ||
+ | o9; | ||
+ | }; | ||
+ | |||
+ | a1 -> o1 [label="replication"]; | ||
+ | o1 -> o4 [label="replication"]; | ||
+ | o4 -> o5 [label=""]; | ||
+ | o5 -> o6 [label=""]; | ||
+ | a2 -> o2 [label="http"]; | ||
+ | o7 -> o8 [label="http"]; | ||
+ | o7 -> o6 [label=""]; | ||
+ | o2 -> q1 [label=""]; | ||
+ | q1 -> o3 [label="Non"]; | ||
+ | q1 -> o9 [label="Oui"]; | ||
+ | o3 -> o7 [label="http"]; | ||
+ | o8 -> o9 [label=""]; | ||
+ | o9 -> a2 [label="PJ, http"]; | ||
+ | } | ||
+ | </graphviz> | ||
+ | |||
+ | == Paramétrage == | ||
+ | Il n'y a aucun paramétrage associé à cette fonctionnalité |
Version du 22 novembre 2018 à 12:58
Voir la carte de la fonctionnalité : A classer
Concept
Fonctionnalité
Nous gérons dorénavant le stockage des pièces jointes de la messagerie interne en dehors de la base de données, sur fichier plat, dans le répertoire /var/polaris/media/attachments
.
Les pièces jointes ne sont pas envoyées aux postes de réplication tant que ceux-ci ne demande pas à la consulter, y compris lors de la synchronisation d'un poste.
Finalités :
Nous avons entrepris la réalisation de la séparation des pièces-jointes pour les raisons suivantes :
- gain d'espace : les objets binaires sont en effet stockés au format base64, ce qui augmente artificiellement leur taille et donc celle de la base de données ;
- gain de complexité : en gérant les pièces jointes en dehors de la base de données, nous ouvrons le champ des possibles sur leur gestion par des méthodes plus conventionnelles (transfert HTTP) ;
- gain de productivité : il est désormais possible de gérer le backup des pièces jointes de manière incrémentale sur une chronologie différente des données - car étant de simples fichiers dans une arborescence stable et définie - signifiant un gain énorme de place et de temps lors des sauvegardes ;
Fonctionnement
Voici le flux complet de la vie de la pièce-jointe.
Paramétrage
Il n'y a aucun paramétrage associé à cette fonctionnalité