This site is not complete. The work to converting the volumes of സര്വ്വവിജ്ഞാനകോശം is on progress. Please bear with us
Please contact webmastersiep@yahoo.com for any queries regarding this website.
Reading Problems? see Enabling Malayalam
ഡേറ്റാബേസ് കണ്കറന്സി കണ്ട്രോള്
സര്വ്വവിജ്ഞാനകോശം സംരംഭത്തില് നിന്ന്
(ഇടക്കുള്ള ഒരു പതിപ്പിലെ മാറ്റം ഇവിടെ കാണിക്കുന്നില്ല.) | |||
വരി 2: | വരി 2: | ||
Database concurrency control | Database concurrency control | ||
- | |||
- | + | ഡേറ്റാബേസില് ഒന്നിലധികം കാര്യക്രമങ്ങള് (transations) ഒരേ സമയം പ്രാവര്ത്തികമാക്കേണ്ടിവരുമ്പോള് ഡേറ്റാബേസിന്റെ സമഗ്രതയ്ക്ക് (integrity) ന്യൂനത വരാതിരിക്കാനും കാര്യക്രമം പരസ്പര വിരുദ്ധമാകാതിരിക്കാനുംവേണ്ടി സിസ്റ്റം പാലിക്കേണ്ട നടപടികള്. ലോക്കിങ് (locking), സീരിയലൈസബിലിറ്റി (serializability), ട്രാന്സാക്ഷനുകളുടെ പ്രാരംഭം രേഖപ്പെടുത്തുന്ന ടൈം സ്റ്റാംപിങ് (ശോല മാുെേശിഴ) രീതി, സിസ്റ്റത്തിലെ ട്രാന്സാക്ഷന് മാനേജറിലുള്ള റിക്കവറി സിസ്റ്റത്തിന്റെ (recovery system) പ്രവര്ത്തനം തുടങ്ങിയവയാണ് കണ്ട്രോള് സംവിധാനത്തിന്റെ മുഖ്യ ധര്മങ്ങള്. | |
- | + | പൊതുവേ ഏതു ട്രാന്സാക്ഷനും അറ്റൊമിസിറ്റി (atomicity), പൂര്വാപരബന്ധം (consistency), സ്ഥായിത്വം (durability), ഐസൊലേഷന് (isolation) എന്നീ നാലു സ്വഭാവഗുണങ്ങള് ഉണ്ടായിരിക്കും. ബാങ്കിങ് സംവിധാനത്തില്, ഒരു അക്കൗണ്ടില് നിന്ന് മറ്റൊന്നിലേക്ക് പണം മാറുമ്പോള് ചെയ്യേണ്ട നടപടിക്രമങ്ങള്, ട്രാന്സാക്ഷന് ഉദാഹരണമായി പറയാവുന്നതാണ്. ട്രാന്സാക്ഷനിലെ എല്ലാ നടപടികളും വിജയകരമായി പൂര്ത്തിയാക്കാന് സാധിച്ചില്ലെങ്കില് ട്രാന്സാക്ഷന് മൊത്തമായും നിരസിക്കപ്പെടുന്ന സ്വഭാവവിശേഷമാണ് അറ്റൊമിസിറ്റി; ട്രാന്സാക്ഷനിലെ ഏതാനും നടപടികള് മാത്രം പൂര്ത്തിയാവുകയും മറ്റുള്ളവ നടപ്പാക്കാതിരി ക്കുകയും ചെയ്യുന്ന ഒരവസ്ഥ ഒരിക്കലും സംജാതമാകാന് പാടില്ല. പൂര്വാപരബന്ധമുള്ള ഒരവസ്ഥയില് നിന്ന് ഡേറ്റാബേസിനെ താദൃശമായ മറ്റൊരവസ്ഥയിലേക്കു നയിക്കുന്നവയാകണം ട്രാന്സാക്ഷനുകള് എന്നതാണ് പൂര്വാപരബന്ധം കൊണ്ട് ഉദ്ദേശിക്കുന്നത്. ട്രാന്സാക്ഷനിലെ പ്രോഗ്രാം നടപടിക്രമങ്ങള് മുറയ്ക്കു പാലിക്കപ്പെടുമ്പോഴും സിസ്റ്റത്തിന്റെ സമഗ്രത കാത്തുസൂക്ഷിക്കാന് ഈ സംവിധാനം പ്രയോജനപ്പെടുന്നു. ഒരിക്കല് ഒരു ട്രാന്സാക്ഷന് നടപ്പിലാക്കിക്കഴിഞ്ഞാല് അതിന്റെ ഫലങ്ങള് ഡേറ്റാബേസില് എപ്പോഴും ദര്ശിക്കാനാകുന്നതാണ് സ്ഥായിത്വം. ഒന്നില് കൂടുതല് ട്രാന്സാക്ഷനുകള് അനുക്രമണനത്തിലൂടെ ഒരേസമയം പ്രാവര്ത്തികമാക്കുമ്പോഴും ഡേറ്റാബേസിന്റെ പൂര്വാപരബന്ധം നിലനിറുത്താന് സഹായിക്കുന്നതാണ് ഐസൊലേഷന് സംവിധാനം. അതായത് ഒരു ട്രാന്സാക്ഷന് ആരംഭിച്ചു കഴിഞ്ഞാല് അതിലെ നടപടിക്രമങ്ങള് പൂര്ത്തിയാക്കുന്നതോടെ സിസ്റ്റം പുതിയ ഒരവസ്ഥയെ പ്രാപിക്കുന്നു. നടപടി ക്രമങ്ങള് പൂര്ണമാകാതെ വന്നാല്, പ്രസക്ത ട്രാന്സാക്ഷനും അതിനോടു ബന്ധപ്പെട്ട മറ്റു ട്രാന്സാക്ഷനുകളും റദ്ദു ചെയ്യപ്പെടുകയും, സിസ്റ്റം ട്രാന്സാക്ഷന് തുടങ്ങുന്നതിനു മുന്പിലത്തെ അവസ്ഥയിലേക്കു മടങ്ങിവരികയും ചെയ്യും. ഒരു ട്രാന്സാക്ഷന് തുടങ്ങുന്നതിനു മുമ്പുള്ളതും അതിനുശേഷമുള്ളതുമായ രണ്ട് അവസ്ഥകളെ മാത്രമേ സിസ്റ്റം സ്വീകരിക്കാവൂ; മധ്യവര്ത്തിയായ ഒരവസ്ഥ സിസ്റ്റം കൈക്കൊള്ളാന് പാടില്ല എന്നതാണ് ഐസൊലേഷന് കൊണ്ട് ഉദ്ദേശിക്കുന്നത്. | |
- | + | '''I. ലോക്കിങ്.''' ഡേറ്റാബേസ് സിസ്റ്റത്തിലെ വിഭവശേഷിയെ (resources) ഏതാനും സമയത്തേക്ക് ഒരു നിശ്ചിത ട്രാന്സാക്ഷനോ ഒരുകൂട്ടം ട്രാന്സാക്ഷനുകള്ക്കോ വേണ്ടി മാത്രം ലഭ്യമാക്കുവാന് ഉതകുന്ന സംവിധാനം. ലോക്കിങ് രണ്ടു വിധത്തിലാകാം: പരിപൂര്ണം (exclusive), ഷെയേഡ് (shared). | |
- | + | ലോക്ക് ചെയ്യപ്പെട്ട വിഭവശേഷിയെ പ്രത്യേക ട്രാന്സാക്ഷന്റെ ആവശ്യത്തിനായി മാത്രം സംവരണം ചെയ്യുന്ന ഏര്പ്പാടാണ് പരിപൂര്ണ ലോക്കിങ്. ഉദാഹരണമായി ഒരു ഫയലിലെ റെക്കാഡു കളിലെ ഡേറ്റയെ ഒരു ട്രാന്സാക്ഷന് വഴി പുതുക്കുകയാണെന്നു കരുതുക. ഈ പ്രക്രിയ നടക്കുമ്പോള് പ്രസക്ത റെക്കാഡിലെ ഡേറ്റ മറ്റൊരു ട്രാന്സാക്ഷനു വിധേയമാക്കരുത്; മറിച്ച് പ്രക്രിയ പൂര്ത്തിയാകുന്നതുവരെ ആദ്യത്തെ ട്രാന്സാക്ഷനു മാത്രം കൈകാര്യം ചെയ്യാവുന്ന അവസ്ഥ നിലനിറുത്തുന്നു. ഇതിനുള്ള സംവിധാനമാണ് പരിപൂര്ണ ലോക്കിങ്. പുതുക്കിയെഴുതുന്നതോടൊപ്പം ട്രാന്സാക്ഷന് പ്രസക്ത റെക്കാഡിന് പരിപൂര്ണ ലോക്കിങ് ഏര്പ്പെടുത്തുന്നു. തുടര്ന്ന് ലോക്കിങ്ങിനു വിധേയമാക്കപ്പെട്ട വിഭവശേഷിയെ പ്രസ്തുത ലോക്ക് നീക്കപ്പെടുന്നതുവരെ മറ്റു ട്രാന്സാക്ഷനുകള്ക്ക് ഉപയോഗപ്പെടുത്താനുമാവില്ല. | |
- | + | ഒരേ വിഭവശേഷിയെത്തന്നെ ഒന്നിലേറെ ട്രാന്സാക്ഷനു കള്ക്കു ലഭ്യമാക്കുന്ന രീതിയാണ് ഷെയേഡ് ലോക്കിങ്. ഉദാഹര ണമായി ഒരു റെക്കാഡിലെ വിവരങ്ങളെ ഒരു ട്രാന്സാക്ഷന് വായിക്കുമ്പോള്ത്തന്നെ മറ്റൊരു കൂട്ടം ട്രാന്സാക്ഷനുകള്ക്കും കൂടി പ്രസ്തുത റെക്കാഡിലെ വിവരങ്ങള് വായിക്കണമെന്നു കരുതുക. ഇത്തരം സന്ദര്ഭങ്ങളില് പ്രസക്ത റെക്കാഡിനെ എല്ലാ ട്രാന്സാക്ഷനുകള്ക്കും തുല്യമായും സ്വതന്ത്രമായും കൈകാര്യം ചെയ്യാവുന്ന സംവിധാനമാണ് ഷെയേഡ് ലോക്കിങ്. ലോക്ക് ചെയ്യപ്പെടാത്തതോ ഷെയേഡ് രീതിയില് ലോക്ക് ചെയ്യപ്പെട്ടതോ ആയ വിഭവശേഷിയെ മാത്രമേ ഷെയേഡ് ലോക്കിങ്ങിനു വിധേയമാക്കാനാകൂ. ഇക്കാരണത്താല് ഷെയേഡ് രീതിയില് ലോക്ക് ചെയ്യപ്പെട്ട വിഭവശേഷി, ആവശ്യമെങ്കില്, ഇതര ട്രാന്സാക്ഷനുകള്ക്കും ഉപയോഗിക്കാന് കഴിയുന്നു. | |
- | + | '''1. ദ്വിഘട്ട-ലോക്കിങ് (two-phase locking).''' പൊതുവേ ലോക്കിങ് രണ്ട് ഘട്ടങ്ങളിലായിട്ടാണ് പ്രാവര്ത്തികമാകുന്നത്; ദ്വിഘട്ട-ലോക്കിങ് എന്നാണിതറിയപ്പെടുന്നത്. ട്രാന്സാക്ഷനുകള് തനതാവശ്യത്തിനുള്ള വിഭവശേഷി നിശ്ചിത ക്രമം പാലിച്ച് സ്വായത്തമാക്കുന്നതാണ് ആദ്യ ഘട്ടം. ഈദൃശ ലോക്കിങ്ങിനു ശേഷം ട്രാന്സാക്ഷനുകള് അവയിലെ നടപടിക്രമങ്ങള് പൂര്ത്തിയാക്കുന്നു. ആവശ്യം കഴിയുന്ന മുറയ്ക്ക് വിഭവശേഷിയിന്മേലുള്ള ലോക്കിങ് നീക്കം ചെയ്യുന്ന പ്രക്രിയയാണ് രണ്ടാം ഘട്ട ലോക്കിങ്. ട്രാന്സാക്ഷനുകളുടെ അനുക്രമണനം നടപ്പിലാക്കാന് ദ്വിഘട്ട-ലോക്കിങ് ഉപകരിക്കുന്നു. എന്നാല് ഇതിലൂടെ ഐസൊലേഷന് ഉറപ്പാക്കാനാവില്ല. നടപടിക്രമങ്ങള് പൂര്ണമാകുന്നതുവരെ ട്രാന്സാക്ഷനുകള് അവയുടെ പരിപൂര്ണ ലോക്കുകള് നീക്കം ചെയ്യാത്ത അവസ്ഥയില് മാത്രമേ ഐസൊലേഷന് ഉറപ്പാക്കാന് കഴിയൂ. | |
- | + | '''സ്തംഭനാവസ്ഥ (deadlock).''' ഒരു സിസ്റ്റത്തിലെ ഏതെങ്കിലും ഡേറ്റാ ശേഖരത്തില് ഒന്നിലേറെ ട്രാന്സാക്ഷനുകള് വ്യത്യസ്ത ക്രമത്തില് ലോക്കിങ് നടത്തുമ്പോള് സംജാതമാകാവുന്ന സ്ഥിതിവിശേഷമാണ് സ്തംഭനാവസ്ഥ. ദ്വിഘട്ട-ലോക്കിങ് പലപ്പോഴും ഇത്തരമൊരവസ്ഥ സൃഷ്ടിക്കാറുണ്ട്. ഉദാഹരണത്തിന് p, Q എന്നീ ഡേറ്റാ ശേഖരങ്ങളെ യഥാക്രമം A, B എന്നീ ട്രാന്സാക്ഷനുകള് പ്രത്യേകം പ്രത്യേകമായി പരിപൂര്ണ ലോക്ക് ചെയ്തിരിക്കുന്ന അവസ്ഥയില് A, Q-വില് നിന്നോ B,P-യില് നിന്നോ ഡേറ്റാ ആവശ്യപ്പെട്ടെന്നു കരുതുക. പ്രത്യേകമായി പരിപൂര്ണ ലോക്ക് ചെയ്യപ്പെട്ടതിനാല് Q,A യ്ക്കും P,B യ്ക്കും അപ്രാപ്യങ്ങളാണ്. എന്നാല് ആവശ്യപ്പെട്ട വിവരം ലഭിക്കുമെന്ന പ്രതീക്ഷയില് A യും B യും അനന്തമായി കാത്തിരിക്കുകയും ചെയ്യും; ഇത് സ്തംഭനാവസ്ഥ സൃഷ്ടിക്കുന്നു. | |
- | + | ഈ അവസ്ഥ പല രീതിയിലും ഒഴിവാക്കാനാകും. സ്തംഭനാവസ്ഥയ്ക്കു കാരണമായ ഒന്നോ അതിലധികമോ ട്രാന്സാക്ഷനുകളെ റദ്ദ് (abort) ചെയ്യുകയാണ് ഒരു പോംവഴി. എന്നാല് ഇത്തര ത്തില് റദ്ദു ചെയ്യുമ്പോഴും വിവിധ മാര്ഗനിര്ദേശങ്ങള് പാലിക്ക പ്പെടാറുണ്ട്. ഉദാഹരണമായി ട്രാന്സാക്ഷനുകള് എത്ര സമയമായി പ്രവര്ത്തിച്ചു കൊണ്ടിരിക്കുന്നു, സ്തംഭനാവസ്ഥ സംജാതമാകും മുമ്പ് ട്രാന്സാക്ഷനുകള് എത്രമാത്രം ജോലികള് പൂര്ത്തിയാക്കി എന്നീ കാര്യങ്ങള് കൂടി കണക്കിലെടുത്ത ശേഷമേ റദ്ദാക്കല് നടപ്പാക്കാറുള്ളൂ. സ്തംഭനാവസ്ഥ സൃഷ്ടിക്കാത്ത രീതിയില് ട്രാന് സാക്ഷനുകള്ക്ക് അനുക്രമണനം നല്കുന്നതാണ് മറ്റൊരു മാര്ഗം. ലോക്കുകള് നിലനിറുത്തേണ്ട സമയ ദൈര്ഘ്യം മുന്കൂട്ടി ക്രമപ്പെടുത്തി, അനുവദിക്കപ്പെട്ടതിലേറെ സമയം എടുക്കുന്ന ട്രാന്സാക്ഷനുകളെ, അവ സ്തംഭിതമാണ് എന്ന നിഗമനത്തില്, റദ്ദു ചെയ്ത് ലോക്ക് നീക്കുന്നതാണ് മൂന്നാമത്തെ രീതി. | |
- | + | '''2. വിതരിത ദ്വിഘട്ട-ലോക്കിങ് (distributed two-phase locking).''' മറ്റൊരു തരം ലോക്കിങ് സംവിധാനമാണ് വിതരിത ദ്വിഘട്ട-ലോക്കിങ്. കേന്ദ്രീകൃതമോ വിതരിതമോ (distributed) ആയ ഡേറ്റാബേസുകളില് ഇവ പ്രാവര്ത്തികമാക്കാം. വിതരിത ഡേറ്റാ ബേസില് ഒരു ഫയലിന്റെ പകര്പ്പുകള് ഒന്നിലേറെ കേന്ദ്രങ്ങളില് (sites) സൂക്ഷിക്കപ്പെടാറുണ്ട്. ഇവയില് ഒരു പകര്പ്പില് വരുത്തുന്ന മാറ്റങ്ങള് മറ്റു പകര്പ്പുകളില് യഥാതഥമായി പ്രതിഫലിച്ചെങ്കില് മാത്രമേ ഡേറ്റാബേസിന്റെ സമഗ്രത ഉറപ്പാക്കാനാവൂ; തന്മൂലം എല്ലാ പകര്പ്പുകളേയും ഒരേ സമയം റൈറ്റ്-ലോക്കിങ്ങിന് (write locking) വിധേയമാക്കുന്നു. പക്ഷേ, ഈ സംവിധാനം വളരെ ചെലവേറിയതാണ്. ഡേറ്റാബേസിലെ ഒരു പകര്പ്പിനെ 'മാസ്റ്റര് കോപ്പി' ആയി നിര്വചിച്ച് അതിനെ മാത്രം ലോക്കിങ്ങിനു വിധേയമാക്കുന്നതാണ് ചെലവു കുറഞ്ഞ മാര്ഗം. | |
- | + | '''II. സീരിയലൈസബിലിറ്റി.''' ഒന്നിലേറെ ട്രാന്സാക്ഷനു കള് ഉള്ളപ്പോള് അവ നടപ്പാക്കാനുള്ള ഒരു ക്രമം നിര്വചിക്കുന്ന താണ് സീരിയലൈസബിലിറ്റി. ഇതിന്റെ അടിസ്ഥാനത്തിലാകും പിന്നീട് ട്രാന്സാക്ഷനുകള് പ്രാവര്ത്തികമാക്കപ്പെടുക. ഉദാഹരണമായി ഡേറ്റാബേസിലെ ഏതെങ്കിലും ഒരു ഫയലിലെ ഒരു റെക്കാഡില് ഉള്ള വിവരങ്ങള് സിസ്റ്റത്തിന്റെ ബഫറിലേക്കു പകര്ത്തുന്നതാണ് ട്രാന്സാക്ഷന് K യുടെ ചുമതല എന്നും ബഫറില് നിന്ന് ആ വിവരം വായിക്കുന്ന ജോലി ട്രാന്സാക്ഷന് P യുടേതാണെന്നും കരുതുക. സീരിയലൈസബിലിറ്റി നടപ്പിലായിട്ടുണ്ടെങ്കില് ട്രാന്സാക്ഷന് P, ബഫര് വായിക്കുമ്പോള്, രണ്ട് അവസ്ഥകള് മാത്രമേ ഉണ്ടാകാവൂ. ഒന്നുകില് അവിടെ റെക്കാഡിലെ പൂര്ണ വിവരം കാണണം; അല്ലെങ്കില് ബഫര് ശൂന്യമായിരിക്കണം.K യ്ക്കു ശേഷം P എന്ന നടപടിക്രമമാണ് ആദ്യത്തെ അവസ്ഥയ്ക്ക് ആധാരമെങ്കില് P യ്ക്കു ശേഷം K എന്ന രീതിയാണ് രണ്ടാമത്തേതിനു നിദാനം. | |
- | + | '''III. ടൈം സ്റ്റാംപ് സംവിധാനം.''' ഇതില് ട്രാന്സാക്ഷനു കളെ അനുക്രമീകരിക്കുന്നത് താഴെപ്പറയും പ്രകാരമാണ്. ഓരോ ട്രാന്സാക്ഷനും നടപ്പിലാക്കിത്തുടങ്ങുമ്പോള് അത് ആരംഭിച്ച സമയത്തെ സംബന്ധിച്ച വിവരം കൂടി അതില് ഉള്പ്പെടുത്തുന്നു. ഇനി ഒരു ട്രാന്സാക്ഷന് അത് തുടങ്ങും മുമ്പ് പ്രാവര്ത്തികമായ മറ്റൊരു ട്രാന്സാക്ഷന് പുതുക്കിക്കഴിഞ്ഞ ഒരു ഡേറ്റയെ, സ്വയം പുതുക്കാനോ വായിക്കാനോ ശ്രമിക്കുന്നു എന്നു കരുതുക; അങ്ങനെ വരുമ്പോള് ആദ്യത്തെ ട്രാന്സാക്ഷനെ സിസ്റ്റം തന്നെ റദ്ദു ചെയ്യുന്നു. ഈ അനുക്രമണ രീതിയില് ഒരു ലോക്കും സിസ്റ്റം ഉപയോഗപ്പെടുത്താറില്ല. തന്മൂലം സിസ്റ്റത്തില് സ്തംഭനാവസ്ഥ സംജാതമാകാന് ഈ രീതി ഒരിക്കലും കാരണമാകാറുമില്ല. ഇതു തന്നെയാണ് ഈ സംവിധാനത്തിന്റെ ഗുണമേന്മ. | |
- | + | '''IV. റിക്കവറി സംവിധാനം.''' അറ്റൊമിസിറ്റി, സ്ഥായിത്വം എന്നിവ ഉറപ്പാക്കാന് ട്രാന്സാക്ഷന് മാനേജറിലെ റിക്കവറി (വീണ്ടെടുക്കല്) സംവിധാനത്തിനു കഴിയും. ഇതിനായി സിസ്റ്റത്തില് ലോഗിങ് (logging) പ്രയോജനപ്പെടുത്തുന്നു. സിസ്റ്റം അതിന്റെ ഡേറ്റാബേസിലെ വിവരങ്ങള് പുതുക്കുമ്പോള്, പ്രസ്തുത സമയത്തു നടക്കുന്ന നടപടികളെ സംബന്ധിച്ചുള്ള പൂര്ണ വിവരങ്ങള് രേഖപ്പെടുത്തിവയ്ക്കുന്ന പ്രക്രിയയാണ് ലോഗിങ്. ഏതെല്ലാം ട്രാന്സാക്ഷനുകള് ഏത് ക്രമത്തില് പ്രാവര്ത്തികമാക്കപ്പെട്ടു എന്നിവ ലോഗ് ചാര്ട്ടില് നിന്നു മനസ്സിലാക്കുവാന് സാധിക്കും. ഡേറ്റാ പുതുക്കുന്ന പ്രക്രിയ വിജയകരമായി പൂര്ത്തിയാക്കാനായില്ലെങ്കില് ലോഗ് ചാര്ട്ടില് നോക്കി പൂര്ണവും അപൂര്ണവുമായ ട്രാന്സാക്ഷനുകള് ഏതൊക്കെയാണെന്നു കണ്ടെത്തി അനുയോജ്യ നടപടി സ്വീകരിച്ച് ഡേറ്റാബേസിന്റെ സമഗ്രത വീണ്ടെടുക്കാവുന്നതാണ്. ഇതിനു ശേഷം ഡേറ്റാബേസില് ഇതര ട്രാന്സാക്ഷനുകള് പ്രാവര്ത്തികമാക്കാന് സാധിക്കും. | |
- | ചെക്ക്പോയിന്റ് സംവിധാനവും ഇതിനായി പ്രയോജനപ്പെടു ത്താം. ഒരു പ്രോഗ്രാം താത്ക്കാലികമായി നിറുത്തപ്പെടുമ്പോള് പ്രോഗ്രാമിന്റെ തത്സമയത്തെ സംബന്ധിച്ച പൂര്ണ വിവരങ്ങളും - ഉദാഹരണമായി രജിസ്റ്ററുകളുടെ ഉള്ളടക്കം, പ്രോഗ്രാം നിര്ദേശ ങ്ങള് ഉള്ള സ്ഥാനങ്ങളുടെ അഡ്രസ്സ്, ഇന്പുട്ട്/ഔട്ട്പുട്ട് | + | ചെക്ക്പോയിന്റ് സംവിധാനവും ഇതിനായി പ്രയോജനപ്പെടു ത്താം. ഒരു പ്രോഗ്രാം താത്ക്കാലികമായി നിറുത്തപ്പെടുമ്പോള് പ്രോഗ്രാമിന്റെ തത്സമയത്തെ സംബന്ധിച്ച പൂര്ണ വിവരങ്ങളും - ഉദാഹരണമായി രജിസ്റ്ററുകളുടെ ഉള്ളടക്കം, പ്രോഗ്രാം നിര്ദേശ ങ്ങള് ഉള്ള സ്ഥാനങ്ങളുടെ അഡ്രസ്സ്, ഇന്പുട്ട്/ഔട്ട്പുട്ട് ഉപകരണങ്ങളുടെ അവസ്ഥ മുതലായ വിവരങ്ങള് - സിസ്റ്റത്തില് സംഭരിച്ചു വയ്ക്കപ്പെടാറുണ്ട്. പിന്നീട് പ്രസ്തുത പ്രോഗ്രാം, പ്രോസസിങ് പുനരാരംഭിക്കേണ്ട സന്ദര്ഭത്തില്, ഒരു 'റീസ്റ്റാര്ട്ട് റുട്ടീന്' വഴി ചെക്ക്പോയിന്റ് വിവരങ്ങള് വീണ്ടെടുക്കുകയും ചെയ്യുന്നു. |
ഇത്തരത്തില് ഒരു ഡേറ്റാബേസിന്റെ സമഗ്രത കാത്തു സൂക്ഷിക്കാന് ഉപയോഗപ്പെടുന്നവയാണ് കണ്കറന്സി കണ്ട്രോള് നടപടിക്രമങ്ങള്. വിതരിത ഡേറ്റാബേസുകളില് ഈ നിയന്ത്രണ രീതികള്ക്ക് കൂടുതല് പ്രാധാന്യം നല്കാറുണ്ട്. | ഇത്തരത്തില് ഒരു ഡേറ്റാബേസിന്റെ സമഗ്രത കാത്തു സൂക്ഷിക്കാന് ഉപയോഗപ്പെടുന്നവയാണ് കണ്കറന്സി കണ്ട്രോള് നടപടിക്രമങ്ങള്. വിതരിത ഡേറ്റാബേസുകളില് ഈ നിയന്ത്രണ രീതികള്ക്ക് കൂടുതല് പ്രാധാന്യം നല്കാറുണ്ട്. |
Current revision as of 11:37, 9 ജൂണ് 2008
ഡേറ്റാബേസ് കണ്കറന്സി കണ്ട്രോള്
Database concurrency control
ഡേറ്റാബേസില് ഒന്നിലധികം കാര്യക്രമങ്ങള് (transations) ഒരേ സമയം പ്രാവര്ത്തികമാക്കേണ്ടിവരുമ്പോള് ഡേറ്റാബേസിന്റെ സമഗ്രതയ്ക്ക് (integrity) ന്യൂനത വരാതിരിക്കാനും കാര്യക്രമം പരസ്പര വിരുദ്ധമാകാതിരിക്കാനുംവേണ്ടി സിസ്റ്റം പാലിക്കേണ്ട നടപടികള്. ലോക്കിങ് (locking), സീരിയലൈസബിലിറ്റി (serializability), ട്രാന്സാക്ഷനുകളുടെ പ്രാരംഭം രേഖപ്പെടുത്തുന്ന ടൈം സ്റ്റാംപിങ് (ശോല മാുെേശിഴ) രീതി, സിസ്റ്റത്തിലെ ട്രാന്സാക്ഷന് മാനേജറിലുള്ള റിക്കവറി സിസ്റ്റത്തിന്റെ (recovery system) പ്രവര്ത്തനം തുടങ്ങിയവയാണ് കണ്ട്രോള് സംവിധാനത്തിന്റെ മുഖ്യ ധര്മങ്ങള്.
പൊതുവേ ഏതു ട്രാന്സാക്ഷനും അറ്റൊമിസിറ്റി (atomicity), പൂര്വാപരബന്ധം (consistency), സ്ഥായിത്വം (durability), ഐസൊലേഷന് (isolation) എന്നീ നാലു സ്വഭാവഗുണങ്ങള് ഉണ്ടായിരിക്കും. ബാങ്കിങ് സംവിധാനത്തില്, ഒരു അക്കൗണ്ടില് നിന്ന് മറ്റൊന്നിലേക്ക് പണം മാറുമ്പോള് ചെയ്യേണ്ട നടപടിക്രമങ്ങള്, ട്രാന്സാക്ഷന് ഉദാഹരണമായി പറയാവുന്നതാണ്. ട്രാന്സാക്ഷനിലെ എല്ലാ നടപടികളും വിജയകരമായി പൂര്ത്തിയാക്കാന് സാധിച്ചില്ലെങ്കില് ട്രാന്സാക്ഷന് മൊത്തമായും നിരസിക്കപ്പെടുന്ന സ്വഭാവവിശേഷമാണ് അറ്റൊമിസിറ്റി; ട്രാന്സാക്ഷനിലെ ഏതാനും നടപടികള് മാത്രം പൂര്ത്തിയാവുകയും മറ്റുള്ളവ നടപ്പാക്കാതിരി ക്കുകയും ചെയ്യുന്ന ഒരവസ്ഥ ഒരിക്കലും സംജാതമാകാന് പാടില്ല. പൂര്വാപരബന്ധമുള്ള ഒരവസ്ഥയില് നിന്ന് ഡേറ്റാബേസിനെ താദൃശമായ മറ്റൊരവസ്ഥയിലേക്കു നയിക്കുന്നവയാകണം ട്രാന്സാക്ഷനുകള് എന്നതാണ് പൂര്വാപരബന്ധം കൊണ്ട് ഉദ്ദേശിക്കുന്നത്. ട്രാന്സാക്ഷനിലെ പ്രോഗ്രാം നടപടിക്രമങ്ങള് മുറയ്ക്കു പാലിക്കപ്പെടുമ്പോഴും സിസ്റ്റത്തിന്റെ സമഗ്രത കാത്തുസൂക്ഷിക്കാന് ഈ സംവിധാനം പ്രയോജനപ്പെടുന്നു. ഒരിക്കല് ഒരു ട്രാന്സാക്ഷന് നടപ്പിലാക്കിക്കഴിഞ്ഞാല് അതിന്റെ ഫലങ്ങള് ഡേറ്റാബേസില് എപ്പോഴും ദര്ശിക്കാനാകുന്നതാണ് സ്ഥായിത്വം. ഒന്നില് കൂടുതല് ട്രാന്സാക്ഷനുകള് അനുക്രമണനത്തിലൂടെ ഒരേസമയം പ്രാവര്ത്തികമാക്കുമ്പോഴും ഡേറ്റാബേസിന്റെ പൂര്വാപരബന്ധം നിലനിറുത്താന് സഹായിക്കുന്നതാണ് ഐസൊലേഷന് സംവിധാനം. അതായത് ഒരു ട്രാന്സാക്ഷന് ആരംഭിച്ചു കഴിഞ്ഞാല് അതിലെ നടപടിക്രമങ്ങള് പൂര്ത്തിയാക്കുന്നതോടെ സിസ്റ്റം പുതിയ ഒരവസ്ഥയെ പ്രാപിക്കുന്നു. നടപടി ക്രമങ്ങള് പൂര്ണമാകാതെ വന്നാല്, പ്രസക്ത ട്രാന്സാക്ഷനും അതിനോടു ബന്ധപ്പെട്ട മറ്റു ട്രാന്സാക്ഷനുകളും റദ്ദു ചെയ്യപ്പെടുകയും, സിസ്റ്റം ട്രാന്സാക്ഷന് തുടങ്ങുന്നതിനു മുന്പിലത്തെ അവസ്ഥയിലേക്കു മടങ്ങിവരികയും ചെയ്യും. ഒരു ട്രാന്സാക്ഷന് തുടങ്ങുന്നതിനു മുമ്പുള്ളതും അതിനുശേഷമുള്ളതുമായ രണ്ട് അവസ്ഥകളെ മാത്രമേ സിസ്റ്റം സ്വീകരിക്കാവൂ; മധ്യവര്ത്തിയായ ഒരവസ്ഥ സിസ്റ്റം കൈക്കൊള്ളാന് പാടില്ല എന്നതാണ് ഐസൊലേഷന് കൊണ്ട് ഉദ്ദേശിക്കുന്നത്.
I. ലോക്കിങ്. ഡേറ്റാബേസ് സിസ്റ്റത്തിലെ വിഭവശേഷിയെ (resources) ഏതാനും സമയത്തേക്ക് ഒരു നിശ്ചിത ട്രാന്സാക്ഷനോ ഒരുകൂട്ടം ട്രാന്സാക്ഷനുകള്ക്കോ വേണ്ടി മാത്രം ലഭ്യമാക്കുവാന് ഉതകുന്ന സംവിധാനം. ലോക്കിങ് രണ്ടു വിധത്തിലാകാം: പരിപൂര്ണം (exclusive), ഷെയേഡ് (shared).
ലോക്ക് ചെയ്യപ്പെട്ട വിഭവശേഷിയെ പ്രത്യേക ട്രാന്സാക്ഷന്റെ ആവശ്യത്തിനായി മാത്രം സംവരണം ചെയ്യുന്ന ഏര്പ്പാടാണ് പരിപൂര്ണ ലോക്കിങ്. ഉദാഹരണമായി ഒരു ഫയലിലെ റെക്കാഡു കളിലെ ഡേറ്റയെ ഒരു ട്രാന്സാക്ഷന് വഴി പുതുക്കുകയാണെന്നു കരുതുക. ഈ പ്രക്രിയ നടക്കുമ്പോള് പ്രസക്ത റെക്കാഡിലെ ഡേറ്റ മറ്റൊരു ട്രാന്സാക്ഷനു വിധേയമാക്കരുത്; മറിച്ച് പ്രക്രിയ പൂര്ത്തിയാകുന്നതുവരെ ആദ്യത്തെ ട്രാന്സാക്ഷനു മാത്രം കൈകാര്യം ചെയ്യാവുന്ന അവസ്ഥ നിലനിറുത്തുന്നു. ഇതിനുള്ള സംവിധാനമാണ് പരിപൂര്ണ ലോക്കിങ്. പുതുക്കിയെഴുതുന്നതോടൊപ്പം ട്രാന്സാക്ഷന് പ്രസക്ത റെക്കാഡിന് പരിപൂര്ണ ലോക്കിങ് ഏര്പ്പെടുത്തുന്നു. തുടര്ന്ന് ലോക്കിങ്ങിനു വിധേയമാക്കപ്പെട്ട വിഭവശേഷിയെ പ്രസ്തുത ലോക്ക് നീക്കപ്പെടുന്നതുവരെ മറ്റു ട്രാന്സാക്ഷനുകള്ക്ക് ഉപയോഗപ്പെടുത്താനുമാവില്ല.
ഒരേ വിഭവശേഷിയെത്തന്നെ ഒന്നിലേറെ ട്രാന്സാക്ഷനു കള്ക്കു ലഭ്യമാക്കുന്ന രീതിയാണ് ഷെയേഡ് ലോക്കിങ്. ഉദാഹര ണമായി ഒരു റെക്കാഡിലെ വിവരങ്ങളെ ഒരു ട്രാന്സാക്ഷന് വായിക്കുമ്പോള്ത്തന്നെ മറ്റൊരു കൂട്ടം ട്രാന്സാക്ഷനുകള്ക്കും കൂടി പ്രസ്തുത റെക്കാഡിലെ വിവരങ്ങള് വായിക്കണമെന്നു കരുതുക. ഇത്തരം സന്ദര്ഭങ്ങളില് പ്രസക്ത റെക്കാഡിനെ എല്ലാ ട്രാന്സാക്ഷനുകള്ക്കും തുല്യമായും സ്വതന്ത്രമായും കൈകാര്യം ചെയ്യാവുന്ന സംവിധാനമാണ് ഷെയേഡ് ലോക്കിങ്. ലോക്ക് ചെയ്യപ്പെടാത്തതോ ഷെയേഡ് രീതിയില് ലോക്ക് ചെയ്യപ്പെട്ടതോ ആയ വിഭവശേഷിയെ മാത്രമേ ഷെയേഡ് ലോക്കിങ്ങിനു വിധേയമാക്കാനാകൂ. ഇക്കാരണത്താല് ഷെയേഡ് രീതിയില് ലോക്ക് ചെയ്യപ്പെട്ട വിഭവശേഷി, ആവശ്യമെങ്കില്, ഇതര ട്രാന്സാക്ഷനുകള്ക്കും ഉപയോഗിക്കാന് കഴിയുന്നു.
1. ദ്വിഘട്ട-ലോക്കിങ് (two-phase locking). പൊതുവേ ലോക്കിങ് രണ്ട് ഘട്ടങ്ങളിലായിട്ടാണ് പ്രാവര്ത്തികമാകുന്നത്; ദ്വിഘട്ട-ലോക്കിങ് എന്നാണിതറിയപ്പെടുന്നത്. ട്രാന്സാക്ഷനുകള് തനതാവശ്യത്തിനുള്ള വിഭവശേഷി നിശ്ചിത ക്രമം പാലിച്ച് സ്വായത്തമാക്കുന്നതാണ് ആദ്യ ഘട്ടം. ഈദൃശ ലോക്കിങ്ങിനു ശേഷം ട്രാന്സാക്ഷനുകള് അവയിലെ നടപടിക്രമങ്ങള് പൂര്ത്തിയാക്കുന്നു. ആവശ്യം കഴിയുന്ന മുറയ്ക്ക് വിഭവശേഷിയിന്മേലുള്ള ലോക്കിങ് നീക്കം ചെയ്യുന്ന പ്രക്രിയയാണ് രണ്ടാം ഘട്ട ലോക്കിങ്. ട്രാന്സാക്ഷനുകളുടെ അനുക്രമണനം നടപ്പിലാക്കാന് ദ്വിഘട്ട-ലോക്കിങ് ഉപകരിക്കുന്നു. എന്നാല് ഇതിലൂടെ ഐസൊലേഷന് ഉറപ്പാക്കാനാവില്ല. നടപടിക്രമങ്ങള് പൂര്ണമാകുന്നതുവരെ ട്രാന്സാക്ഷനുകള് അവയുടെ പരിപൂര്ണ ലോക്കുകള് നീക്കം ചെയ്യാത്ത അവസ്ഥയില് മാത്രമേ ഐസൊലേഷന് ഉറപ്പാക്കാന് കഴിയൂ.
സ്തംഭനാവസ്ഥ (deadlock). ഒരു സിസ്റ്റത്തിലെ ഏതെങ്കിലും ഡേറ്റാ ശേഖരത്തില് ഒന്നിലേറെ ട്രാന്സാക്ഷനുകള് വ്യത്യസ്ത ക്രമത്തില് ലോക്കിങ് നടത്തുമ്പോള് സംജാതമാകാവുന്ന സ്ഥിതിവിശേഷമാണ് സ്തംഭനാവസ്ഥ. ദ്വിഘട്ട-ലോക്കിങ് പലപ്പോഴും ഇത്തരമൊരവസ്ഥ സൃഷ്ടിക്കാറുണ്ട്. ഉദാഹരണത്തിന് p, Q എന്നീ ഡേറ്റാ ശേഖരങ്ങളെ യഥാക്രമം A, B എന്നീ ട്രാന്സാക്ഷനുകള് പ്രത്യേകം പ്രത്യേകമായി പരിപൂര്ണ ലോക്ക് ചെയ്തിരിക്കുന്ന അവസ്ഥയില് A, Q-വില് നിന്നോ B,P-യില് നിന്നോ ഡേറ്റാ ആവശ്യപ്പെട്ടെന്നു കരുതുക. പ്രത്യേകമായി പരിപൂര്ണ ലോക്ക് ചെയ്യപ്പെട്ടതിനാല് Q,A യ്ക്കും P,B യ്ക്കും അപ്രാപ്യങ്ങളാണ്. എന്നാല് ആവശ്യപ്പെട്ട വിവരം ലഭിക്കുമെന്ന പ്രതീക്ഷയില് A യും B യും അനന്തമായി കാത്തിരിക്കുകയും ചെയ്യും; ഇത് സ്തംഭനാവസ്ഥ സൃഷ്ടിക്കുന്നു.
ഈ അവസ്ഥ പല രീതിയിലും ഒഴിവാക്കാനാകും. സ്തംഭനാവസ്ഥയ്ക്കു കാരണമായ ഒന്നോ അതിലധികമോ ട്രാന്സാക്ഷനുകളെ റദ്ദ് (abort) ചെയ്യുകയാണ് ഒരു പോംവഴി. എന്നാല് ഇത്തര ത്തില് റദ്ദു ചെയ്യുമ്പോഴും വിവിധ മാര്ഗനിര്ദേശങ്ങള് പാലിക്ക പ്പെടാറുണ്ട്. ഉദാഹരണമായി ട്രാന്സാക്ഷനുകള് എത്ര സമയമായി പ്രവര്ത്തിച്ചു കൊണ്ടിരിക്കുന്നു, സ്തംഭനാവസ്ഥ സംജാതമാകും മുമ്പ് ട്രാന്സാക്ഷനുകള് എത്രമാത്രം ജോലികള് പൂര്ത്തിയാക്കി എന്നീ കാര്യങ്ങള് കൂടി കണക്കിലെടുത്ത ശേഷമേ റദ്ദാക്കല് നടപ്പാക്കാറുള്ളൂ. സ്തംഭനാവസ്ഥ സൃഷ്ടിക്കാത്ത രീതിയില് ട്രാന് സാക്ഷനുകള്ക്ക് അനുക്രമണനം നല്കുന്നതാണ് മറ്റൊരു മാര്ഗം. ലോക്കുകള് നിലനിറുത്തേണ്ട സമയ ദൈര്ഘ്യം മുന്കൂട്ടി ക്രമപ്പെടുത്തി, അനുവദിക്കപ്പെട്ടതിലേറെ സമയം എടുക്കുന്ന ട്രാന്സാക്ഷനുകളെ, അവ സ്തംഭിതമാണ് എന്ന നിഗമനത്തില്, റദ്ദു ചെയ്ത് ലോക്ക് നീക്കുന്നതാണ് മൂന്നാമത്തെ രീതി.
2. വിതരിത ദ്വിഘട്ട-ലോക്കിങ് (distributed two-phase locking). മറ്റൊരു തരം ലോക്കിങ് സംവിധാനമാണ് വിതരിത ദ്വിഘട്ട-ലോക്കിങ്. കേന്ദ്രീകൃതമോ വിതരിതമോ (distributed) ആയ ഡേറ്റാബേസുകളില് ഇവ പ്രാവര്ത്തികമാക്കാം. വിതരിത ഡേറ്റാ ബേസില് ഒരു ഫയലിന്റെ പകര്പ്പുകള് ഒന്നിലേറെ കേന്ദ്രങ്ങളില് (sites) സൂക്ഷിക്കപ്പെടാറുണ്ട്. ഇവയില് ഒരു പകര്പ്പില് വരുത്തുന്ന മാറ്റങ്ങള് മറ്റു പകര്പ്പുകളില് യഥാതഥമായി പ്രതിഫലിച്ചെങ്കില് മാത്രമേ ഡേറ്റാബേസിന്റെ സമഗ്രത ഉറപ്പാക്കാനാവൂ; തന്മൂലം എല്ലാ പകര്പ്പുകളേയും ഒരേ സമയം റൈറ്റ്-ലോക്കിങ്ങിന് (write locking) വിധേയമാക്കുന്നു. പക്ഷേ, ഈ സംവിധാനം വളരെ ചെലവേറിയതാണ്. ഡേറ്റാബേസിലെ ഒരു പകര്പ്പിനെ 'മാസ്റ്റര് കോപ്പി' ആയി നിര്വചിച്ച് അതിനെ മാത്രം ലോക്കിങ്ങിനു വിധേയമാക്കുന്നതാണ് ചെലവു കുറഞ്ഞ മാര്ഗം.
II. സീരിയലൈസബിലിറ്റി. ഒന്നിലേറെ ട്രാന്സാക്ഷനു കള് ഉള്ളപ്പോള് അവ നടപ്പാക്കാനുള്ള ഒരു ക്രമം നിര്വചിക്കുന്ന താണ് സീരിയലൈസബിലിറ്റി. ഇതിന്റെ അടിസ്ഥാനത്തിലാകും പിന്നീട് ട്രാന്സാക്ഷനുകള് പ്രാവര്ത്തികമാക്കപ്പെടുക. ഉദാഹരണമായി ഡേറ്റാബേസിലെ ഏതെങ്കിലും ഒരു ഫയലിലെ ഒരു റെക്കാഡില് ഉള്ള വിവരങ്ങള് സിസ്റ്റത്തിന്റെ ബഫറിലേക്കു പകര്ത്തുന്നതാണ് ട്രാന്സാക്ഷന് K യുടെ ചുമതല എന്നും ബഫറില് നിന്ന് ആ വിവരം വായിക്കുന്ന ജോലി ട്രാന്സാക്ഷന് P യുടേതാണെന്നും കരുതുക. സീരിയലൈസബിലിറ്റി നടപ്പിലായിട്ടുണ്ടെങ്കില് ട്രാന്സാക്ഷന് P, ബഫര് വായിക്കുമ്പോള്, രണ്ട് അവസ്ഥകള് മാത്രമേ ഉണ്ടാകാവൂ. ഒന്നുകില് അവിടെ റെക്കാഡിലെ പൂര്ണ വിവരം കാണണം; അല്ലെങ്കില് ബഫര് ശൂന്യമായിരിക്കണം.K യ്ക്കു ശേഷം P എന്ന നടപടിക്രമമാണ് ആദ്യത്തെ അവസ്ഥയ്ക്ക് ആധാരമെങ്കില് P യ്ക്കു ശേഷം K എന്ന രീതിയാണ് രണ്ടാമത്തേതിനു നിദാനം.
III. ടൈം സ്റ്റാംപ് സംവിധാനം. ഇതില് ട്രാന്സാക്ഷനു കളെ അനുക്രമീകരിക്കുന്നത് താഴെപ്പറയും പ്രകാരമാണ്. ഓരോ ട്രാന്സാക്ഷനും നടപ്പിലാക്കിത്തുടങ്ങുമ്പോള് അത് ആരംഭിച്ച സമയത്തെ സംബന്ധിച്ച വിവരം കൂടി അതില് ഉള്പ്പെടുത്തുന്നു. ഇനി ഒരു ട്രാന്സാക്ഷന് അത് തുടങ്ങും മുമ്പ് പ്രാവര്ത്തികമായ മറ്റൊരു ട്രാന്സാക്ഷന് പുതുക്കിക്കഴിഞ്ഞ ഒരു ഡേറ്റയെ, സ്വയം പുതുക്കാനോ വായിക്കാനോ ശ്രമിക്കുന്നു എന്നു കരുതുക; അങ്ങനെ വരുമ്പോള് ആദ്യത്തെ ട്രാന്സാക്ഷനെ സിസ്റ്റം തന്നെ റദ്ദു ചെയ്യുന്നു. ഈ അനുക്രമണ രീതിയില് ഒരു ലോക്കും സിസ്റ്റം ഉപയോഗപ്പെടുത്താറില്ല. തന്മൂലം സിസ്റ്റത്തില് സ്തംഭനാവസ്ഥ സംജാതമാകാന് ഈ രീതി ഒരിക്കലും കാരണമാകാറുമില്ല. ഇതു തന്നെയാണ് ഈ സംവിധാനത്തിന്റെ ഗുണമേന്മ.
IV. റിക്കവറി സംവിധാനം. അറ്റൊമിസിറ്റി, സ്ഥായിത്വം എന്നിവ ഉറപ്പാക്കാന് ട്രാന്സാക്ഷന് മാനേജറിലെ റിക്കവറി (വീണ്ടെടുക്കല്) സംവിധാനത്തിനു കഴിയും. ഇതിനായി സിസ്റ്റത്തില് ലോഗിങ് (logging) പ്രയോജനപ്പെടുത്തുന്നു. സിസ്റ്റം അതിന്റെ ഡേറ്റാബേസിലെ വിവരങ്ങള് പുതുക്കുമ്പോള്, പ്രസ്തുത സമയത്തു നടക്കുന്ന നടപടികളെ സംബന്ധിച്ചുള്ള പൂര്ണ വിവരങ്ങള് രേഖപ്പെടുത്തിവയ്ക്കുന്ന പ്രക്രിയയാണ് ലോഗിങ്. ഏതെല്ലാം ട്രാന്സാക്ഷനുകള് ഏത് ക്രമത്തില് പ്രാവര്ത്തികമാക്കപ്പെട്ടു എന്നിവ ലോഗ് ചാര്ട്ടില് നിന്നു മനസ്സിലാക്കുവാന് സാധിക്കും. ഡേറ്റാ പുതുക്കുന്ന പ്രക്രിയ വിജയകരമായി പൂര്ത്തിയാക്കാനായില്ലെങ്കില് ലോഗ് ചാര്ട്ടില് നോക്കി പൂര്ണവും അപൂര്ണവുമായ ട്രാന്സാക്ഷനുകള് ഏതൊക്കെയാണെന്നു കണ്ടെത്തി അനുയോജ്യ നടപടി സ്വീകരിച്ച് ഡേറ്റാബേസിന്റെ സമഗ്രത വീണ്ടെടുക്കാവുന്നതാണ്. ഇതിനു ശേഷം ഡേറ്റാബേസില് ഇതര ട്രാന്സാക്ഷനുകള് പ്രാവര്ത്തികമാക്കാന് സാധിക്കും.
ചെക്ക്പോയിന്റ് സംവിധാനവും ഇതിനായി പ്രയോജനപ്പെടു ത്താം. ഒരു പ്രോഗ്രാം താത്ക്കാലികമായി നിറുത്തപ്പെടുമ്പോള് പ്രോഗ്രാമിന്റെ തത്സമയത്തെ സംബന്ധിച്ച പൂര്ണ വിവരങ്ങളും - ഉദാഹരണമായി രജിസ്റ്ററുകളുടെ ഉള്ളടക്കം, പ്രോഗ്രാം നിര്ദേശ ങ്ങള് ഉള്ള സ്ഥാനങ്ങളുടെ അഡ്രസ്സ്, ഇന്പുട്ട്/ഔട്ട്പുട്ട് ഉപകരണങ്ങളുടെ അവസ്ഥ മുതലായ വിവരങ്ങള് - സിസ്റ്റത്തില് സംഭരിച്ചു വയ്ക്കപ്പെടാറുണ്ട്. പിന്നീട് പ്രസ്തുത പ്രോഗ്രാം, പ്രോസസിങ് പുനരാരംഭിക്കേണ്ട സന്ദര്ഭത്തില്, ഒരു 'റീസ്റ്റാര്ട്ട് റുട്ടീന്' വഴി ചെക്ക്പോയിന്റ് വിവരങ്ങള് വീണ്ടെടുക്കുകയും ചെയ്യുന്നു.
ഇത്തരത്തില് ഒരു ഡേറ്റാബേസിന്റെ സമഗ്രത കാത്തു സൂക്ഷിക്കാന് ഉപയോഗപ്പെടുന്നവയാണ് കണ്കറന്സി കണ്ട്രോള് നടപടിക്രമങ്ങള്. വിതരിത ഡേറ്റാബേസുകളില് ഈ നിയന്ത്രണ രീതികള്ക്ക് കൂടുതല് പ്രാധാന്യം നല്കാറുണ്ട്.