Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ปรับขนาดกระจาย SQL ด้วย ObjectRocket สำหรับ CockroachDB

เผยแพร่ครั้งแรกในเดือนสิงหาคม 2019 ที่ ObjectRocket.com/blog

CockroachDB® เป็นส่วนหนึ่งของเทคโนโลยีฐานข้อมูลในตระกูล Rackspace ObjectRocket ความสามารถในการปรับขนาดของ CockroachDB นั้นน่าตื่นเต้น ด้วยการจำลองและการกระจายข้อมูล (เพิ่มความพร้อมใช้งานสูงสูงสุด) การปรับสมดุลฐานข้อมูลอัตโนมัติ และศูนย์ข้อมูลแบบหลายภูมิศาสตร์ที่รองรับการปฏิบัติตามข้อกำหนดเกี่ยวกับภูมิลำเนาข้อมูล และทั้งหมดนี้มีความสมบูรณ์ของข้อมูลสูงและธุรกรรม ACID แบบกระจายเนื่องจากความยืดหยุ่นของข้อมูลของ CockroachDB เป็นสิ่งที่ต้องมี

เราต้องการแบ่งปันไฮไลท์บางส่วนของการปรับขนาดด้วย CockroachDB และไปดูสิ่งที่Rackspace ObjectRocket เสนอให้ DBaaS ในฐานะนักพัฒนา เมื่อคุณใช้ CockroachDB บนแพลตฟอร์มบริการที่มีการจัดการของเรา คุณสามารถมุ่งเน้นที่การสร้างแอปพลิเคชันของคุณ ไม่ใช่ความซับซ้อนของการรันฐานข้อมูล

ปรับขนาดกระจาย SQL ด้วย ObjectRocket สำหรับ CockroachDB

ทุกวันนี้ การปรับขนาดเป็นสิ่งสำคัญยิ่ง

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

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

การปรับขนาดหมายถึงการเพิ่มทรัพยากรฐานข้อมูลที่จำเป็นขึ้น (หรือลง) เพื่อจัดการกับปริมาณงานปัจจุบันอย่างเหมาะสม ปรับขนาดด้วยวิธีต่อไปนี้:

  • การปรับขนาดแนวตั้ง: เพิ่ม (หรือลบ) RAM พื้นที่เก็บข้อมูล และ CPU ไปยังโหนดพื้นฐานภายในคลัสเตอร์
  • การปรับขนาดแนวนอน: เพิ่มโหนดเพิ่มเติมเมื่อจำเป็นเพื่อจัดการกับภาระงาน (แทนที่จะเพิ่มทรัพยากรให้กับโหนดเดียว)

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

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

อะไรที่ทำให้การปรับขนาด CockroachDB มีความพิเศษ

Derek Johnson ผู้จัดการผลิตภัณฑ์ของ Rackspace ObjectRocket กล่าวว่าแง่มุมที่น่าตื่นเต้นที่สุดของการปรับขนาดของ CockroachDB คือความฉลาดของมัน หลังจากที่คุณสร้างและกำหนดค่าโหนดแรก การเพิ่มโหนดที่ตามมาจะง่ายขึ้น ในสภาพแวดล้อมแบบหลายโหนด คุณสามารถใช้ประโยชน์จากคุณลักษณะที่มีประสิทธิภาพของ CockroachDB ของการปรับขนาดอัตโนมัติ ข้อมูลสมดุล และข้อกำหนดการปฏิบัติตามข้อกำหนดเฉพาะทางภูมิศาสตร์ที่จัดการด้วยตนเอง เพื่อให้การจัดเก็บข้อมูลของคุณเชื่อถือได้ ปฏิบัติตามข้อกำหนด และดำเนินการได้อย่างมีประสิทธิภาพ ด้วยการกำหนดค่าที่เหมาะสมที่สุด คุณสามารถใช้ประโยชน์จากพลังที่แท้จริงของ CockroachDB ตัวอย่างเช่น โดยใช้ —locality ตั้งค่าสถานะเพื่ออธิบายภูมิภาคของโหนดและโซนความพร้อมใช้งาน CockroachDB ใช้การแบ่งพาร์ติชันทางภูมิศาสตร์และเก็บข้อมูลไว้ภายในภูมิภาคที่ระบุโดยอัตโนมัติ

