បញ្ហា (The Problem)៖ ប្រព័ន្ធផ្ទុកទិន្នន័យដែលប្រើកូដលុបបំបាត់ (Erasure-coded storage systems) ជួបប្រទះបញ្ហាបន្ទុក I/O ខ្ពស់ដោយសារប្រតិបត្តិការ 'អានបន្ទាប់ពីសរសេរ' (read-after-write) និងចំណាយពេលយូរក្នុងការស្វែងរកថាស (disk seek) កំឡុងពេលជួសជុលទិន្នន័យ។
វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវវិធីសាស្ត្រធ្វើបច្ចុប្បន្នភាព និងជួសជុលបែបយល់ដឹង (CURM) ដែលត្រូវបានរចនាឡើងដើម្បីកាត់បន្ថយបន្ទុកប្រតិបត្តិការ ដោយពឹងផ្អែកលើការវិភាគប្រភេទឯកសារ។
លទ្ធផលសំខាន់ៗ (The Verdict)៖
| វិធីសាស្ត្រ (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។
ការសិក្សានេះប្រើប្រាស់ទិន្នន័យកត់ត្រា (Traces) ពីសាកលវិទ្យាល័យ Harvard និងស្ថាប័ន Microsoft Research ដែលតំណាងឱ្យបរិបទសហគ្រាសខ្នាតធំនៅលោកខាងលិច ហើយភាគច្រើនផ្ដោតលើការសរសេរទិន្នន័យតូចៗ (ក្រោម 128 KB)។ សម្រាប់ប្រទេសកម្ពុជា ដែលស្ថាប័នភាគច្រើនជាសហគ្រាសធុនតូចនិងមធ្យម (SMEs) ឬក្រសួងដែលទើបចាប់ផ្ដើមធ្វើឌីជីថលូបនីយកម្ម ទម្រង់និងទំហំនៃការបញ្ជូនទិន្នន័យប្រចាំថ្ងៃអាចមានលក្ខណៈខុសប្លែកពីនេះ ដែលតម្រូវឱ្យមានការវាយតម្លៃឡើងវិញលើការបង្វឹកម៉ូដែល Machine Learning។
វិធីសាស្ត្រ CURM នេះមានសក្ដានុពលខ្ពស់សម្រាប់ស្ថាប័នធំៗក្នុងប្រទេសកម្ពុជាដែលកំពុងកសាងមជ្ឈមណ្ឌលទិន្នន័យ (Data Centers) និងប្រព័ន្ធផ្ទុកទិន្នន័យក្លោដ។
សរុបមក បច្ចេកវិទ្យានេះមានសារៈសំខាន់សម្រាប់ការធ្វើឱ្យប្រសើរឡើងនូវភាពធន់និងប្រសិទ្ធភាពនៃហេដ្ឋារចនាសម្ព័ន្ធឌីជីថលកម្រិតធ្ងន់នៅកម្ពុជា ជាពិសេសក្នុងយុគសម័យទិន្នន័យធំ (Big Data)។
ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖
| ពាក្យបច្ចេកទេស | ការពន្យល់ជាខេមរភាសា (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) ដែលផ្តល់នូវតុល្យភាពល្អបំផុតរវាងកម្រិតសុវត្ថិភាពទិន្នន័យ និងកម្រិតស៊ីទំហំផ្ទុក ដែលវាអនុញ្ញាតឱ្យស្តារទិន្នន័យពេញលេញមកវិញបានដោយប្រើចំនួនប្លុកតិចបំផុត។ | ដូចជារូបមន្តវេទមន្តដែលអាចបង្រួមវ៉ាលី១០ ទៅជាវ៉ាលី៥ តែបើទោះជាបាត់វ៉ាលី៣ ក៏អ្នកនៅតែអាចបង្កើតវ៉ាលី១០នោះមកវិញបានពេញលេញ។ |
អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖
ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