มีคำถามเกี่ยวกับรายละเอียดแบบจำลองของ couchbase

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

ฉันสรุปคำถามของฉันดังนี้

1 ค่าสูงสุดของหมายเลขจำลองใน couchbase คือ 3 ถูกหรือผิด? ถ้าผิดมันจะใหญ่กว่า 3 ได้อย่างไร

2 ฉันเดาว่าควรเลือกทั้งสามโหนดแบบสุ่ม แต่สามารถเลือกด้วยตนเองได้หรือไม่

3 หากความเข้าใจของฉันถูกต้อง ข้อมูลจะสูญหายเมื่อเราพบว่าบางโหนดอยู่ในช่วงหยุดทำงาน เราจะหลีกเลี่ยงการสูญเสียภายใต้เงื่อนไขนั้นได้อย่างไร


person user3168625    schedule 22.05.2014    source แหล่งที่มา


คำตอบ (1)


ค่าสูงสุดของหมายเลขจำลองใน couchbase คือ 3 ถูกหรือผิด? ถ้าผิด มันจะใหญ่กว่า 3 ได้อย่างไร

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

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

ระบบของ Couchbase นั้นดีเพราะหมายความว่าคุณสามารถขยายขนาดขึ้นและลงได้โดยการล้มเหลวบนโหนดและการปรับสมดุลใหม่อัตโนมัติ

ฉันเดาว่าควรเลือกโหนดทั้งสามแบบสุ่ม แต่ฉันสามารถเลือกด้วยตนเองได้หรือไม่

คุณไม่ได้บอกว่ามีการจำลองโหนดใดบ้าง อันที่จริงฉันคิดว่ามันเป็นสิ่งที่ดีที่กระบวนการแบ่งส่วนและการจำลองทั้งหมดของ Couchbase ถูกนำออกจากมือของนักพัฒนา มันเป็นกระบวนการอัตโนมัติทั้งหมด

หากความเข้าใจของฉันถูกต้อง ข้อมูลจะสูญหายเมื่อเราพบว่าบางโหนดอยู่ในช่วงหยุดทำงาน เราจะหลีกเลี่ยงการสูญเสียข้อมูลภายใต้เงื่อนไขดังกล่าวได้อย่างไร?

ดังที่ผมได้กล่าวไว้ก่อนหน้านี้ หากโหนดใดโหนดหนึ่งล่ม แบบจำลองจะได้รับการเลื่อนระดับ โดยการสำรองข้อมูล 3 รายการ คุณจะต้องมี 3 โหนดจึงจะล้มเหลวก่อนที่คุณจะสังเกตเห็นว่ามีบางอย่างเกิดขึ้น ในสภาพแวดล้อมการใช้งานจริง คุณควรมีระบบเตือนสำหรับแต่ละโหนดอยู่แล้ว ไม่ว่าจะเป็น New Relic, Nagios ฯลฯ ที่จะรายงานว่าเซิร์ฟเวอร์เสียหายหรือไม่ หากมีปัญหาร้ายแรงและคุณสูญเสียโหนดมากกว่า 4 โหนด ใช่แล้ว คุณจะสูญเสียข้อมูล

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

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

หวังว่าจะช่วยได้!

person scalabilitysolved    schedule 22.05.2014