นี่คือรายละเอียดของไฮไลท์การปรับขนาดบางส่วน:

ความสมบูรณ์ของข้อมูลตามขนาดที่จัดเก็บข้อมูลของคุณ

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

การแบ่งพาร์ติชันทางภูมิศาสตร์เพื่อช่วยเหลือ!

แทนที่จะสร้างชาร์ดที่แยกจากกันทางภูมิศาสตร์ ปรับปรุงเวลาแฝง แต่ป้องกันการสืบค้นข้ามภูมิศาสตร์ CockroachDB ใช้การตั้งค่าการกำหนดค่าที่ระดับช่วงเพื่อจำลองข้อมูลภายในขอบเขตที่กำหนด CockroachDB มอบค่าสองวัตถุประสงค์ด้วยความสามารถในการแบ่งพาร์ติชันทางภูมิศาสตร์ที่เป็นเอกลักษณ์ ด้วยการกำหนดค่าภูมิภาคเฉพาะเพื่อจัดเก็บข้อมูล คุณจะบรรลุทั้งประสิทธิภาพของแอปพลิเคชัน (ข้อมูลที่ใกล้กับแอปพลิเคชันของผู้ใช้มากขึ้น) และการปฏิบัติตามข้อกำหนดของภูมิลำเนา GDPRdata

UI ผู้ดูแลระบบ CockroachDB มีการแสดงทางภูมิศาสตร์ที่ยอดเยี่ยมที่เรียกว่า Node Map ซึ่งแสดงแผนที่โลกพร้อมไอคอนสำหรับโหนดทั้งหมดและรายละเอียดสำหรับแต่ละโหนด การแสดงผลแบบกราฟิกนี้ช่วยในการวางแผนและแก้ไขปัญหาเวลาแฝงระหว่างที่เก็บข้อมูล เมื่อเข้าถึง CockroachDB ของคุณผ่าน ObjectRocket Mission Control UI คุณสามารถเชื่อมโยงไปยัง CockroachDB AdminUI เพื่อดู Node Map ได้อย่างง่ายดาย

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

  • หากคุณต้องการสร้างโหนดใหม่ในเชิงรุก คุณสามารถใช้คำสั่งผ่าน CLI หรือ Admin UI เพื่อสร้างโหนดและตั้งค่าแฟล็กที่จำเป็นและการกำหนดค่าอื่นๆ
  • แม้ว่าคุณจะต้องหยุดและเริ่มฐานข้อมูลจำนวนมากเพื่อปรับขนาด ด้วย CockroachDB คุณสามารถเพิ่มโหนดอื่นๆ ได้อย่างง่ายดายในขณะที่ระบบกำลังโหลด

โดยการใช้ orchestration การปรับขนาดจะได้รับการจัดการโดยอัตโนมัติโดยไม่มีการหยุดทำงาน

CockroachDB มีข้อดีดังต่อไปนี้:

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

นำมารวมกันในบริการที่มีการจัดการ

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

คุณสมบัติหลักของโซลูชัน CockroachDB ที่มีการจัดการ ได้แก่:

  • คลัสเตอร์ High Availability (HA) แบบสามโหนด
  • เข้าถึง UI ผู้ดูแลระบบ CockroachDB ผ่าน ObjectRocket UI
  • การอนุญาตที่อยู่ IP
  • การตรวจสอบผู้ใช้
  • Transport Layer Security (TLS)

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

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

นี่เป็นเวลาที่ดีในการลองใช้ CockroachDB และสิ่งที่ Rackspace ObjectRocket มอบให้กับบริการที่มีการจัดการของเรา สำหรับข้อมูลเชิงลึกเกี่ยวกับวิธีที่ข้อเสนอที่มีการจัดการของ CockroachDB อาจแก้ไขข้อกำหนดในการจัดเก็บข้อมูลของคุณ โปรดอ่านบล็อก Top 5 Use Case ของเราCockroach® มีเอกสารประกอบที่ยอดเยี่ยม และหากคุณสนใจที่จะสนทนาเกี่ยวกับCockroachDB หรือต้องการเรียนรู้เพิ่มเติม ติดต่อเราได้ที่ Rackspace .

คลิกที่นี่เพื่อดูข้อกำหนดในการให้บริการของ Rackspace Cloud

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา