മോംഗോഡിബി

ക്രോസ്-പ്ലാറ്റ്ഫോം ഡോക്യുമെന്റ് ഓറിയന്റഡ് ഡാറ്റാബേസ് പ്രോഗ്രാം ആണ് **മോംഗോഡിബി**. ഒരു നോഎസ്ക്യൂഎൽ(NoSQL) ഡാറ്റാബേസ് പ്രോഗ്രാം എന്ന് തരംതിരിച്ചിട്ടുള്ള മോംഗോഡിബി സ്കീമയോടുകൂടിയ ജെസൺ(JSON)പോലുള്ള പ്രമാണങ്ങൾ ഉപയോഗിക്കുന്നു. മോംഗോഡിബി വികസിപ്പിച്ചെടുത്തത് മോംഗോഡിബി ഇങ്ക് ആണ്, സെർവർ സൈഡ് പബ്ലിക് ലൈസൻസിന് (എസ്എസ്പിഎൽ) കീഴിൽ ലൈസൻസുള്ളതാണ്.
## ചരിത്രം
ഒരു സേവന ഉൽ‌പ്പന്നമെന്ന നിലയിൽ ആസൂത്രിതമായ ഒരു പ്ലാറ്റ്ഫോമിന്റെ ഘടകമായി ടെൻജെൻ(10gen) സോഫ്റ്റ്‌വേർ കമ്പനി 2007 ൽ മോംഗോഡിബി വികസിപ്പിക്കാൻ തുടങ്ങി. 2009 ൽ കമ്പനി ഒരു ഓപ്പൺ സോഴ്‌സ് ഡെവലപ്‌മെന്റ് മോഡലിലേക്ക് മാറി, വാണിജ്യ പിന്തുണയും മറ്റ് സേവനങ്ങളും കമ്പനി വാഗ്ദാനം ചെയ്തു. 2013 ൽ ടെൻജെൻ അതിന്റെ പേര് മോംഗോഡിബി ഇങ്ക് എന്ന് മാറ്റി.

ഒക്ടോബർ 20, 2017 ന്, മോംഗോഡിബി ഒരു പൊതു വ്യാപാരം നടത്തുന്ന കമ്പനിയായി മാറി, നാസ്ഡാക്കിൽ എംഡിബിയായി ലിസ്റ്റുചെയ്തിട്ടുണ്ട്, ഓരോ ഷെയറിനും 24 ഡോളർ ഐപിഒ വിലയുണ്ട്. 

2019 ഒക്ടോബർ 30 ന് മോംഗോഡിബി അലിബാബ ക്ലൗഡുമായി ചേർന്നു, ഉപയോക്താക്കൾക്ക് മോംഗോഡിബി-ആസ്-എ-സർവ്വീസ് സൊലൂഷൻ വാഗ്ദാനം ചെയ്യും. ഉപയോക്താക്കൾക്ക് ബാബയുടെ(BABA) ആഗോള ഡാറ്റാ സെന്ററുകളിൽ നിന്ന് നിയന്ത്രിത ഓഫർ ഉപയോഗിക്കാൻ കഴിയും.

