You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Proposer une optimisation du processus de reduce pour:
réduire le temps de calcul du processus
limiter le laps de temps d'indisponibilité des données pour les data-scientists
Remarque
Une partie de ces modifications est déjà effective grace à #330
Fonctionnement actuel
La procédure lance le mapReduce par morceaux sur des chunks de la collection RawData et déverse le résultat dans autant de bases de données mongo qu'il n'y a de chunks, dans une collection nommée TemporaryCollection.
Une fois ce calcul effectué, un traitement reprend le contenu de toutes ces bases et execute une aggregation pour merge les objets calculés dans la base Features. Cela se déroule en 2 séquences:
renommage de l'ancienne collection Features en Features_<date> et création de la nouvelle collection avec ses indexes
processus de copie des données et suppression des bases supplémentaires dans la collection Features
Problème rencontré
La présence de 2 indexes dans la collection Features multiplie environ le temps de recopie par 2 ou 3
Pendant ce temps de recopie, la base disponible dans Features est incomplète (mais accessible) et les data scientists pourraient faire des requêtes partielles et être induits en erreur
Proposition
L'idée est de changer la séquence de cette façon:
Création d'une collection Features_next sans indexes
processus de copie des données à destination de Features_next et suppression des bases temporaires
création des indexes dans Features_next
renommage de Features en Features_<date> puis renommage de Features_next en Features
De cette façon la collection Features reste toujours complète et les indexes ne gènent pas la recopie. Il est envisagé que la création des indexes en un bloc aura un coût moindre que leur alimentation au fil de l'eau pendant la copie.
The text was updated successfully, but these errors were encountered:
Objectif de cette issue
Proposer une optimisation du processus de reduce pour:
Remarque
Une partie de ces modifications est déjà effective grace à #330
Fonctionnement actuel
La procédure lance le mapReduce par morceaux sur des chunks de la collection RawData et déverse le résultat dans autant de bases de données mongo qu'il n'y a de chunks, dans une collection nommée TemporaryCollection.
Une fois ce calcul effectué, un traitement reprend le contenu de toutes ces bases et execute une aggregation pour merge les objets calculés dans la base Features. Cela se déroule en 2 séquences:
Features
enFeatures_<date>
et création de la nouvelle collection avec ses indexesFeatures
Problème rencontré
Proposition
L'idée est de changer la séquence de cette façon:
Features_next
sans indexesFeatures_next
et suppression des bases temporairesFeatures_next
Features
enFeatures_<date>
puis renommage deFeatures_next
enFeatures
De cette façon la collection Features reste toujours complète et les indexes ne gènent pas la recopie. Il est envisagé que la création des indexes en un bloc aura un coût moindre que leur alimentation au fil de l'eau pendant la copie.
The text was updated successfully, but these errors were encountered: