Hacker News

DSQL ทำให้แน่ใจว่าลำดับปรับขนาดได้อย่างไร

DSQL ทำให้แน่ใจว่าลำดับปรับขนาดได้อย่างไร การสำรวจนี้จะเจาะลึกเข้าไปใน dsql โดยตรวจสอบความสำคัญและผลกระทบที่อาจเกิดขึ้น — ระบบปฏิบัติการธุรกิจ Mewayz

1 นาทีอ่าน

Mewayz Team

Editorial Team

Hacker News

DSQL รับประกันการปรับขนาดลำดับในสภาพแวดล้อมแบบกระจายโดยละทิ้งการประสานงานโหนดเดียวแบบเดิมๆ เพื่อสนับสนุนการจัดสรรตามช่วงและการสร้าง ID ที่ขับเคลื่อนด้วยฉันทามติ ขจัดปัญหาคอขวดโดยไม่สูญเสียเอกลักษณ์เฉพาะตัว การทำความเข้าใจวิธีการทำงานนี้ถือเป็นสิ่งสำคัญสำหรับการสร้างทีมแอปพลิเคชันที่ใช้ข้อมูลจำนวนมากซึ่งจำเป็นต้องเติบโตโดยไม่กระทบเพดานโครงสร้างพื้นฐานที่เจ็บปวด

ลำดับฐานข้อมูลคืออะไร และเหตุใดจึงแตกตามขนาด?

ลำดับในฐานข้อมูลเชิงสัมพันธ์คือตัวนับที่สร้างหมายเลขลำดับที่ไม่ซ้ำใคร ซึ่งส่วนใหญ่ใช้สำหรับคีย์หลัก ในโลกที่มีเซิร์ฟเวอร์เดียว นี่เป็นเรื่องเล็กน้อย: โหนดหนึ่งเป็นเจ้าของตัวนับ เพิ่มทีละอะตอม และมอบค่าให้กับใครก็ตามที่ถาม เรียบง่าย เชื่อถือได้ และไม่สามารถอยู่รอดได้อย่างสมบูรณ์ทันทีที่คุณเพิ่มโหนดที่สอง

ปัญหาจะเกิดขึ้นทันทีที่คุณกระจายฐานข้อมูลของคุณไปยังหลายโหนดหรือภูมิภาค ทุกโหนดที่ต้องการค่าลำดับใหม่จะต้องประสานงานกับหน่วยงานกลางเพื่อให้แน่ใจว่าไม่มีสองโหนดที่ให้หมายเลขเดียวกัน ภายใต้ภาระที่เบา การประสานงานนั้นจะมองไม่เห็น ภายใต้ภาระงานหนัก — การแทรกนับล้านครั้งต่อวินาทีทั่วทั้งคลัสเตอร์ที่กระจัดกระจายทางภูมิศาสตร์ — หน่วยงานกลางนั้นจะกลายเป็นจุดควบคุมที่ควบคุมเส้นทางการเขียนทั้งหมดของคุณ

เอ็นจิ้นฐานข้อมูลแบบดั้งเดิมจะแก้ไขสิ่งนี้ด้วยวิธีแก้ปัญหา: การจัดสรรคี่/คู่ต่อโหนด การแบ่งพาร์ติชันช่วงลำดับด้วยตนเอง หรือการละทิ้งลำดับทั้งหมดสำหรับ UUID การประนีประนอมแต่ละครั้งทำให้เกิดความซับซ้อนในการปฏิบัติงาน การเสียสละในการสั่งซื้อการรับประกัน หรือการแลกเปลี่ยนปัญหาคอขวดกับอีกปัญหาหนึ่ง DSQL ใช้แนวทางที่แตกต่างโดยพื้นฐาน

DSQL ใช้การจัดสรรช่วงเพื่อลดการประสานงานอย่างไร

ข้อมูลเชิงลึกหลักที่อยู่เบื้องหลังการปรับขนาดลำดับของ DSQL ก็คือโหนดไม่จำเป็นต้องประสานงานกับทุกค่า แต่เพียงต้องประสานงานในช่วงเท่านั้น แทนที่จะให้แต่ละส่วนแทรกทริกเกอร์การเดินทางไปกลับไปยังหน่วยงานลำดับส่วนกลาง แต่ละโหนดอ้างสิทธิ์บล็อกของค่าลำดับล่วงหน้าและออกค่าเหล่านั้นในเครื่องจนกว่าบล็อกจะหมด

💡 คุณรู้หรือไม่?

Mewayz ทดแทนเครื่องมือธุรกิจ 8+ รายการในแพลตฟอร์มเดียว

CRM · การออกใบแจ้งหนี้ · HR · โปรเจกต์ · การจอง · อีคอมเมิร์ซ · POS · การวิเคราะห์ แผนฟรีใช้ได้ตลอดไป

เริ่มฟรี →

