മലയാളം

ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനുകളെയും ടു-ഫേസ് കമ്മിറ്റ് (2PC) പ്രോട്ടോക്കോളിനെയും കുറിച്ച് ആഴത്തിൽ മനസ്സിലാക്കുക. അതിന്റെ ഘടന, ഗുണദോഷങ്ങൾ, ആഗോളതലത്തിലെ ഉപയോഗങ്ങൾ എന്നിവ അറിയുക.

ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനുകൾ: ടു-ഫേസ് കമ്മിറ്റിന്റെ (2PC) ഒരു ആഴത്തിലുള്ള പഠനം

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

എന്താണ് ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷൻ?

ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷൻ എന്നത് ഭൂമിശാസ്ത്രപരമായി ചിതറിക്കിടക്കുന്ന ഒന്നിലധികം സിസ്റ്റങ്ങളിൽ നടത്തുന്ന പ്രവർത്തനങ്ങളുടെ ഒരു ശ്രേണിയാണ്, ഇതിനെ ഒരൊറ്റ ആറ്റോമിക് യൂണിറ്റായി കണക്കാക്കുന്നു. ഇതിനർത്ഥം, ഒന്നുകിൽ ട്രാൻസാക്ഷനിലെ എല്ലാ പ്രവർത്തനങ്ങളും വിജയിക്കണം (കമ്മിറ്റ്), അല്ലെങ്കിൽ ഒന്നും വിജയിക്കരുത് (റോൾബാക്ക്). ഈ "എല്ലാം അല്ലെങ്കിൽ ഒന്നുമില്ല" എന്ന തത്വം മുഴുവൻ ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റത്തിലുടനീളം ഡാറ്റയുടെ സമഗ്രത ഉറപ്പാക്കുന്നു.

ടോക്കിയോയിലുള്ള ഒരു ഉപഭോക്താവ് ഒരു എയർലൈൻ സിസ്റ്റത്തിൽ നിന്ന് ടോക്കിയോയിൽ നിന്ന് ലണ്ടനിലേക്ക് ഒരു വിമാനം ബുക്ക് ചെയ്യുകയും അതേ സമയം മറ്റൊരു ഹോട്ടൽ ബുക്കിംഗ് സിസ്റ്റത്തിൽ ലണ്ടനിൽ ഒരു ഹോട്ടൽ മുറി റിസർവ് ചെയ്യുകയും ചെയ്യുന്ന ഒരു സാഹചര്യം പരിഗണിക്കുക. ഈ രണ്ട് പ്രവർത്തനങ്ങളും (ഫ്ലൈറ്റ് ബുക്കിംഗും ഹോട്ടൽ റിസർവേഷനും) ഒരുമിച്ച് ഒരൊറ്റ ട്രാൻസാക്ഷനായി കണക്കാക്കണം. ഫ്ലൈറ്റ് ബുക്കിംഗ് വിജയിക്കുകയും എന്നാൽ ഹോട്ടൽ റിസർവേഷൻ പരാജയപ്പെടുകയും ചെയ്താൽ, ഉപഭോക്താവിന് ലണ്ടനിൽ താമസസൗകര്യമില്ലാതെ കുടുങ്ങിപ്പോകുന്നത് ഒഴിവാക്കാൻ സിസ്റ്റം ഫ്ലൈറ്റ് ബുക്കിംഗ് റദ്ദാക്കണം. ഈ ഏകോപിപ്പിച്ച പ്രവർത്തനമാണ് ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷന്റെ കാതൽ.

ടു-ഫേസ് കമ്മിറ്റ് (2PC) പ്രോട്ടോക്കോൾ പരിചയപ്പെടുത്തുന്നു

ടു-ഫേസ് കമ്മിറ്റ് (2PC) പ്രോട്ടോക്കോൾ ഒന്നിലധികം റിസോഴ്സ് മാനേജർമാരിൽ (ഉദാഹരണത്തിന്, ഡാറ്റാബേസുകൾ) ആറ്റോമിസിറ്റി ഉറപ്പാക്കുന്ന ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് അൽഗോരിതം ആണ്. ഇതിൽ ഒരു സെൻട്രൽ കോർഡിനേറ്ററും ഒന്നിലധികം പാർട്ടിസിപ്പന്റുകളും ഉൾപ്പെടുന്നു, ഓരോരുത്തരും ഒരു പ്രത്യേക റിസോഴ്സ് കൈകാര്യം ചെയ്യാൻ ഉത്തരവാദികളാണ്. ഈ പ്രോട്ടോക്കോൾ രണ്ട് വ്യത്യസ്ത ഘട്ടങ്ങളിലായാണ് പ്രവർത്തിക്കുന്നത്:

