Original Title: Cognitive erasure-coded data update and repair for mitigating I/O overhead
Source: doi.org/10.21203/rs.3.rs-5794537/v1
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការធ្វើបច្ចុប្បន្នភាព និងការជួសជុលទិន្នន័យដោយប្រើកូដលុបបំបាត់បែបយល់ដឹង ដើម្បីកាត់បន្ថយបន្ទុក I/O

ចំណងជើងដើម៖ Cognitive erasure-coded data update and repair for mitigating I/O overhead

អ្នកនិពន្ធ៖ Bing Wei (Hainan University), Ming Zhong (Hainan University), Qian Chen (Hainan University), Yi Wu (Hainan University), Yubin Li (Hainan University)

ឆ្នាំបោះពុម្ព៖ 2025 (Research Square)

វិស័យសិក្សា៖ Computer Science

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ប្រព័ន្ធផ្ទុកទិន្នន័យដែលប្រើកូដលុបបំបាត់ (Erasure-coded storage systems) ជួបប្រទះបញ្ហាបន្ទុក I/O ខ្ពស់ដោយសារប្រតិបត្តិការ 'អានបន្ទាប់ពីសរសេរ' (read-after-write) និងចំណាយពេលយូរក្នុងការស្វែងរកថាស (disk seek) កំឡុងពេលជួសជុលទិន្នន័យ។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវវិធីសាស្ត្រធ្វើបច្ចុប្បន្នភាព និងជួសជុលបែបយល់ដឹង (CURM) ដែលត្រូវបានរចនាឡើងដើម្បីកាត់បន្ថយបន្ទុកប្រតិបត្តិការ ដោយពឹងផ្អែកលើការវិភាគប្រភេទឯកសារ។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
FL (Full Logging)
វិធីសាស្ត្រកត់ត្រាពេញលេញ
មានល្បឿនសរសេរដំបូងលឿនដោយសារវាប្រើប្រាស់យន្តការ log-append ទាំងសម្រាប់ទិន្នន័យ និង Parity។ ដំណើរការស្តារទិន្នន័យយឺតខ្លាំង ហើយមានបន្ទុកស្វែងរកថាស (disk seek) ខ្ពស់នៅពេលអានទិន្នន័យ ព្រមទាំងស៊ីទំហំផ្ទុកច្រើន។ ដើរតួជាកម្រិតគោល (Baseline) ដែលមានពេលជួសជុល និងកម្រិតស៊ីទំហំផ្ទុក (Storage overhead) ខ្ពស់បំផុត។
PL (Parity Logging)
វិធីសាស្ត្រកត់ត្រា Parity
ជួយធ្វើឱ្យមានតុល្យភាពរវាងប្រតិបត្តិការអាន និងសរសេរ ដោយប្រើការធ្វើបច្ចុប្បន្នភាពនៅនឹងកន្លែង (in-place) សម្រាប់ទិន្នន័យចាស់។ នៅតែត្រូវការពេលវេលាច្រើនក្នុងការស្វែងរកទីតាំងថាស (disk seek) កំឡុងពេលធ្វើបច្ចុប្បន្នភាព Parity។ ទំហំផ្ទុកប្រើប្រាស់ទាបជាង FL ចន្លោះពី ០.៨៧ ទៅ ០.៩៥ ដង តែល្បឿនជួសជុលនៅមានកម្រិត។
PLR (Parity Logging with Reserved Space)
វិធីសាស្ត្រកត់ត្រា Parity ដោយបម្រុងទុកទំហំ
កាត់បន្ថយចម្ងាយក្នុងការស្វែងរកថាសដោយបម្រុងទុកទំហំផ្ទុកនៅជាប់នឹង Parity block សម្រាប់ផ្ទុកទិន្នន័យថ្មី។ ទាមទារទំហំផ្ទុក (Storage overhead) ខ្ពស់ជាង PL ហើយកើនឡើងយ៉ាងគំហុកនៅពេលប្រើប្រាស់រយៈពេលយូរ។ ល្បឿនជួសជុលលឿនជាង PL ប៉ុន្តែមានបញ្ហាកើនឡើងទំហំផ្ទុកខ្ពស់ (Storage waste)។
PARIX
វិធីសាស្ត្រសរសេរដោយផ្នែកផ្អែកលើទិន្នន័យខុសគ្នា
ប្រើប្រាស់ភាពខុសគ្នានៃទិន្នន័យ (Data difference) ដើម្បីកាត់បន្ថយបន្ទុកនៅពេលធ្វើបច្ចុប្បន្នភាព Parity។ ល្បឿនជួសជុលយឺតជាង PLR ដោយសារតែត្រូវអានទិន្នន័យក្នុងទំហំច្រើនជាងមុនកំឡុងពេលស្តារទិន្នន័យបាត់បង់។ មានដំណើរការល្អមធ្យម តែនៅចាញ់ប្រៀបវិធីសាស្ត្រ CURM ទាំងផ្នែក Throughput និង Recovery time។
CURM (Proposed)
វិធីសាស្ត្រធ្វើបច្ចុប្បន្នភាព និងជួសជុលបែបយល់ដឹង (ស្នើឡើង)
កាត់បន្ថយបន្ទុក I/O យ៉ាងមានប្រសិទ្ធភាពដោយប្រើ Machine Learning ដើម្បីចាត់ថ្នាក់ឯកសារ និងប្រើការធ្វើបច្ចុប្បន្នភាពស្របគ្នា។ តម្រូវឱ្យមានការបង្ហាត់ម៉ូដែល Machine Learning ជាមុន ដែលអាចបន្ថែមភាពស្មុគស្មាញដល់ប្រព័ន្ធគ្រប់គ្រងទិន្នន័យ។ បង្កើន IOPS បាន ៨២.៥២% និងកាត់បន្ថយពេលស្តារទិន្នន័យបាន ៤៧.៤៧% ធៀបនឹង PARIX ព្រមទាំងរក្សាទំហំផ្ទុកទាបក្នុងរយៈពេលយូរ។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអនុវត្តវិធីសាស្ត្រ CURM ទាមទារឱ្យមានហេដ្ឋារចនាសម្ព័ន្ធម៉ាស៊ីនមេ (Server cluster) ដែលមានសមត្ថភាពខ្ពស់ និងតម្រូវការផ្នែកទន់ដើម្បីគាំទ្រ Machine Learning។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះប្រើប្រាស់ទិន្នន័យកត់ត្រា (Traces) ពីសាកលវិទ្យាល័យ Harvard និងស្ថាប័ន Microsoft Research ដែលតំណាងឱ្យបរិបទសហគ្រាសខ្នាតធំនៅលោកខាងលិច ហើយភាគច្រើនផ្ដោតលើការសរសេរទិន្នន័យតូចៗ (ក្រោម 128 KB)។ សម្រាប់ប្រទេសកម្ពុជា ដែលស្ថាប័នភាគច្រើនជាសហគ្រាសធុនតូចនិងមធ្យម (SMEs) ឬក្រសួងដែលទើបចាប់ផ្ដើមធ្វើឌីជីថលូបនីយកម្ម ទម្រង់និងទំហំនៃការបញ្ជូនទិន្នន័យប្រចាំថ្ងៃអាចមានលក្ខណៈខុសប្លែកពីនេះ ដែលតម្រូវឱ្យមានការវាយតម្លៃឡើងវិញលើការបង្វឹកម៉ូដែល Machine Learning។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

