เผยแพร่ครั้งแรกในเดือนสิงหาคม 2019 ที่ ObjectRocket.com/blog
CockroachDB® เป็นส่วนหนึ่งของเทคโนโลยีฐานข้อมูลในตระกูล Rackspace ObjectRocket ความสามารถในการปรับขนาดของ CockroachDB นั้นน่าตื่นเต้น ด้วยการจำลองและการกระจายข้อมูล (เพิ่มความพร้อมใช้งานสูงสูงสุด) การปรับสมดุลฐานข้อมูลอัตโนมัติ และศูนย์ข้อมูลแบบหลายภูมิศาสตร์ที่รองรับการปฏิบัติตามข้อกำหนดเกี่ยวกับภูมิลำเนาข้อมูล และทั้งหมดนี้มีความสมบูรณ์ของข้อมูลสูงและธุรกรรม ACID แบบกระจายเนื่องจากความยืดหยุ่นของข้อมูลของ CockroachDB เป็นสิ่งที่ต้องมี
เราต้องการแบ่งปันไฮไลท์บางส่วนของการปรับขนาดด้วย CockroachDB และไปดูสิ่งที่Rackspace ObjectRocket เสนอให้ DBaaS ในฐานะนักพัฒนา เมื่อคุณใช้ 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
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา