Distributed lock manager
ઓપરેટિંગ સિસ્ટમ્સ સંસાધનોની પહોંચને ગોઠવવા અને શ્રેણીબદ્ધ કરવા માટે લોક મેનેજર્સનો ઉપયોગ કરે છે. ડિસ્ટ્રિબ્યુટેડ લોક મેનેજર (ડી. એલ. એમ.) ક્લસ્ટરમાં દરેક મશીનમાં ક્લસ્ટર-વાઇડ લોક ડેટાબેઝની સમાન નકલ સાથે ચાલે છે. આ રીતે ડી. એલ. એમ. સોફ્ટવેર એપ્લિકેશન્સ પ્રદાન કરે છે જે વહેંચાયેલ સંસાધનોમાં તેમની ઍક્સેસને સુમેળ કરવાના સાધન સાથે બહુવિધ મશીનો પર ક્લસ્ટરમાં વિતરિત કરવામાં આવે છે. ડી. એલ. એમ. નો ઉપયોગ કેટલીક સફળ ક્લસ્ટર ફાઇલ સિસ્ટમોના પાયા તરીકે કરવામાં આવ્યો છે, જેમાં ક્લસ્ટરમાંના મશીનો પ્રદર્શન અને ઉપલબ્ધતા માટે નોંધપાત્ર ફાયદાઓ સાથે એકીકૃત ફાઇલ સિસ્ટમ દ્વારા એકબીજાના સંગ્રહનો ઉપયોગ કરી શકે છે. મુખ્ય પ્રદર્શન લાભ ભાગ લેનારા કમ્પ્યુટર્સ વચ્ચે ડિસ્ક કેશ સુસંગતતાની સમસ્યાનું સમાધાન કરવાથી આવે છે. ડી. એલ. એમ. નો ઉપયોગ માત્ર ફાઇલ લોક કરવા માટે જ નહીં પરંતુ તમામ ડિસ્ક ઍક્સેસના સંકલન માટે પણ થાય છે. વીએમએસક્લસ્ટર, વ્યાપક ઉપયોગમાં આવનારી પ્રથમ ક્લસ્ટરિંગ સિસ્ટમ, આ રીતે ઓપનવીએમએસ ડી. એલ. એમ. પર આધાર રાખે છે. સંસાધનો ડી. એલ. એમ. સંસાધનોની સામાન્યીકૃત વિભાવનાનો ઉપયોગ કરે છે, જે એક એવી સંસ્થા છે જેના માટે વહેંચાયેલ પહોંચને નિયંત્રિત કરવી આવશ્યક છે. આ ફાઇલ, રેકોર્ડ, વહેંચાયેલ મેમરીના વિસ્તાર અથવા એપ્લિકેશન ડિઝાઇનર પસંદ કરે છે તે કોઈપણ વસ્તુ સાથે સંબંધિત હોઈ શકે છે. સંસાધનોના પદાનુક્રમને વ્યાખ્યાયિત કરી શકાય છે, જેથી લોકીંગના સંખ્યાબંધ સ્તરોનો અમલ કરી શકાય. દાખલા તરીકે, એક કાલ્પનિક ડેટાબેઝ સંસાધન પદાનુક્રમને નીચે પ્રમાણે વ્યાખ્યાયિત કરી શકે છેઃ ડેટાબેઝ ટેબલ રેકોર્ડ ફિલ્ડ એક પ્રક્રિયા પછી સમગ્ર ડેટાબેઝ પર તાળાઓ મેળવી શકે છે, અને પછી ડેટાબેઝના ચોક્કસ ભાગો પર. ગૌણ સંસાધનને તાળું મારી શકાય તે પહેલાં મૂળ સંસાધન પર તાળું મેળવવું આવશ્યક છે. લોક સ્થિતિઓ વી. એમ. એસ. સી. ક્લસ્ટરની અંદર ચાલતી પ્રક્રિયા સંસાધન પર લોક મેળવી શકે છે. ત્યાં છ લોક સ્થિતિઓ છે જે મંજૂર કરી શકાય છે, અને આ વિશિષ્ટતાના સ્તરને નિર્ધારિત કરે છે, લોકને ઉચ્ચ અથવા નીચલા સ્તરના લોક સ્થિતિમાં રૂપાંતરિત કરવું શક્ય છે. જ્યારે બધી પ્રક્રિયાઓ સંસાધનને ખોલી દે છે, ત્યારે સંસાધન વિશેની સિસ્ટમની માહિતીનો નાશ થાય છે. નલ (એન. એલ.). સંસાધનમાં રસ સૂચવે છે, પરંતુ અન્ય પ્રક્રિયાઓને તેને તાળું મારવાથી અટકાવતું નથી. તેનો ફાયદો એ છે કે જ્યારે કોઈ પ્રક્રિયાઓ તેને તાળું મારી રહી ન હોય ત્યારે પણ સંસાધન અને તેના તાળા મૂલ્ય બ્લોકને સાચવવામાં આવે છે. સમવર્તી વાંચન (CR). સંસાધનને વાંચવાની (પરંતુ અપડેટ ન કરવાની) ઇચ્છા સૂચવે છે. તે અન્ય પ્રક્રિયાઓને સંસાધનને વાંચવા અથવા અપડેટ કરવાની મંજૂરી આપે છે, પરંતુ અન્યને તેની વિશિષ્ટ ઍક્સેસ મેળવવાથી અટકાવે છે. આનો ઉપયોગ સામાન્ય રીતે ઉચ્ચ-સ્તરના સંસાધનો પર થાય છે, જેથી ગૌણ સંસાધનો પર વધુ પ્રતિબંધાત્મક તાળાઓ મેળવી શકાય. સમવર્તી લેખન (CW). સંસાધનને વાંચવા અને અપડેટ કરવાની ઇચ્છા સૂચવે છે. તે અન્ય પ્રક્રિયાઓને સંસાધનને વાંચવા અથવા અપડેટ કરવાની પણ મંજૂરી આપે છે, પરંતુ અન્યને તેની વિશિષ્ટ ઍક્સેસ મેળવવાથી અટકાવે છે. આનો ઉપયોગ સામાન્ય રીતે ઉચ્ચ-સ્તરના સંસાધનો પર પણ થાય છે, જેથી ગૌણ સંસાધનો પર વધુ પ્રતિબંધાત્મક તાળાઓ મેળવી શકાય. સંરક્ષિત વાંચન (PR). આ પરંપરાગત શેર લોક છે, જે સંસાધનને વાંચવાની ઇચ્છા સૂચવે છે પરંતુ અન્યને તેને અપડેટ કરવાથી અટકાવે છે. જોકે અન્ય લોકો પણ સ્રોત વાંચી શકે છે. સંરક્ષિત લેખન (પીડબ્લ્યુ). આ પરંપરાગત અપડેટ લોક છે, જે સંસાધનને વાંચવા અને અપડેટ કરવાની ઇચ્છા સૂચવે છે અને અન્યને તેને અપડેટ કરવાથી અટકાવે છે. જો કે સમવર્તી વાંચી શકાય તેવી ઍક્સેસ ધરાવતા અન્ય લોકો સંસાધન વાંચી શકે છે. વિશિષ્ટ (EX). આ પરંપરાગત વિશિષ્ટ તાળું છે જે સંસાધનની ઍક્સેસને વાંચવા અને અપડેટ કરવાની મંજૂરી આપે છે, અને અન્ય લોકોને તેની ઍક્સેસ મેળવવાથી અટકાવે છે. નીચેનું સત્ય કોષ્ટક દરેક તાળા મોડની અન્ય સાથે સુસંગતતા દર્શાવે છેઃ તાળા મેળવવાની પ્રક્રિયા તાળા વિનંતી દાખલ કરીને સ્રોત પર તાળા મેળવી શકે છે. આ ક્યુઆઇઓ તકનીક જેવું જ છે જેનો ઉપયોગ આઇ/ઓ કરવા માટે થાય છે. એન્ક્વ્યુ લોક વિનંતી ક્યાં તો સુમેળમાં પૂર્ણ કરી શકે છે, આ કિસ્સામાં પ્રક્રિયા તાળું મંજૂર થાય ત્યાં સુધી રાહ જુએ છે, અથવા અસિંક્રોનસલી, આ કિસ્સામાં જ્યારે તાળું મેળવવામાં આવે ત્યારે AST થાય છે. અવરોધિત AST સ્થાપિત કરવું પણ શક્ય છે, જે ત્યારે શરૂ થાય છે જ્યારે કોઈ પ્રક્રિયાએ તાળું મેળવ્યું હોય જે અન્ય પ્રક્રિયા દ્વારા સંસાધનની પહોંચને અટકાવી રહ્યું હોય. મૂળ પ્રક્રિયા પછી વૈકલ્પિક રીતે અન્ય ઍક્સેસને મંજૂરી આપવા માટે પગલાં લઈ શકે છે (દા. ત. લોકને ડિમોટ કરીને અથવા મુક્ત કરીને). તાળું મૂલ્ય બ્લોક તાળું મૂલ્ય બ્લોક દરેક સ્રોત સાથે સંકળાયેલ છે. આને કોઈપણ પ્રક્રિયા દ્વારા વાંચી શકાય છે જેણે સંસાધન પર તાળું મેળવ્યું છે (નલ તાળું સિવાય) અને તે પ્રક્રિયા દ્વારા અપડેટ કરી શકાય છે જેણે તેના પર સંરક્ષિત સુધારા અથવા વિશિષ્ટ તાળા મેળવ્યા છે. તેનો ઉપયોગ એપ્લિકેશન ડિઝાઇનર પસંદ કરે છે તે સંસાધન વિશેની કોઈપણ માહિતી રાખવા માટે થઈ શકે છે. એક લાક્ષણિક ઉપયોગ સંસાધનનો સંસ્કરણ નંબર રાખવાનો છે. દરેક વખતે સંકળાયેલ એકમ (દા. ત. ડેટાબેઝ રેકોર્ડ) અપડેટ કરવામાં આવે છે, લોક ધારક લોક મૂલ્ય બ્લોકમાં વધારો કરે છે. જ્યારે બીજી પ્રક્રિયા સંસાધનને વાંચવા માંગે છે, ત્યારે તે યોગ્ય તાળું મેળવે છે અને વર્તમાન તાળું મૂલ્યની સરખામણી તે મૂલ્ય સાથે કરે છે જે છેલ્લી વખત પ્રક્રિયાએ સંસાધનને તાળું માર્યું હતું. જો મૂલ્ય સમાન હોય, તો પ્રક્રિયા જાણે છે કે સંકળાયેલ અસ્તિત્વ છેલ્લી વખત તેને વાંચ્યા પછી અપડેટ કરવામાં આવ્યું નથી, અને તેથી તેને ફરીથી વાંચવું બિનજરૂરી છે. તેથી, આ તકનીકનો ઉપયોગ ડેટાબેઝ અથવા સમાન એપ્લિકેશનમાં વિવિધ પ્રકારના કેશનો અમલ કરવા માટે થઈ શકે છે. ડેડલોક ડિટેક્શન જ્યારે એક અથવા વધુ પ્રક્રિયાઓએ સંસાધનો પર તાળાઓ મેળવ્યા હોય, ત્યારે એવી પરિસ્થિતિ ઊભી કરવી શક્ય છે કે જ્યાં દરેક અન્યને તાળા મેળવવાથી અટકાવી રહી હોય, અને તેમાંથી કોઈ પણ આગળ વધી શકતી નથી. આને ડેડલોક તરીકે ઓળખવામાં આવે છે (ઇ. ડબલ્યુ. ડિજક્સ્ટ્રા મૂળરૂપે તેને જીવલેણ આલિંગન કહેતો હતો). એક સરળ ઉદાહરણ એ છે કે જ્યારે પ્રક્રિયા 1 એ સંસાધન A પર વિશિષ્ટ લોક મેળવ્યું છે, અને પ્રક્રિયા 2 એ સંસાધન B પર વિશિષ્ટ લોક મેળવ્યું છે. જો પ્રોસેસ 1 પછી રિસોર્સ B ને તાળું મારવાનો પ્રયાસ કરે છે, તો તેને રિલીઝ કરવા માટે પ્રોસેસ 2 ની રાહ જોવી પડશે. પરંતુ જો પ્રક્રિયા 2 પછી સંસાધન A ને તાળું મારવાનો પ્રયાસ કરે છે, તો બંને પ્રક્રિયાઓ એકબીજા માટે કાયમ રાહ જોશે. ઓપનવીએમએસ ડી. એલ. એમ. સમયાંતરે મડાગાંઠની પરિસ્થિતિઓની તપાસ કરે છે. ઉપરના ઉદાહરણમાં, પ્રક્રિયાઓમાંથી એકની બીજી લોક એન્ક્વ્યુ વિનંતી ડેડલોક સ્થિતિ સાથે પરત આવશે. તે પછી મડાગાંઠને ઉકેલવા માટે પગલાં લેવા માટે આ પ્રક્રિયા પર રહેશે-આ કિસ્સામાં તેને પ્રાપ્ત થયેલ પ્રથમ તાળું મુક્ત કરીને. લિનક્સ ક્લસ્ટરીંગ રેડ હેટ અને ઓરેકલ બંનેએ લિનક્સ માટે ક્લસ્ટરીંગ સોફ્ટવેર વિકસાવ્યું છે. ઓ. સી. એફ. એસ. 2, ઓરેકલ ક્લસ્ટર ફાઇલ સિસ્ટમને જાન્યુઆરી 2006માં સત્તાવાર લિનક્સ કર્નલમાં આવૃત્તિ <આઇ. ડી. 1> સાથે ઉમેરવામાં આવી હતી. ઓ. સી. એફ. એસ. 2 પર આલ્ફા-ગુણવત્તાની કોડ ચેતવણીને 2.6.19 માં દૂર કરવામાં આવી હતી. તેમના DLM અને GFS2 સહિત રેડ હેટના ક્લસ્ટર સોફ્ટવેરને નવેમ્બર 2006માં સત્તાવાર રીતે લિનક્સ કર્નલમાં આવૃત્તિ 2.6.19 સાથે ઉમેરવામાં આવ્યું હતું. બંને પ્રણાલીઓ આદરણીય વી. એમ. એસ. ડી. એલ. એમ. પર આધારિત ડી. એલ. એમ. નો ઉપયોગ કરે છે. ઓરેકલના DLMમાં સરળ API છે. (મુખ્ય કાર્ય, dlmlock (), માં આઠ પરિમાણો છે, જ્યારે VMS SYS $ENQ સેવા અને Red Hat ના dlm _ lock બંનેમાં 11 પરિમાણો છે.) અન્ય અમલીકરણ અન્ય ડી. એલ. એમ. અમલીકરણમાં નીચેનાનો સમાવેશ થાય છેઃ ગૂગલે લૂઝલી કપલ્ડ ડિસ્ટ્રિબ્યુટેડ સિસ્ટમ્સ માટે લોક સર્વિસ, ચબ્બી વિકસાવી છે. તે બરછટ-દાણાદાર લોકિંગ માટે રચાયેલ છે અને મર્યાદિત પરંતુ વિશ્વસનીય વિતરિત ફાઇલ સિસ્ટમ પણ પ્રદાન કરે છે. ગૂગલ ફાઇલ સિસ્ટમ, બિગટેબલ અને મેપરેડ્યુસ સહિત ગૂગલના ઇન્ફ્રાસ્ટ્રક્ચરના મુખ્ય ભાગો, વહેંચાયેલ સંસાધનોની ઍક્સેસને સુમેળ કરવા માટે ગોળમટોળાનો ઉપયોગ કરે છે. જો કે ગોળમટોળાને લોક સેવા તરીકે ડિઝાઇન કરવામાં આવી હતી, પરંતુ હવે તેનો ઉપયોગ ગૂગલની અંદર નામ સર્વર તરીકે થાય છે, જે ડી. એન. એસ. ને બદલે છે. અપાચે ઝૂકીપર, જે યાહૂ ખાતે બનાવવામાં આવ્યું હતું, તે ઓપન સોર્સ સોફ્ટવેર છે અને તેનો ઉપયોગ વિતરિત તાળાઓ કરવા માટે પણ થઈ શકે છે. વગેરે એ ઓપન સોર્સ સોફ્ટવેર છે, જે અપાચે લાઇસન્સ હેઠળ કોરઓએસ ખાતે વિકસાવવામાં આવ્યું છે. તેનો ઉપયોગ વિતરિત તાળાઓ કરવા માટે પણ થઈ શકે છે. રેડિસ એક ઓપન સોર્સ, બીએસડી લાઇસન્સ ધરાવતું, અદ્યતન કી-વેલ્યુ કેશ અને સ્ટોર છે. રેડિસનો ઉપયોગ વિતરિત તાળા વ્યવસ્થાપન માટે રેડલોક અલ્ગોરિધમનો અમલ કરવા માટે થઈ શકે છે. હાશીકોર્પ દ્વારા બનાવવામાં આવેલ હાશીકોર્પનો કોન્સ્યુલ ઓપન સોર્સ સોફ્ટવેર છે અને તેનો ઉપયોગ વિતરિત તાળાઓ કરવા માટે પણ થઈ શકે છે. ટાઉકા ડિસ્ટ્રિબ્યુટેડ લોક મેનેજર ડેડલોક ટાળવા માટે "ટ્રાય લોક" પદ્ધતિઓનો ઉપયોગ કરે છે. તે નેનોસેકન્ડ ચોકસાઇ સાથે દરેક તાળા માટે TTL પણ નિર્દિષ્ટ કરી શકે છે. ડી. એલ. એમ. એ ઓપનએસએસઆઈ જેવા વધુ મહત્વાકાંક્ષી સિંગલ સિસ્ટમ ઇમેજ (એસએસઆઈ) પ્રોજેક્ટનો મુખ્ય ઘટક પણ છે. સંદર્ભો એચપી ઓપનવીએમએસ સિસ્ટમ્સ સર્વિસીસ રેફરન્સ મેન્યુઅલ-$ઇએનક્યુ ઓફિસર-રૂબી એફએલઓએમમાં લખાયેલ એક સરળ ડિસ્ટ્રિબ્યુટેડ લોક મેનેજર-એક ફ્રી ઓપન સોર્સ ડિસ્ટ્રિબ્યુટેડ લોક મેનેજર જેનો ઉપયોગ શેલ કમાન્ડ્સ, સ્ક્રિપ્ટ્સ અને કસ્ટમ વિકસિત સી, સી + +, જાવા, પીએચપી અને પાયથોન સોફ્ટવેર ડિસ્ટ્રિબ્યુટેડ કમ્પ્યુટિંગ આર્કિટેક્ચરને સુમેળ કરવા માટે થઈ શકે છે.