ഘട്ടം 1: പ്രിപ്പയർ ഫേസ്

ഈ ഘട്ടത്തിൽ, കോർഡിനേറ്റർ ട്രാൻസാക്ഷൻ ആരംഭിക്കുകയും ഓരോ പാർട്ടിസിപ്പന്റിനോടും ട്രാൻസാക്ഷൻ കമ്മിറ്റ് ചെയ്യാനോ റോൾബാക്ക് ചെയ്യാനോ തയ്യാറാകാൻ ആവശ്യപ്പെടുകയും ചെയ്യുന്നു. ഇതിലെ ഘട്ടങ്ങൾ താഴെ പറയുന്നവയാണ്:

  1. കോർഡിനേറ്റർ ഒരു പ്രിപ്പയർ റിക്വസ്റ്റ് അയയ്ക്കുന്നു: കോർഡിനേറ്റർ എല്ലാ പാർട്ടിസിപ്പന്റുകൾക്കും ഒരു "പ്രിപ്പയർ" സന്ദേശം അയയ്ക്കുന്നു. ഈ സന്ദേശം കോർഡിനേറ്റർ ട്രാൻസാക്ഷൻ കമ്മിറ്റ് ചെയ്യാൻ തയ്യാറാണെന്ന് സൂചിപ്പിക്കുകയും ഓരോ പാർട്ടിസിപ്പന്റിനോടും അതിന് തയ്യാറാകാൻ ആവശ്യപ്പെടുകയും ചെയ്യുന്നു.
  2. പാർട്ടിസിപ്പന്റുകൾ തയ്യാറാകുകയും പ്രതികരിക്കുകയും ചെയ്യുന്നു: ഓരോ പാർട്ടിസിപ്പന്റും പ്രിപ്പയർ റിക്വസ്റ്റ് സ്വീകരിക്കുകയും താഴെ പറയുന്ന പ്രവർത്തനങ്ങൾ ചെയ്യുകയും ചെയ്യുന്നു:
    • ട്രാൻസാക്ഷൻ കമ്മിറ്റ് ചെയ്യാനോ റോൾബാക്ക് ചെയ്യാനോ കഴിയുമെന്ന് ഉറപ്പാക്കാൻ ആവശ്യമായ നടപടികൾ സ്വീകരിക്കുന്നു (ഉദാഹരണത്തിന്, റീഡു/അൺഡു ലോഗുകൾ എഴുതുന്നു).
    • കോർഡിനേറ്ററിലേക്ക് ഒരു "വോട്ട്" തിരികെ അയയ്ക്കുന്നു, ഇത് "കമ്മിറ്റ് ചെയ്യാൻ തയ്യാറാണ്" (ഒരു "അതെ" വോട്ട്) അല്ലെങ്കിൽ "കമ്മിറ്റ് ചെയ്യാൻ കഴിയില്ല" (ഒരു "ഇല്ല" വോട്ട്) എന്ന് സൂചിപ്പിക്കുന്നു. റിസോഴ്സ് പരിമിതികൾ, ഡാറ്റാ വാലിഡേഷൻ പരാജയങ്ങൾ, അല്ലെങ്കിൽ മറ്റ് പിശകുകൾ എന്നിവ കാരണം "ഇല്ല" വോട്ട് ഉണ്ടാകാം.

പാർട്ടിസിപ്പന്റുകൾ "അതെ" എന്ന് വോട്ട് ചെയ്തുകഴിഞ്ഞാൽ, മാറ്റങ്ങൾ കമ്മിറ്റ് ചെയ്യാനോ റോൾബാക്ക് ചെയ്യാനോ കഴിയുമെന്ന് ഉറപ്പുനൽകേണ്ടത് അത്യാവശ്യമാണ്. ഇതിന് സാധാരണയായി മാറ്റങ്ങൾ സ്ഥിരമായ സംഭരണത്തിലേക്ക് (ഉദാഹരണത്തിന്, ഡിസ്ക്) പെർസിസ്റ്റ് ചെയ്യേണ്ടതുണ്ട്.

