Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Règles de pérennité des comptes LinuxFr.org, données à caractère personnel et effet un an

En février 2023, nous annoncions la mise en place d’une durée de conservation des données à caractère personnel (DCP) sur LinuxFr.org, avec à partir du 28 juin 2023 :

  • fermeture des comptes inactifs pendant trois ans et suppression de leurs données conservées inutiles au service ;
  • suppression des données associées inutiles au service pour les comptes fermés depuis plus d’un an.

L’aide du site explique :

Depuis le 31 mai 2023, une information de date de dernière activité est associée à chaque compte. Ajoutons que depuis septembre 2023 l’accès à cette information est aussi réduite au besoin du service (on peut connaître l’info de son propre compte ; les admins ont seulement besoin de savoir si la dernière activité date de moins d’un mois, d’un an, trois ans ou plus, en raison des règles précitées).

Nous voici donc un an après, et cette partie de la règle s’applique donc pour la première fois. Nous détaillerons les effets dans la seconde partie de la dépêche.

Sommaire

Script de minimisation des données et semaine normale

La suppression des données inutiles au service repose actuellement sur un script de minimisation externe, lancé manuellement. Une des raisons de l’aspect manuel est notamment le fait que l’on n’avait pas encore passé la première année, qui marque un seuil comme nous le verrons plus tard.

La précédente exécution du script ayant eu lieu le 19 mai 2024 à 11h (Paris), voyons ce que ça donne sur 12 jours et quelques heures :

Started at vendredi 31 mai 2024, 22:19:15 (UTC+0200)
Dry run mode
13 inactive accounts never used to purge
0 users to minimize
0 accounts to minimize because inactive and not seen since 1 year
0 active accounts not seen since 3 years to inactivate and minimize
12 users without comments/contents to purge
12 accounts to purge
6 logs to purge
12 friendly_id_slugs to purge
0 taggings to purge
0 oauth_access_grants for an oauth_application to purge
0 oauth_access_tokens for an oauth_application to purge
0 oauth_applications to purge
0 oauth_access_grants to purge
0 oauth_access_tokens to purge
0 deleted comments to minimize
0 comments from non-public contents to purge
0 taggings from non-public contents to purge
0 wiki_versions from non-public wiki_pages to purge
0 slugs from non-public wiki_pages to purge
0 non-public wiki_pages to purge
0 slugs from non-public trackers to purge
0 non-public trackers to purge
0 slugs from non-public posts to purge
0 non-public posts to purge
0 poll_answers to from non-public polls to purge
0 slugs from non-public polls to purge
0 non-public polls to purge
0 slugs from non-public bookmarks to purge
0 non-public bookmarks to purge
0 slugs from non-public diaries to purge
0 diaries converted into non-public news to purge
0 non-public diaries to purge
1 news_versions from non-public news to purge
10 paragraphs from non-public news to purge
0 links from non-public news to purge
1 slugs from non-public news to purge
1 non-public news to purge
1 non-public contents to purge

En fonctionnement pré-« 1 an », on a seulement quelques comptes créés mais jamais utilisés à nettoyer (ainsi que tout ce qui y est associé, donc les comptes « accounts », les individus « users », les logs associés « logs » s’il y en a, les raccourcis pour les adresses du site « slugs ») et les contenus, commentaires et étiquetages associés non publics donc non visibles qui ne sont plus nécessaires. On parle donc d’une poignée de comptes et autres par semaine.

Effet « 1 an »

Quelques heures plus tard, le résultat n’est plus du tout le même :

Started at Sat Jun 1 10:55:34 CEST 2024
Dry run mode
15 inactive accounts never used to purge
250 users to minimize
2616 accounts to minimize because inactive and not seen since 1 year
0 active accounts not seen since 3 years to inactivate and minimize
1412 users without comments/contents to purge
1412 accounts to purge
2285 logs to purge
1412 friendly_id_slugs to purge
6 taggings to purge
0 oauth_access_grants for an oauth_application to purge
0 oauth_access_tokens for an oauth_application to purge
0 oauth_applications to purge
15 oauth_access_grants to purge
47 oauth_access_tokens to purge
147 deleted comments to minimize
98 comments from non-public contents to purge
288 taggings from non-public contents to purge
0 wiki_versions from non-public wiki_pages to purge
0 slugs from non-public wiki_pages to purge
0 non-public wiki_pages to purge
0 slugs from non-public trackers to purge
0 non-public trackers to purge
166 slugs from non-public posts to purge
165 non-public posts to purge
10 poll_answers to from non-public polls to purge
2 slugs from non-public polls to purge
2 non-public polls to purge
46 slugs from non-public bookmarks to purge
46 non-public bookmarks to purge
27 slugs from non-public diaries to purge
0 diaries converted into non-public news to purge
27 non-public diaries to purge
139 news_versions from non-public news to purge
1278 paragraphs from non-public news to purge
33 links from non-public news to purge
66 slugs from non-public news to purge
61 non-public news to purge
301 non-public contents to purge

