ලොව පුරා Software Developers ලා,

Mic
By Mic

බහුතරයක් තමන්ගේ Codebase එක කළමනාකරණය කරගන්න භාවිත කරන්නේ Git කියන Version Control System එක වුණත්, Meta (Facebook) සමාගම තමන්ගේ ප්‍රධාන Monorepo එක සඳහා සාමාන්‍ය Git භාවිත කරන්නේ නෑ..

2012 වසර වන විටත් Facebook හි ප්‍රධාන Codebase එක Linux Kernel එකටත් වඩා කිහිප ගුණයකින් විශාල වී තිබුණු අතර, දහස් ගණනක් වූ ඉංජිනේරුවන් දිනකට දෙවරක් Code Production එකට නිකුත් කිරීමේ සංස්කෘතියක් පවත්වාගෙන ගියා..

ඒ අනුව සිදුවූ වේගවත් වර්ධනය හමුවේ සාමාන්‍ය Git Command එකක් ක්‍රියාත්මක වීමට පවා විනාඩි 45කට වඩා වැඩි කාලයක් ගතවන මට්ටමට පද්ධතිය මන්දගාමී වීමේ දැවැන්ත අවදානමක් මතුවුණා.. Git මඟින් සෑම ක්‍රියාවලියකදීම Repo එකේ ඇති සෑම ෆයිල් එකකම Stat පරීක්ෂා කිරීම (check the status of) මෙයට ප්‍රධානතම හේතුව වුණා..

මේ සඳහා විසඳුමක් ලෙස Git maintainersලා යෝජනා කළේ Codebase එක කුඩා Repositories කිහිපයකට වෙන් කරන ලෙසයි.. නමුත් Meta සමාගම Monorepo ආකෘතියට දැඩි ලෙස ගරු කළ බැවින් එම යෝජනාව ප්‍රතික්ෂේප වුණා..

සමස්ත පද්ධතියම එකම ස්ථානයක පැවතීම නිසා සංකීර්ණ Dependencies කළමනාකරණය කිරීම පහසු වීම, එකවර මුළු Codebase එක පුරාම සිදුකරන Refactoring පහසුවෙන් කළ හැකි වීම සහ Continuous Integration පහසු වීම ඊට හේතු වුණා.. එමෙන්ම C සහ Shell Scripts වලින් ලියැවුණු Git හි අභ්‍යන්තර ව්‍යුහය Meta හි අවශ්‍යතාවයට අනුව වේගයෙන් Modify කිරීමද අභියෝගයක් වුණා..

මේ නිසා Meta ඉංජිනේරුවන් Python පදනම් කරගත්, වඩාත් Modular ව්‍යුහයක් සහිත Mercurial නම් Version Control System එක දෙසට යොමු වුණා.. Mercurial හි Developer Community එක සමඟ ඉතා සමීපව කටයුතු කළ Meta සමාගම, සිය පද්ධතියට ගැලපෙන ලෙස එය සුවිශේෂී ලෙස වෙනස් කළා..

එහිදී Watchman නම් Filesystem Monitor එක එකතු කිරීම මඟින් සෑම File එකක්ම Scan කිරීම වළක්වා status පරීක්ෂාව 5 ගුණයකින් වේගවත් කළ අතර, Remotefilelog Extension එක හරහා අවශ්‍ය වෙලාවට පමණක් File Contents ලබාගැනීමට සැලැස්වීමෙන් Clone සහ Pull operations 10 ගුණයකින් වේගවත් කිරීමට ඔවුන් සමත් වුණා..

කාලයත් සමඟ මෙම නවීකරණය කරන ලද Mercurial පද්ධතිය “Sapling SCM” ලෙස සම්පූර්ණයෙන්ම නව, ස්වාධීන පද්ධතියක් බවට පරිවර්තනය වුණා.. Meta සමාගම විසින් 2022දී open-source කරන ලද මෙම Sapling SCM පද්ධතිය Git-compatible වන අතර, Mononoke නම් Scalable Server එක සහ EdenFS නම් Virtual Filesystem එක සමඟ එකතු වී කෝටි ගණනක් වන Meta හි Files සහ Commits කිසිදු ප්‍රමාදයකින් තොරව හසුරුවනවා..

මෙලෙස තමන්ගේම තාක්ෂණික සංස්කෘතිය සහ අවශ්‍යතාවයන්ට මුල්තැන දෙමින් Meta සමාගම සාමාන්‍ය Git වෙනුවට තමන්ගේම සුවිශේෂී Source Control Stack එකක් නිර්මාණය කර ගැනීමට කටයුතු කර තිබෙනවා..

උපුටා ගැනීම :Dinith Maleesha

Share This Article