ഘട്ടം 2: കമ്മിറ്റ് അല്ലെങ്കിൽ റോൾബാക്ക് ഫേസ്

പ്രിപ്പയർ ഫേസിൽ പാർട്ടിസിപ്പന്റുകളിൽ നിന്ന് ലഭിച്ച വോട്ടുകളെ അടിസ്ഥാനമാക്കി കോർഡിനേറ്ററാണ് ഈ ഘട്ടം ആരംഭിക്കുന്നത്. ഇതിന് രണ്ട് സാധ്യമായ ഫലങ്ങളുണ്ട്:

ഫലം 1: കമ്മിറ്റ്

കോർഡിനേറ്ററിന് എല്ലാ പാർട്ടിസിപ്പന്റുകളിൽ നിന്നും "അതെ" വോട്ടുകൾ ലഭിക്കുകയാണെങ്കിൽ, അത് ട്രാൻസാക്ഷൻ കമ്മിറ്റ് ചെയ്യുന്ന നടപടികളുമായി മുന്നോട്ട് പോകുന്നു.

  1. കോർഡിനേറ്റർ ഒരു കമ്മിറ്റ് റിക്വസ്റ്റ് അയയ്ക്കുന്നു: കോർഡിനേറ്റർ എല്ലാ പാർട്ടിസിപ്പന്റുകൾക്കും ഒരു "കമ്മിറ്റ്" സന്ദേശം അയയ്ക്കുന്നു.
  2. പാർട്ടിസിപ്പന്റുകൾ കമ്മിറ്റ് ചെയ്യുന്നു: ഓരോ പാർട്ടിസിപ്പന്റും കമ്മിറ്റ് റിക്വസ്റ്റ് സ്വീകരിക്കുകയും ട്രാൻസാക്ഷനുമായി ബന്ധപ്പെട്ട മാറ്റങ്ങൾ അതിന്റെ റിസോഴ്സിൽ ശാശ്വതമായി പ്രയോഗിക്കുകയും ചെയ്യുന്നു.
  3. പാർട്ടിസിപ്പന്റുകൾ അറിയിപ്പ് നൽകുന്നു: ഓരോ പാർട്ടിസിപ്പന്റും കമ്മിറ്റ് ഓപ്പറേഷൻ വിജയകരമായിരുന്നുവെന്ന് സ്ഥിരീകരിക്കുന്നതിന് കോർഡിനേറ്ററിലേക്ക് ഒരു അറിയിപ്പ് സന്ദേശം അയയ്ക്കുന്നു.
  4. കോർഡിനേറ്റർ പൂർത്തിയാക്കുന്നു: എല്ലാ പാർട്ടിസിപ്പന്റുകളിൽ നിന്നും അറിയിപ്പുകൾ ലഭിച്ചുകഴിഞ്ഞാൽ, കോർഡിനേറ്റർ ട്രാൻസാക്ഷൻ പൂർത്തിയായതായി അടയാളപ്പെടുത്തുന്നു.

ഫലം 2: റോൾബാക്ക്