វិធីសាស្ត្រ CURM នេះមានសក្ដានុពលខ្ពស់សម្រាប់ស្ថាប័នធំៗក្នុងប្រទេសកម្ពុជាដែលកំពុងកសាងមជ្ឈមណ្ឌលទិន្នន័យ (Data Centers) និងប្រព័ន្ធផ្ទុកទិន្នន័យក្លោដ។

សរុបមក បច្ចេកវិទ្យានេះមានសារៈសំខាន់សម្រាប់ការធ្វើឱ្យប្រសើរឡើងនូវភាពធន់និងប្រសិទ្ធភាពនៃហេដ្ឋារចនាសម្ព័ន្ធឌីជីថលកម្រិតធ្ងន់នៅកម្ពុជា ជាពិសេសក្នុងយុគសម័យទិន្នន័យធំ (Big Data)។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃប្រព័ន្ធផ្ទុកទិន្នន័យចែកចាយ: អ្នកស្រាវជ្រាវគួរសិក្សាពីគោលការណ៍នៃ Erasure Coding ជាពិសេស Reed-Solomon Codes និងស្ថាបត្យកម្មប្រព័ន្ធឯកសារចែកចាយឈានមុខដូចជា HDFSCeph
  2. អនុវត្តការចាត់ថ្នាក់ទិន្នន័យដោយប្រើ Machine Learning: សិក្សា និងសរសេរកូដប្រើប្រាស់បណ្ណាល័យ Scikit-learn ក្នុងភាសា Python ដើម្បីសាងសង់ម៉ូដែល Decision Tree សម្រាប់ការចាត់ថ្នាក់ប្រភេទឯកសារផ្អែកលើលក្ខណៈ (Features) របស់វា (ទំហំ, ប្រភេទ, ភាពញឹកញាប់នៃការអានសរសេរ)។
  3. ស្វែងយល់ពីបច្ចេកទេសគ្រប់គ្រង I/O និង Log: សិក្សាពីការគ្រប់គ្រងការសរសេរទិន្នន័យទៅកាន់ថាសរឹង (Log-append ប្រៀបធៀបជាមួយ In-place updates) ព្រមទាំងការប្រើប្រាស់ Linux I/O APIs ដើម្បីវិភាគបញ្ហាបន្ទុក I/O Amplification។
  4. កសាងប្រព័ន្ធគំរូ និងធ្វើតេស្តសាកល្បងកម្រិតមូលដ្ឋាន: បង្កើតប្រព័ន្ធផ្ទុកទិន្នន័យខ្នាតតូច (Prototype) ដោយប្រើប្រាស់ Docker containers ដើម្បីត្រាប់តាម Node ចែកចាយ រួចដំណើរការសាកល្បងដោយប្រើ MSR Cambridge Traces ដើម្បិវាស់វែងល្បឿន IOPS និង Recovery time។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Erasure Coding (EC) ជាបច្ចេកទេសការពារទិន្នន័យក្នុងប្រព័ន្ធផ្ទុក ដែលបំបែកឯកសារជាចំណែកតូចៗ រួចបង្កើតចំណែកទិន្នន័យបន្ថែម (Parity) ដើម្បីអាចស្តារឯកសារដើមមកវិញបាន ក្នុងករណីមានថាសរឹងណាមួយខូច។ ដូចជាការសរសេរសំបុត្រមួយច្បាប់ចែកជា៣ផ្នត់ផ្ញើទៅតាមឡាន៣ផ្សេងគ្នា ហើយទោះបីឡាន១ខូច ក៏អ្នកនៅតែអាចទាយដឹងពីអត្ថន័យសំបុត្រទាំងមូលតាមរយៈ២ផ្នត់ដែលនៅសល់។