## പ്രധാന സവിശേഷതകൾ
### അഡ്ഹോക് ക്വറീസ്
ഫീൽഡ്, ശ്രേണി അന്വേഷണം, പതിവ് എക്‌സ്‌പ്രഷൻ തിരയലുകൾ എന്നിവ മോംഗോഡിബി പിന്തുണയ്ക്കുന്നു.  ചോദ്യങ്ങൾക്ക് പ്രമാണങ്ങളുടെ നിർ‌ദ്ദിഷ്‌ട ഫീൽ‌ഡുകൾ‌ നൽ‌കാനും ഉപയോക്താവ് നിർ‌വ്വചിച്ച ജാവാസ്ക്രിപ്റ്റ് ഫങ്ഷൻസും ഉൾ‌പ്പെടുത്താനും കഴിയും. ഒരു നിശ്ചിത വലിപ്പത്തിന്റെ ഫലങ്ങളുടെ ക്രമരഹിതമായ സാമ്പിൾ നൽകുന്നതിന് അന്വേഷണങ്ങൾ ക്രമീകരിക്കാനും കഴിയും.
### ഇൻഡെക്സിംഗ്
ഒരു മോംഗോഡിബി പ്രമാണത്തിലെ ഫീൽഡുകൾ പ്രാഥമിക, ദ്വിതീയ സൂചികകൾ ഉപയോഗിച്ച് ഇൻഡെക്സ് ചെയ്യാം
### റെപ്ലിക്കേഷൻ
റെപ്ലിക്ക സെറ്റുകളിൽ മോംഗോഡിബി ഉയർന്ന ലഭ്യത നൽകുന്നു. ഒരു റെപ്ലിക്ക സെറ്റിൽ ഡാറ്റയുടെ രണ്ടോ അതിലധികമോ പകർപ്പുകൾ അടങ്ങിയിരിക്കുന്നു. ഓരോ റെപ്ലിക്ക സെറ്റ് അംഗത്തിനും എപ്പോൾ വേണമെങ്കിലും പ്രാഥമിക അല്ലെങ്കിൽ ദ്വിതീയ റെപ്ലിക്കയുടെ റോളിൽ പ്രവർത്തിക്കാം. എല്ലാ റൈറ്റുകളും റീഡുകളും പ്രാഥമിക റെപ്ലിക്കയിൽ സ്ഥിരസ്ഥിതിയായി ചെയ്യുന്നു. ബിൽറ്റ്-ഇൻ റെപ്ലിക്കേഷൻ ഉപയോഗിച്ച് ദ്വിതീയ പകർപ്പുകൾ പ്രാഥമിക ഡാറ്റയുടെ ഒരു പകർപ്പ് നിലനിർത്തുന്നു. ഒരു പ്രൈമറിയുടെ തനിപ്പകർ‌പ്പ് പരാജയപ്പെടുമ്പോൾ, ഏത് ദ്വിതീയമാണ് പ്രാഥമികമാകേണ്ടതെന്ന് നിർണ്ണയിക്കാൻ റെപ്ലിക്ക സെറ്റ് യാന്ത്രികമായി ഒരു തിരഞ്ഞെടുപ്പ് പ്രക്രിയ നടത്തുന്നു. സെക്കൻഡറികൾക്ക് ഓപ്‌ഷണലായി റീഡ് ഓപ്പറേഷനുകൾ നൽകാനാകും, പക്ഷേ ആ ഡാറ്റ സ്ഥിരമായിരിക്കും.

മോംഗോഡിബി വിന്യാസത്തിന് ഒരൊറ്റ ദ്വിതീയ അംഗം മാത്രമേ ഉള്ളൂവെങ്കിൽ, ഒരു ആർബിറ്റർ എന്ന് വിളിക്കുന്ന ഒരു പ്രത്യേക ഡെമൺ സെറ്റിലേക്ക് ചേർക്കേണ്ടതാണ്. ഇതിനൊരു ഉത്തരവാദിത്തമുണ്ട്, അത് പുതിയ പ്രൈമറിയുടെ തിരഞ്ഞെടുപ്പ് പരിഹരിക്കുക എന്നതാണ്. അനന്തരഫലമായി, അനുയോജ്യമായ ഡിസ്ട്രിബ്യൂട്ടട് മോംഗോഡിബി വിന്യാസത്തിന് കുറഞ്ഞത് മൂന്ന് പ്രത്യേക സെർവറുകളെങ്കിലും ആവശ്യമാണ്, ഒരു പ്രൈമറിയും, മറ്റൊന്ന് സെക്കൻട്രിയുടെ കാര്യത്തിലും.
### ബാലൻസിംഗ് ലോഡുചെയ്യുക
ഷാർഡിംഗ് ഉപയോഗിക്കുന്ന തിരശ്ചീനമായ മോംഗോഡിബി സ്കെയിലുകൾ. ഉപയോക്താവ് ഒരു ഷാർഡ് കീ തിരഞ്ഞെടുക്കുന്നു, ഇത് ഒരു കളക്ഷനിലെ ഡാറ്റ എങ്ങനെ വിതരണം ചെയ്യുമെന്ന് നിർണ്ണയിക്കുന്നു. ഡാറ്റയെ ശ്രേണികളായി വിഭജിച്ചിരിക്കുന്നു (ഷാർഡ് കീ അടിസ്ഥാനമാക്കി) ഒന്നിലധികം ഷാർഡുകളിലായി വിതരണം ചെയ്യുന്നു. (ഒന്നോ അതിലധികമോ റീപ്ലിക്കകൾ ഉള്ള ഒരു മാസ്റ്ററാണ് ഷാർഡ്). പകരമായി, ഒരു ഷാർഡിലേക്ക് മാപ്പ് ചെയ്യുന്നതിന് ഷാർഡ് കീ ഹാഷ് ചെയ്യാൻ കഴിയും - ഒരു ഇരട്ട ഡാറ്റ വിതരണം പ്രാപ്തമാക്കുന്നു. ഹാർഡ്‌വെയർ തകരാറുണ്ടായാൽ സിസ്റ്റം നിലനിർത്തുന്നതിനും പ്രവർത്തിപ്പിക്കുന്നതിനും മോംഗോഡിബിക്ക് ഒന്നിലധികം സെർവറുകളിൽ പ്രവർത്തിക്കാനും ലോഡ് ബാലൻസ് ചെയ്യാനോ ഡാറ്റയുടെ തനിപ്പകർപ്പ് എടുക്കാനോ കഴിയും.
### ഫയൽ സ്റ്റോറേജ്
ഫയലുകൾ സംഭരിക്കുന്നതിനായി ഒന്നിലധികം മെഷീനുകളിൽ ലോഡ് ബാലൻസിംഗും ഡാറ്റ റെപ്ലിക്കേഷൻ സവിശേഷതകളും ഉപയോഗിച്ച് ഗ്രിഡ്എഫ്എസ്(GridFS)എന്ന് വിളിക്കുന്ന ഒരു ഫയൽ സിസ്റ്റമായി മോംഗോഡിബി ഉപയോഗിക്കാം. ഗ്രിഡ് ഫയൽ സിസ്റ്റം എന്ന് വിളിക്കുന്ന ഈ പ്രവർത്തനം മോംഗോഡിബി ഡ്രൈവറുകളിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഡവലപ്പർമാർക്ക് ഫയൽ മാനുപ്പുലേഷനും, ഉള്ളടക്കത്തിനുമുള്ള പ്രവർത്തനങ്ങൾ മോംഗോഡിബി തുറന്നുകാട്ടുന്നു. മംഗോഫൈൽസ് യൂട്ടിലിറ്റി അല്ലെങ്കിൽ എൻ‌ജിൻ‌എക്സ്, ലൈറ്റ്ടി‌പിഡി എന്നിവയ്ക്കുള്ള പ്ലഗിനുകൾ ഉപയോഗിച്ച് ഗ്രിഡ് എഫ്എസ് ആക്സസ് ചെയ്യാൻ കഴിയും.ഗ്രിഡ്എഫ്എസ് ഒരു ഫയലിനെ ഭാഗങ്ങളായി അല്ലെങ്കിൽ ചങ്കുകളായി(chunks) വിഭജിക്കുകയും ഓരോ ചങ്കുകളും പ്രത്യേക ഡോക്യുമെന്റായി സംഭരിക്കുകയും ചെയ്യുന്നു.
### അഗ്രഗേഷൻ
അഗ്രഗേഷൻ നടത്തുന്നതിന് മോംഗോഡിബി മൂന്ന് വഴികൾ നൽകുന്നു: അഗ്രഗേഷൻ പൈപ്പ്ലൈൻ, മാപ്പ്-റിഡ്യൂസ് ഫംഗ്ഷൻ, സിംഗിൾ പർപ്പസ് അഗ്രഗേഷൻ മെത്തേഡുകൾ മുതലായവ.

