Sérialisabilité

Définition, exemples et bonnes pratiques

À retenir

  • C'est le niveau d'isolation le plus élevé en base de données (norme ACID).
  • Elle empêche les incohérences de données lors d'accès simultanés.
  • Elle donne l'illusion d'un traitement séquentiel (un par un) alors que tout se passe en parallèle.

La sérialisabilité est une propriété de sécurité qui garantit que le résultat de plusieurs opérations effectuées en même temps est identique à celui que l'on obtiendrait si on les exécutait l'une après l'autre. C'est comme si plusieurs personnes cuisinaient ensemble dans une cuisine étroite : même s'ils s'activent tous en même temps, le plat final doit être exactement le même que si chaque cuisinier avait attendu que le précédent termine sa recette.

Étymologie

Issu du mot « série » (du latin series, signifiant enchaînement) avec le suffixe « -abilité » qui exprime une capacité. En informatique, ce terme est né avec les premiers systèmes de gestion de bases de données pour désigner la capacité à ordonner des transactions complexes.

Exemples d'usage

  • Deux clients achètent simultanément le dernier billet d'avion : la sérialisabilité garantit qu'un seul réussira l'achat et que l'autre verra une erreur, évitant ainsi le surbooking.
  • Le transfert d'argent entre deux comptes bancaires pendant qu'un calcul d'intérêts est en cours.

Cas d'usage

On utilise ce concept principalement dans les systèmes de gestion de bases de données (SGBD) et les systèmes distribués. Il permet de gérer les accès concurrents aux données pour éviter les erreurs de calcul ou les pertes d'informations lorsque des milliers d'utilisateurs interagissent simultanément.

Bonnes pratiques

Pour garantir la sérialisabilité, il est conseillé d'utiliser des mécanismes de verrouillage (locks) ou des niveaux d'isolation élevés dans les bases de données. Attention toutefois : une sérialisabilité stricte peut ralentir le système, car elle oblige parfois certaines tâches à attendre.

Synonymes

isolabilité exécution séquentielle équivalente

Antonymes

concurrence non contrôlée incohérence transactionnelle

Conseil

Si vous débutez, retenez que la sérialisabilité est votre meilleur allié pour la fiabilité des données, mais votre pire ennemi pour la rapidité extrême. Apprenez à choisir le bon niveau d'isolation selon l'importance critique des données que vous manipulez.

Questions fréquentes

Est-ce que la sérialisabilité ralentit mon application ?

Oui, car pour garantir que tout est cohérent, le système doit parfois mettre des tâches en attente. C'est un compromis entre performance et sécurité absolue des données.

Est-ce la même chose que la sérialisation ?

Non. La sérialisation transforme un objet en texte ou en binaire. La sérialisabilité concerne l'ordre d'exécution des tâches.