I/O Amplification ជាបាតុភូតដែលការសរសេរឬកែប្រែទិន្នន័យទំហំតូចមួយ បង្កឱ្យប្រព័ន្ធត្រូវអាននិងសរសេរទិន្នន័យផ្សេងទៀត (ដូចជា Parity) ក្នុងទំហំធំជាងទិន្នន័យដើមច្រើនដង ដែលធ្វើឱ្យប្រព័ន្ធដើរយឺត។ ដូចជាអ្នកចង់លុបអក្សរមួយពាក្យលើសៀវភៅ តែអ្នកត្រូវបង្ខំចិត្តចម្លងអត្ថបទទាំងមូលទៅទំព័រថ្មី ទើបអាចលុបពាក្យនោះចេញបាន។
Parity Delta ជាតម្លៃភាពខុសគ្នារវាងទិន្នន័យចាស់ និងទិន្នន័យថ្មី ដែលប្រព័ន្ធប្រើដើម្បីគណនា និងកែប្រែចំណែក Parity ឡើងវិញ ដោយមិនចាំបាច់អានទិន្នន័យទាំងអស់ក្នុងប្លុកឡើងវិញឡើយ។ ដូចជាការគណនាប្រាក់សរុបប្រចាំខែ ដែលអ្នកគ្រាន់តែបូកថែមប្រាក់ដែលរកបានថ្មី ជំនួសឱ្យការរាប់លុយទាំងអស់តាំងពីដើមខែឡើងវិញ។
Decision Tree ជាក្បួនម៉ាស៊ីនរៀន (Machine Learning) ដែលធ្វើការសម្រេចចិត្តជាជំហានៗដូចជាមែកធាង ដើម្បីចាត់ថ្នាក់ឯកសារថាជាប្រភេទសម្រាប់តែអាន សម្រាប់តែសរសេរ ឬទាំងពីរ។ ដូចជាការលេងហ្គេមសួរសំណួរ 'មែន ឬទេ' ជាបន្តបន្ទាប់ ដើម្បីទាយឱ្យដឹងថាតើវត្ថុដែលអ្នកកំពុងគិតនោះគឺជាអ្វី។
Read-after-write ជាប្រតិបត្តិការដែលប្រព័ន្ធតម្រូវឱ្យអានទិន្នន័យចាស់ចេញពីថាសរឹងសិន មុននឹងអាចសរសេរទិន្នន័យថ្មីចូល និងធ្វើបច្ចុប្បន្នភាព Parity ដែលបង្កឱ្យមានភាពយឺតយ៉ាវ។ ដូចជាអ្នកត្រូវបើកសៀវភៅអានមើលអត្ថន័យចាស់សិន មុននឹងអាចសរសេរអត្ថន័យថ្មីជាន់ពីលើ ឬកែប្រែវាបាន។
Disk Seek Overhead គឺជាពេលវេលាដែលក្បាលអានរបស់ថាសរឹង (Hard Disk) ត្រូវចំណាយក្នុងការផ្លាស់ទីទៅរកទីតាំងពិតប្រាកដនៃទិន្នន័យដែលនៅរាយប៉ាយលើថាស មុននឹងអាចអាន ឬសរសេរបាន។ ដូចជាពេលដែលអ្នកចំណាយពេលបើកត្រឡប់ទំព័រសៀវភៅចុះឡើង ដើម្បីរកមើលទំព័រដែលអ្នកចង់អាន ជាជាងការអាចអានដោយផ្ទាល់។
Log-based Append ជាវិធីសាស្ត្រសរសេរទិន្នន័យថ្មីបន្តបន្ទាប់គ្នានៅចុងបញ្ចប់នៃកំណត់ត្រា (Log) ជានិច្ច ជំនួសឱ្យការសរសេរជាន់ពីលើទិន្នន័យចាស់ ដែលជួយឱ្យការសរសេរមានល្បឿនលឿន។ ដូចជាការសរសេរកំណត់ហេតុប្រចាំថ្ងៃ ដោយគ្រាន់តែសរសេរបន្តបន្ទាត់ចុះក្រោមជារៀងរាល់ថ្ងៃ ដោយមិនត្រឡប់ទៅលុប ឬកែប្រែទំព័រចាស់។
Maximum Distance Separable (MDS) codes ជាប្រភេទកូដលុបបំបាត់ (ដូចជា Reed-Solomon) ដែលផ្តល់នូវតុល្យភាពល្អបំផុតរវាងកម្រិតសុវត្ថិភាពទិន្នន័យ និងកម្រិតស៊ីទំហំផ្ទុក ដែលវាអនុញ្ញាតឱ្យស្តារទិន្នន័យពេញលេញមកវិញបានដោយប្រើចំនួនប្លុកតិចបំផុត។ ដូចជារូបមន្តវេទមន្តដែលអាចបង្រួមវ៉ាលី១០ ទៅជាវ៉ាលី៥ តែបើទោះជាបាត់វ៉ាលី៣ ក៏អ្នកនៅតែអាចបង្កើតវ៉ាលី១០នោះមកវិញបានពេញលេញ។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