Ressource
1. Télécharger et lancer le projet
- Télécharger et importer le projet Maven dans Eclipse
Consigne
Un système de réservation de places pour un événement. Modèle simplifié :
- Event - id - capacity (ex: 100)
- Reservation - id - event_id - user_id
Règle métier : Le nombre de réservations pour un événement ne doit jamais dépasser sa capacité.
1. Exécuter le test
Il n’y a qu’une seule place de disponible, mais deux threads concurrents réservent la place.
- Executer le test
- Et vérifier qu’il échoue (2 places réservées au lieu d’une)
2. Quel est le bug concurrent présent dans ce code ?
- Dirty read ?
- Non-repeatable read ?
- Phantom read ?
- Lost update ?
Et pourquoi une transaction seule ne suffit-elle pas ici ?
4. Proposer des solutions
- Quelles sont les solutions possibles ?