ඔබේ කුඩා CLI යෙදුමක් config.json ගොනුව කියවා, එක් ක්ෂේත්රයක් වෙනස් කර, නැවත ගොනුව ලියනවා. මෙහි කේතය සාමාන්යයෙන් await writeFile(path, JSON.stringify(next, null, 2)) වගේ සරලයි. නමුත් ලිවීමේ මධ්යයේ Ctrl‑C හෝ විදුලිය අතුරුදන් වීමක් සිදු වුවහොත්, ගොනුව අඩු පරිමාණයක් (උදා: 347 බයිට්) පමණක් ඉතිරි වේ. ඉදිරි වරට ඒ ගොනුව කියවීමට උත්සාහ කළාම JSON විග්රහය අසාර්ථක වන අතර, සැකසීමට ගත වූ කාලය ප්රතිසාධනයකට පත්වේ.
මෙම ගැටලුවේ මූලික හේතුව, පරණ ගොනුව මකා දමා, නව දත්ත ලිවීමට පටන් ගැනීමයි. ලිවීම පූර්ණ නොවූ අවස්ථාවක, පරණ වලංගු තත්වය අතුරුදන් වේ. ඒ නිසා, පූර්ණයෙන් පරණ සංස්කරණය හෝ පූර්ණයෙන් නව සංස්කරණය යන දෙකෙන් එකක් පමණක් ඉතිරි විය යුතුයි – මිශ්ර අර්ධ-ගොනු නොවේ.
ඇත්තටම ආරක්ෂිත ක්රමයක් වන්නේ, පළමුව සම්පූර්ණ JSON අන්තර්ගතය තාවකාලික ගොනුවකට ලියනවා, ඒ ගොනුව fsync කර පද්ධතියේ දත්ත ස්ථිර කරගැනීම, පසුදා rename ක්රියාව භාවිතා කර තාවකාලික ගොනුව පළමු ගොනුවට ආදාල කරගැනීමයි. මෙම rename ක්රියාව එකම ගොනු පද්ධතිය තුළ සිදු වීම නිසා, ගොනු නාමය පරණ තත්ත්වයෙන් නව තත්ත්වයට මාරු වන “කමිට්” ලක්ෂණය ලබා දේ. මෙය Node.js පරිසරයේ පහත කේත උදාහරණය මඟින් ඉතා සරලව කරගත හැක.
ශ්රී ලංකාවට ඇති වැදගත්කම
- දේශීය සංවර්ධකයන්ට – සංකීර්ණ සේවා මට්ටමක් නොඅඩුව, CLI මෙවලම් ලියන විට ගොනු නාස්තියෙන් බේරාගත හැකිය.
- විද්යාල, විශ්වවිද්යාල සිසුන්ට – ප්රායෝගික පරික්ෂණවලදී දත්ත අස්ථාවරතාවය වැළැක්වීම, වැඩ පටුනේදී අඩංගු අඩුපාඩු හඳුනා ගැනීමට උදව්.
- ව්යාපාරික ආයතනවලට – සේවා අවධි කාලය කෙටි කර, අච්චු ගොනු නිසා සිදුවන අවාසනාවන්ත අඩුපාඩු වැළැක්වීමෙන් වගකීම් හා පිරිවැය අඩු වේ.
අවසන් වශයෙන්, සරල CLI වැඩසටහන් සඳහා පවා අධි-ආරක්ෂිත ලිවීමේ ක්රමයක් අනුගමනය කිරීම, සංවර්ධන කාලය කෙටි කර, පද්ධතියේ විශ්වාසනීයතාවය වැඩි කරයි. ඔබේ ව්යාපෘතියේ config ගොනුවක් අඩු වීමේ අවදානමක් තිබේ නම්, ඉහත පියවර අනුගමනය කර බලන්න.