แนวทางนี้เรียกว่าการจัดสรรช่วงหรือการสำรองแบทช์ ช่วยลดจำนวนเหตุการณ์การประสานงานแบบกระจายได้อย่างมาก โหนดที่อ้างสิทธิ์ในช่วง 1,000 ค่าลำดับจะแทนที่การประสานงานไปกลับ 1,000 ครั้งด้วยโหนดเดียว การคำนวณปริมาณงานจะชัดเจนทันที: ลำดับหยุดเป็นปัจจัยจำกัด และการคำนวณหรือการจัดเก็บข้อมูลจะกลายเป็นเพดานที่แท้จริงแทน

"เป้าหมายของการออกแบบลำดับแบบกระจายไม่ใช่การทำให้การประสานงานเร็วขึ้น แต่คือการทำให้การประสานงานเกิดขึ้นได้ยาก DSQL บรรลุระดับไม่ได้โดยการเร่งปัญหาคอขวด แต่โดยการขจัดความจำเป็นอย่างเป็นระบบ"

เมื่อช่วงที่จัดสรรของโหนดหมดลง โหนดจะร้องขอบล็อกใหม่ หากโหนดขัดข้องในช่วงกลาง ค่าที่ไม่ได้ใช้เหล่านั้นจะถูกข้ามไป DSQL ยอมรับช่องว่างในลำดับได้ เนื่องจากการรับประกันเอกลักษณ์มีความสำคัญมากกว่าการรับประกันความต่อเนื่อง ตรรกะของแอปพลิเคชันสมัยใหม่แทบไม่เคยต้องการลำดับที่ไม่มีช่องว่างเลย กำหนดให้ไม่มีสองแถวที่ใช้คีย์เดียวกันร่วมกัน

ฉันทามติแบบกระจายมีบทบาทอย่างไรในความปลอดภัยของลำดับ?

การจัดสรรช่วงช่วยแก้ปัญหาปริมาณงาน แต่นำมาซึ่งความท้าทายใหม่: การป้องกันสองโหนดจากการอ้างสิทธิ์ในช่วงเดียวกันพร้อมกัน นี่คือจุดที่โปรโตคอลฉันทามติแบบกระจาย — โดยทั่วไปคือ Paxos หรือ Raft — กลายเป็นเรื่องสำคัญต่อการรับประกันความถูกต้องของ DSQL

ก่อนที่โหนดใดๆ จะสามารถเริ่มออกค่าจากช่วงใหม่ได้ การจัดสรรช่วงนั้นจะต้องกระทำผ่านชั้นฉันทามติ สมาชิกคลัสเตอร์ส่วนใหญ่ต้องรับทราบการจองก่อนที่โหนดที่ร้องขอจะดำเนินการ สิ่งนี้ทำให้มั่นใจได้ว่าแม้จะมีพาร์ติชั่นเครือข่าย โหนดล้มเหลว หรือการร้องขอช่วงพร้อมกัน ก็จะไม่มีสองโหนดใดที่ทำงานจากช่วงลำดับที่ทับซ้อนกัน

ผลลัพธ์ในทางปฏิบัติคือระบบที่ให้การรับประกันความสอดคล้องของลำดับโหนดเดียวแบบดั้งเดิม ในขณะเดียวกันก็รองรับปริมาณงานการเขียนแนวนอนของสถาปัตยกรรมแบบกระจาย แอปพลิเคชันจะเห็นตัวระบุที่ไม่ซ้ำใครและปราศจากข้อขัดแย้งโดยไม่จำเป็นต้องรู้ใดๆ

Build Your Business OS Today

From freelancers to agencies, Mewayz powers 138,000+ businesses with 207 integrated modules. Start free, upgrade when you grow.

Create Free Account →

ลองใช้ Mewayz ฟรี

แพลตฟอร์มแบบออล-อิน-วันสำหรับ CRM, การออกใบแจ้งหนี้, โครงการ, HR และอื่นๆ ไม่ต้องใช้บัตรเครดิต

เริ่มจัดการธุรกิจของคุณอย่างชาญฉลาดวันนี้

เข้าร่วมธุรกิจ 30,000+ ราย แผนฟรีตลอดไป · ไม่ต้องใช้บัตรเครดิต

พบว่าสิ่งนี้มีประโยชน์หรือไม่? แบ่งปันมัน

พร้อมนำไปปฏิบัติแล้วหรือยัง?

เข้าร่วมธุรกิจ 30,000+ รายที่ใช้ Mewayz แผนฟรีตลอดไป — ไม่ต้องใช้บัตรเครดิต

เริ่มต้นทดลองใช้ฟรี →

พร้อมที่จะลงมือทำหรือยัง?

เริ่มต้นทดลองใช้ Mewayz ฟรีวันนี้

แพลตฟอร์มธุรกิจแบบครบวงจร ไม่ต้องใช้บัตรเครดิต

เริ่มฟรี →

ทดลองใช้ฟรี 14 วัน · ไม่ต้องใช้บัตรเครดิต · ยกเลิกได้ทุกเมื่อ