ข้าม​ไป​ยัง​เนื้อหา

Rust Systems II — สร้าง Key-Value Store ที่​กู้​คืน​จาก​การ​ล่ม​ได้ (kaen-kvstore)

ต่อ​จาก Rust จาก​ศูนย์ (#21): คราว​นี้​เรา​สร้าง​ฐาน​ข้อมูล​จริง — kaen-kvstore ฐาน​ข้อมูล key-value บน​เครือข่าย​ที่​กู้​คืน​จาก​การ​ล่ม​ได้ คือ crash กลางคัน​แล้ว reopen ได้​สถานะ​ที่​ถูกต้อง​กลับ​มา ด้วย​ภาษา​แกน + std เท่านั้น ไม่มี async/tokio ไม่มี serde เรา​ออกแบบ wire protocol เอง​บน std::net → เก็บ​ลง append-only log + hash index แบบ Bitcask → รับประกัน durability ด้วย​ลำดับ write→fsync→ack → เก็บกวาด​พื้นที่​ด้วย tombstones + compaction → รับ​หลาย client ด้วย ThreadPool ที่ share store ด้วย Arc, Mutex และ RwLock → พิสูจน์​ความ​ถูกต้อง​ด้วย crash-consistency test ที่ SIGKILL process จริง → แล้ว benchmark วัด p50/p95/p99 เอง เพื่อ​เห็น "ภาษี fsync" กับ​ตา ทุก​โปรแกรม compile และ​รัน​ได้​จริง ปิด​ท้าย​ด้วย​การ​ส่ง​ไม้​ต่อ​สู่ Distributed Systems (#23) 8 บท​ลงมือ​จริง
ความคืบหน้า0 / 8 บทเรียน