ไฟล์ CDB คืออะไร??
ไฟล์ CDB ใช้ในแอปพลิเคชันที่สำคัญต่อภารกิจ เช่น อีเมล CDB ย่อมาจาก “ฐานข้อมูลคงที่” ซึ่งเป็นแพ็คเกจที่รวดเร็ว เชื่อถือได้ และเรียบง่ายสำหรับการสร้างหรืออ่านฐานข้อมูลคงที่ การเปลี่ยนฐานข้อมูลจะปลอดภัยต่อการล่มของระบบ ผู้ใช้ไม่ต้องหยุดชั่วคราวระหว่างเขียนใหม่ CDB ทำหน้าที่เป็นอาร์เรย์ที่เชื่อมโยง (บนดิสก์) การแมปคีย์กับค่า และช่วยให้เก็บค่าหลายค่าไว้ในคีย์เดียว
รูปแบบไฟล์ CDB
รูปแบบไฟล์ CDB เก็บตัวเลข ค่าออฟเซ็ต ความยาว และค่าแฮชในรูปแบบ little endian เป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ คีย์และข้อมูลถือเป็นสตริงไบต์ทึบแสงโดยไม่มีการดูแลเป็นพิเศษ ที่จุดเริ่มต้นของฐานข้อมูล ส่วนหัวขนาดคงที่แสดงตารางแฮช 256 ตารางโดยแสดงตำแหน่งภายในไฟล์และความยาวในช่อง โดยปกติแล้ว ข้อมูลจะถูกจัดเก็บเป็นลำดับของระเบียน แต่ละระเบียนจะจัดเก็บความยาวของคีย์ ความยาวข้อมูล คีย์ และข้อมูล ไม่มีกฎการเรียงลำดับหรือการจัดตำแหน่ง ระเบียนจะตามด้วยชุดตารางแฮช 256 ตารางที่มีความยาวต่างกัน เนื่องจากศูนย์เป็นความยาวที่ถูกต้อง อาจมีตารางแฮชน้อยกว่า 256 ตารางที่จัดเก็บไว้ในฐานข้อมูล แต่ไม่มีสิ่งใดที่ถือว่าเป็น 256 ตาราง ตารางแฮชประกอบด้วยชุดของช่อง ซึ่งแต่ละช่องมีค่าแฮชและค่าออฟเซ็ตของเรกคอร์ด “ช่องว่าง” มีออฟเซ็ตเป็นศูนย์
โครงสร้าง
ฐานข้อมูล CDB ประกอบด้วยชุดข้อมูลทั้งหมดในไฟล์คอมพิวเตอร์เครื่องเดียว ประกอบด้วยสามส่วน:
- ส่วนหัวที่มีขนาดคงที่
- ข้อมูล
- ชุดของตารางแฮช
การค้นหาใช้ได้กับคีย์ที่แน่นอนเท่านั้น การค้นหาดำเนินการโดยใช้อัลกอริทึมต่อไปนี้:
- แฮชคีย์
- พิจารณาว่าตารางแฮชและช่องบันทึกนี้ควรอยู่ที่ใด
- ทดสอบสล็อตที่ระบุในตารางแฮช
สำหรับการค้นหาคีย์ที่มีค่ามากกว่าหนึ่งค่า อาจพบค่าเพิ่มเติมได้โดยทำการค้นหาต่อที่ช่องถัดไป
คุณสมบัติ
โครงสร้างฐานข้อมูล CDB มีคุณสมบัติหลายประการ:
ค้นหาอย่างรวดเร็ว
การค้นหาที่สำเร็จในฐานข้อมูลขนาดใหญ่โดยปกติจะใช้การเข้าถึงดิสก์เพียงสองครั้ง และการค้นหาที่ไม่สำเร็จจะใช้เพียงครั้งเดียว
ค่าใช้จ่ายต่ำ
ฐานข้อมูลใช้ 2048 ไบต์ 24 ไบต์ต่อระเบียนและพื้นที่สำหรับคีย์และข้อมูล
ไม่มีขีดจำกัดในการสุ่ม
CDB สามารถจัดการฐานข้อมูลใด ๆ ได้ถึง 4 กิกะไบต์ เนื่องจากไม่มีข้อจำกัดอื่น ๆ บันทึกจึงไม่จำเป็นต้องพอดีกับหน่วยความจำ ฐานข้อมูลถูกจัดเก็บในรูปแบบที่ไม่ขึ้นกับเครื่อง
การเปลี่ยนฐานข้อมูลอะตอมอย่างรวดเร็ว
คำสั่ง cdbmake สามารถเขียนฐานข้อมูลทั้งหมดใหม่เป็นสองลำดับขนาด ซึ่งเร็วกว่าแพ็กเกจแฮชอื่นๆ
การทิ้งฐานข้อมูลอย่างรวดเร็ว
cdbdump สามารถพิมพ์เนื้อหาของฐานข้อมูลในรูปแบบที่เข้ากันได้กับ cdbmake