Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է պессիմիստական բլոկավորումը և ինչու է այն տարբեր օպտիմիստականից?

sobes.tech AI

Պատասխան AI-ից

Պեսիմիստական փակումը տվյալների համաժամանակյա մուտքի կառավարման մոտեցում է, որի դեպքում ենթադրվում է, որ կոնֆլիկտները հաճախ տեղի կունենան: Այդ պատճառով, ռեսուրսի հետ աշխատելիս, անմիջապես տեղադրվում է փակագիծ, որպեսզի այլ գործողությունները չկարողանան այն փոխել մինչև ընթացիկ գործարքի ավարտը:

Օպտիմիստական փակումը, հակառակը, ենթադրում է, որ կոնֆլիկտները հազվադեպ են: Այն չի փակագծում ռեսուրսը ընթերցման ժամանակ, այլ նախքան գրառումը ստուգում է, արդյոք ռեսուրսը փոխվել է ընթերցումից հետո: Եթե փոփոխություններ կան, գործողությունը հետ է մղվում կամ կրկնվում:

Օրինակ՝ տվյալների բազայում, պեսիմիստական փակումը կարող է իրականացվել SQL հարցումների միջոցով, որոնք փակագծում են տողերը (SELECT ... FOR UPDATE), իսկ օպտիմիստականը՝ տարբերակային դաշտերով կամ ստուգման գումարներով։