On a certes gagné 2 comptes jamais utilisés de plus à nettoyer, mais surtout on va minimiser plusieurs milliers de comptes et supprimer ou minimiser des centaines de contenus, commentaires et étiquetages. C’est le moment où la main ne doit pas trembler et où l’on doit avoir confiance dans le script de nettoyage et dans nos sauvegardes de la base de données, parce qu’il va falloir l’exécuter pour de vrai, et pas juste en mode « dry run » ou répétition, test à vide.

En pratique, quelques soucis très mineurs rencontrés sur la grosse transaction faite en base de données : un problème d’ordre de suppression et l’impossibilité de mettre une chaîne vide pour l’adresse de courriel, car il y a un index dessus qui demande l’unicité (une adresse .invalid propre à chaque compte sera donc utilisée).

Après l’exécution, si on relance le script, on se retrouve juste avec le nombre de comptes encore ouverts mais sans activité depuis un an :

Started at Sat Jun 1 13:30:16 CEST 2024
Dry run mode
0    inactive accounts never used to purge
0    users to minimize
905  accounts to minimize because inactive and not seen since 1 year
(…)

Ça change quoi ?

Regardons les statistiques des comptes avant et après le nettoyage « 1 an » (les évolutions ont été mises en visibilité avec un point rouge) :

Avant/après sur les statistiques des comptes

Interprétation : il s’agit des états des comptes par ordre d’identifiant en base de données (temporellement dans l’ordre de création), regroupés par paquets de 10 000 consécutifs. Quasiment pas de modification sur les comptes très anciens (il y en a beaucoup moins), et les changements se concentrent sur les comptes des dernières années. On a moins de comptes fermés après (on a pu en purger) et donc plus de comptes purgés (c’est-à-dire d’identifiants qui ne sont plus utilisés en base). Et le reste des changements correspond aux visites nominales du site.

On peut comparer les statistiques juste avant :

53667 utilisatrices et utilisateurs ayant ou ayant eu des comptes (et encore présents en base de données)
33216 comptes
2205 comptes utilisés sur le site au cours des trois derniers mois avec 20.2 jours de moyenne sans visite et 25.3 jours d’écart‑type
10 comptes en attente
2809 comptes fermés

Et les actuelles (au moment de la rédaction de cet article) :

51943 utilisatrices et utilisateurs ayant ou ayant eu des comptes (et encore présents en base de données)
31492 comptes
2208 comptes utilisés sur le site au cours des trois derniers mois avec 20.0 jours de moyenne sans visite et 25.3 jours d’écart‑type
1 compte en attente
1089 comptes fermés

Nous avons aussi réoptimisé les tables de la base de données (enfin on a dit à la base d’optimiser ce qu’elle pouvait avec un OPTIMIZE TABLE quoi). Ça devrait avoir entre une absence d’effet et un effet imperceptible sur les performances, a priori.

Et côté sauvegarde, on est passé d’un dump compressé gzip de 2 088 253 834 octets avant à 2 086 608 391 octets après, soit un gain faramineux de 0,08 %, bref rien.

Et après ?

Une fois « 1 an » passé, on aura chaque semaine les quelques comptes créés mais jamais utilisés à nettoyer, ainsi que les quelques contenus, commentaires et étiquetages associés non publics non nécessaires. Mais aussi les comptes qui auront atteint l’année d’inactivité dans la semaine courante (probablement une ou deux dizaines). Et ce jusqu’aux « 3 ans ».

À partir des « 3 ans », on va commencer à fermer des comptes et il y aura encore plus de données concernées chaque semaine.

Et ensuite on aura atteint le rythme nominal de fermeture de comptes et de minimisation de données associées.

Rendez-vous pour les « 3 ans » en juin 2026 donc.

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