ഏതെങ്കിലും പാർട്ടിസിപ്പന്റിൽ നിന്ന് ഒരൊറ്റ "ഇല്ല" വോട്ട് ലഭിക്കുകയാണെങ്കിൽ, അല്ലെങ്കിൽ ഒരു പാർട്ടിസിപ്പന്റിൽ നിന്നുള്ള പ്രതികരണത്തിനായി കാത്തിരുന്ന് ടൈംഔട്ട് ആകുകയാണെങ്കിൽ, കോർഡിനേറ്റർ ട്രാൻസാക്ഷൻ റോൾബാക്ക് ചെയ്യാൻ തീരുമാനിക്കുന്നു.

  1. കോർഡിനേറ്റർ ഒരു റോൾബാക്ക് റിക്വസ്റ്റ് അയയ്ക്കുന്നു: കോർഡിനേറ്റർ എല്ലാ പാർട്ടിസിപ്പന്റുകൾക്കും ഒരു "റോൾബാക്ക്" സന്ദേശം അയയ്ക്കുന്നു.
  2. പാർട്ടിസിപ്പന്റുകൾ റോൾബാക്ക് ചെയ്യുന്നു: ഓരോ പാർട്ടിസിപ്പന്റും റോൾബാക്ക് റിക്വസ്റ്റ് സ്വീകരിക്കുകയും ട്രാൻസാക്ഷന് തയ്യാറെടുക്കുന്നതിനായി വരുത്തിയ എല്ലാ മാറ്റങ്ങളും പഴയപടിയാക്കുകയും ചെയ്യുന്നു.
  3. പാർട്ടിസിപ്പന്റുകൾ അറിയിപ്പ് നൽകുന്നു: ഓരോ പാർട്ടിസിപ്പന്റും റോൾബാക്ക് ഓപ്പറേഷൻ വിജയകരമായിരുന്നുവെന്ന് സ്ഥിരീകരിക്കുന്നതിന് കോർഡിനേറ്ററിലേക്ക് ഒരു അറിയിപ്പ് സന്ദേശം അയയ്ക്കുന്നു.
  4. കോർഡിനേറ്റർ പൂർത്തിയാക്കുന്നു: എല്ലാ പാർട്ടിസിപ്പന്റുകളിൽ നിന്നും അറിയിപ്പുകൾ ലഭിച്ചുകഴിഞ്ഞാൽ, കോർഡിനേറ്റർ ട്രാൻസാക്ഷൻ പൂർത്തിയായതായി അടയാളപ്പെടുത്തുന്നു.

വിശദീകരണ ഉദാഹരണം: ഇ-കൊമേഴ്‌സ് ഓർഡർ പ്രോസസ്സിംഗ്

ഒരു ഓർഡർ ഇൻവെന്ററി ഡാറ്റാബേസ് അപ്‌ഡേറ്റ് ചെയ്യുകയും ഒരു പ്രത്യേക പേയ്‌മെന്റ് ഗേറ്റ്‌വേ വഴി പേയ്‌മെന്റ് പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്ന ഒരു ഇ-കൊമേഴ്‌സ് സിസ്റ്റം പരിഗണിക്കുക. ഇവ ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനിൽ പങ്കെടുക്കേണ്ട രണ്ട് പ്രത്യേക സിസ്റ്റങ്ങളാണ്.

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

ടു-ഫേസ് കമ്മിറ്റിന്റെ ഗുണങ്ങൾ

ടു-ഫേസ് കമ്മിറ്റിന്റെ ദോഷങ്ങൾ

ടു-ഫേസ് കമ്മിറ്റിന് പകരമുള്ളവ

2PC-യുടെ പരിമിതികൾ കാരണം, ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനുകൾ കൈകാര്യം ചെയ്യുന്നതിനായി നിരവധി ബദൽ സമീപനങ്ങൾ ഉയർന്നുവന്നിട്ടുണ്ട്. അവയിൽ ഉൾപ്പെടുന്നവ:

ടു-ഫേസ് കമ്മിറ്റിന്റെ പ്രായോഗിക ഉപയോഗങ്ങൾ

പരിമിതികൾക്കിടയിലും, ശക്തമായ സ്ഥിരത ഒരു നിർണായക ആവശ്യകതയായ വിവിധ സാഹചര്യങ്ങളിൽ 2PC ഇപ്പോഴും ഉപയോഗിക്കുന്നു. ചില ഉദാഹരണങ്ങൾ ഉൾപ്പെടുന്നു:

ടു-ഫേസ് കമ്മിറ്റ് നടപ്പിലാക്കൽ

2PC നടപ്പിലാക്കുന്നതിന് വിവിധ ഘടകങ്ങളെക്കുറിച്ച് ശ്രദ്ധാപൂർവ്വം പരിഗണിക്കേണ്ടതുണ്ട്, അവയിൽ ഉൾപ്പെടുന്നവ:

ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനുകൾക്കുള്ള ആഗോള പരിഗണനകൾ

ഒരു ആഗോള പരിതസ്ഥിതിയിൽ ഡിസ്ട്രിബ്യൂട്ടഡ് ട്രാൻസാക്ഷനുകൾ രൂപകൽപ്പന ചെയ്യുകയും നടപ്പിലാക്കുകയും ചെയ്യുമ്പോൾ, നിരവധി അധിക ഘടകങ്ങൾ പരിഗണിക്കേണ്ടതുണ്ട്:

ഉപസംഹാരം

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