რა არის Read Committed იზოლაციის დონე და როგორ უზრუნველყოფს ის მონაცემთა მთლიანობას ერთდროულ ტრანზაქციებში?
sobes.tech AI
პასუხი AI-სგან
Read Committed იზოლაციის დონემ უზრუნველყოფს, რომ ტრანზაქცია ხედავს მხოლოდ იმ მონაცემებს, რომლებიც სხვა ტრანზაქციებმა დაადასტურეს (commit). ეს თავიდან აცილებს "დამაბნეველ" მონაცემებს (dirty reads), როდესაც ერთი ტრანზაქცია კითხულობს მონაცემებს, რომლებიც შეიცვალა, მაგრამ ჯერ კიდევ არ არის დადასტურებული სხვა ტრანზაქციით.
როგორ მუშაობს:
- მონაცემების წაკითხვის დროს, ტრანზაქცია ხედავს მხოლოდ იმ ცვლილებებს, რომლებიც დადასტურებულია წაკითხვის დაწყებამდე.
- თუ სხვა ტრანზაქცია ჯერ ცვლილებებს არ დასრულებულა, ეს მონაცემები არ იქნება ჩანს.
ამ გზით, Read Committed უზრუნველყოფს მონაცემების მთლიანობას, თავიდან აცილებს შუამავლო, არდადასტურებულ ცვლილებებს. თუმცა, შეიძლება მოხდეს არაერთგზის წაკითხვის (non-repeatable reads) ფენომენი, როდესაც ერთ ტრანზაქციაში ერთიდაიგივე შეკითხვა შეიძლება გამოიტანოს სხვადასხვა მონაცემები, თუ სხვა ტრანზაქცია შეცვალა და დადასტურა მონაცემები შორის წაკითხვებს.
მაგალითი:
- A ტრანზაქცია კითხულობს ჩანაწერს.
- B ტრანზაქცია იცვლება და დადასტურებს ამ ჩანაწერს.
- თუ A ტრანზაქცია კვლავ კითხულობს, იხილავს განახლებულ მონაცემებს.
ეს ქცევა ნორმალურია Read Committed-ისთვის, რომელიც აძლიერებს შესრულებას და მთლიანობას შორის ბალანსს.