Sobes.tech
Junior — Middle

Ποιοι κίνδυνοι προκύπτουν όταν εκτελούνται ταυτόχρονα πολλά αιτήματα που τροποποιούν τα ίδια δεδομένα σε συνθήκες δύο συναλλαγών;

sobes.tech AI

Απάντηση από AI

Κατά την ταυτόχρονη εκτέλεση πολλαπλών ερωτημάτων που τροποποιούν τα ίδια δεδομένα σε διαφορετικές συναλλαγές, προκύπτουν οι ακόλουθοι κίνδυνοι:

  • Ανταγωνιστική κατάσταση (Race Condition): οι αλλαγές μιας συναλλαγής μπορούν να αντικαταστήσουν τις αλλαγές μιας άλλης, οδηγώντας σε απώλεια δεδομένων.

  • Παραβίαση της ακεραιότητας των δεδομένων: εάν οι συναλλαγές δεν είναι σωστά απομονωμένες, τα δεδομένα μπορεί να βρίσκονται σε μη συνεπή κατάσταση.

  • Φανταστικές αναγνώσεις: μια συναλλαγή βλέπει τροποποιημένες ή νέες γραμμές που προστέθηκαν από μια άλλη συναλλαγή.

  • Αποφάσεις θανάτου (Deadlocks): οι συναλλαγές μπορούν να μπλοκάρουν η μία την άλλη, περιμένοντας την απελευθέρωση πόρων.

  • Χαμένες ενημερώσεις (Lost Updates): όταν δύο ερωτήματα διαβάζουν τα ίδια δεδομένα και στη συνέχεια προσπαθούν να τα ενημερώσουν, οι αλλαγές μιας μπορεί να αντικατασταθούν από την άλλη.

Για την αποφυγή αυτών των προβλημάτων, χρησιμοποιούνται επίπεδα απομόνωσης συναλλαγών και μηχανισμοί κλειδώματος, όπως το SELECT FOR UPDATE ή αισιόδοξο κλείδωμα.