ഡാറ്റയുടെ ബാച്ച് പ്രോസസ്സിംഗിനും അഗ്രഗേഷൻ പ്രവർത്തനങ്ങൾക്കും മാപ്പ്-റിഡ്യൂസ് ഉപയോഗിക്കാം. എന്നാൽ മോംഗോഡിബിയുടെ ഡോക്യുമെന്റേഷൻ അനുസരിച്ച്, അഗ്രഗേഷൻ പൈപ്പ്ലൈൻ മിക്ക അഗ്രഗേഷൻ പ്രവർത്തനങ്ങൾക്കും മികച്ച പ്രകടനം നൽകുന്നു.

എസ്ക്യൂഎൽ ഗ്രൂപ്പ്(SQL GROUP)ബൈ ക്ലോസ് ഉപയോഗിക്കുന്ന തരത്തിലുള്ള റിസൾട്ട് നേടുന്നതിന് അഗ്രഗേഷൻ ഫ്രെയിംവർക്ക് ഉപയോക്താക്കളെ പ്രാപ്തരാക്കുന്നു. അഗ്രഗേഷൻ ഓപ്പറേറ്റഴ്സിനെ ഒരുമിച്ച് കൂട്ടിച്ചേർത്ത് ഒരു പൈപ്പ് ലൈൻ രൂപപ്പെടുത്താം-യുണിക്സ്(Unix)പൈപ്പുകൾക്ക് സമാനമാണ്. ഒന്നിലധികം ശേഖരങ്ങളിൽ നിന്നുള്ള ഡോക്യുമെന്റുകളിൽ ചേരാൻ കഴിയുന്ന $lookup ഓപ്പറേറ്ററും സ്റ്റാൻഡേർഡ് ഡീവിയേഷൻ പോലുള്ള സ്റ്റാറ്റിസ്റ്റിക്കൽ ഓപ്പറേറ്റർമാരും അഗ്രഗേഷൻ ഫ്രെയിംവർക്കിൽ ഉൾപ്പെടുന്നു.

## അവലംബം