Ich würde ein einfaches Zeitstempelfeld in der Datenbank verwenden, um "gesperrt" anzuzeigen. Wenn jemand versucht, das Zimmer zu buchen, vergleicht die Software die aktuelle Zeit mit dem Zeitstempel, und wenn es> als 20 Minuten ist und die Zahlung nicht erfolgt ist, ist die Sperre ungültig.
Diese Methode ist wahrscheinlich ausreichend effizient. Ein Zeitstempel ist normalerweise 32-Bit und der Leistungseinbruch bei den Datenbankaufrufen mit Vergleich ist vernachlässigbar.