เมื่อ SQL ไม่เพียงพอ: การควบคุมสำหรับศูนย์ข้อมูลใหม่ขนาดใหญ่

ผู้เขียน: Judy Howell
วันที่สร้าง: 3 กรกฎาคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
Transactions and Concurrency Control Patterns by Vlad Mihalcea
วิดีโอ: Transactions and Concurrency Control Patterns by Vlad Mihalcea

เนื้อหา



Takeaway:

นักพัฒนาและวิศวกรจำเป็นต้องทำงานอย่างต่อเนื่องเพื่อเพิ่มความเร็วและปรับปรุงการบริการผ่านแพลตฟอร์มที่เติบโตเกินกว่าต้นแบบในยุค 1990 ที่คลาสสิค

ด้วยความกระฉับกระเฉงเกี่ยวกับศูนย์ข้อมูล NSA ขนาดใหญ่ที่มี gazillions ของ data bit เกี่ยวกับชีวิตส่วนตัวของเรามีสิ่งหนึ่งที่ไม่ได้รับการพูดถึงมากอย่างน้อยก็ใน CNN มันเกี่ยวข้องกับปัญหาทางวิศวกรรมที่เกิดขึ้นพร้อมกับเทคโนโลยีคลาวด์ข้อมูลขนาดใหญ่และศูนย์จัดเก็บข้อมูลทางกายภาพที่น่าประทับใจซึ่งตอนนี้ถูกสร้างขึ้นทั่วโลก แล้วมันคืออะไร ไม่ว่าใครจะดูแลระบบไอทีมหึมาที่ใช้สิ่งอำนวยความสะดวกเหล่านี้ก็ไม่จำเป็นต้องมีระบบซอฟต์แวร์ที่ช่วยให้ข้อมูลทั้งหมดนั้นเข้าและออกจากท่อได้อย่างรวดเร็ว ความต้องการดังกล่าวเป็นหนึ่งในคำถามหรือปริศนาด้านไอทีที่น่าสนใจที่สุดที่มืออาชีพกำลังเผชิญอยู่ในปัจจุบัน

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


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

ระบบไฟล์ของ Google: กรณีศึกษาขนาดใหญ่

เทคโนโลยีที่เป็นกรรมสิทธิ์ซึ่ง Google ใช้เพื่อเข้าถึงศูนย์ข้อมูลเป็นหนึ่งในตัวอย่างที่ดีที่สุดของโมเดลทั่วไปสำหรับการจัดการข้อมูลขนาดใหญ่และการจัดการศูนย์ข้อมูลหลายแห่ง Google File System (GFS) ได้รับการพัฒนาในปี 2003 ได้รับการออกแบบมาเพื่อรองรับการแก้ไขระบบข้อมูลความเร็วสูงจำนวนมากซึ่งเป็นส่วนหนึ่งของการรับข้อมูลใหม่ ๆ เข้าและออกจากแพลตฟอร์มเดียวเมื่อผู้ใช้หลายล้านคลิก ในเวลาเดียวกัน ผู้เชี่ยวชาญอ้างถึงสิ่งนี้ว่าเป็นระบบไฟล์แบบกระจายและใช้คำว่า "data object storage" เพื่ออธิบายเทคนิคที่ซับซ้อนสูงเหล่านี้ อย่างไรก็ตามในความเป็นจริงแล้วข้อกำหนดเหล่านี้จะไม่เกาแม้แต่ผิวเผินในแง่ที่อธิบายสิ่งที่ทำงาน

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


"มีรายละเอียดมากเกินไปที่ส่งผลกระทบอย่างลึกซึ้งต่อพื้นที่การใช้งาน - รวมถึงการกระจายตัวของข้อมูลภายนอกและภายในการอัพเดตที่อิงกับบันทึกและในสถานที่และระดับความสอดคล้องของการทำธุรกรรม - เพื่อสรุปวิธีการทำงานในประโยคสั้น ๆ "Momchil Michailov ซีอีโอและผู้ร่วมก่อตั้ง Sanbolic กล่าว

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

Kerry Lebel เป็นผู้จัดการผลิตภัณฑ์อาวุโสของ Automic ซึ่งเป็น บริษัท ที่รู้จักกันดีในเรื่องแพลตฟอร์มระบบอัตโนมัติที่ปรับขนาดได้ Lebel กล่าวว่าในขณะที่มันถูกต้องในการอธิบาย DFS เป็นระบบที่เพียงแค่กำหนดภาระงานให้กับเซิร์ฟเวอร์ที่ติดอยู่กับชิ้นส่วนของฮาร์ดแวร์ที่มีต้นทุนต่ำ แต่ไม่ได้บอกเล่าเรื่องราวทั้งหมด

ไม่มีข้อบกพร่องไม่มีความเครียด - คู่มือแบบเป็นขั้นตอนเพื่อสร้างซอฟต์แวร์ที่เปลี่ยนแปลงชีวิตโดยไม่ทำลายชีวิตของคุณ

คุณไม่สามารถพัฒนาทักษะการเขียนโปรแกรมของคุณเมื่อไม่มีใครใส่ใจคุณภาพของซอฟต์แวร์

สิ่งที่คุณขาดหายไปคือปัจจัยที่ยอดเยี่ยม อย่างไร พวกเขาทำสิ่งที่พวกเขาทำ "Lebel กล่าว

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

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

ดูเทคโนโลยีหลัก

บทความโดยฌอนกัลลาเกอร์ที่ปรากฏใน Ars Technica แบ่งการออกแบบ GFS ออกเป็นส่วนที่จัดการได้ง่ายขึ้นและบอกใบ้ถึงสิ่งที่อยู่ใต้แผ่นงานของ Google

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

สิ่งสำคัญอีกอย่างหนึ่งของสิ่งนี้คือระบบที่ซ้ำซ้อนเหล่านี้บังคับใช้ความสอดคล้องของข้อมูลอย่างไร ตามที่ Gallagher กล่าวไว้การออกแบบของ GFS นั้นมีความสอดคล้องกันบ้างในขณะที่ยังคง "บังคับใช้อะตอมมิกซิตี" หรือปกป้องหลักการของวิธีที่ข้อมูลได้รับการอัปเดตในหน่วยเก็บข้อมูลหลายหน่วย "รูปแบบความสอดคล้องที่ผ่อนคลาย" ของ Google ดูเหมือนว่าจะเป็นไปตามทฤษฎีที่สำคัญของแบบจำลอง BASE ซึ่งให้ผลตอบแทนที่ยืดหยุ่นมากขึ้นในระยะเวลาที่นานขึ้นสำหรับการบังคับใช้ความมั่นคง

ระบบใหญ่อื่น ๆ ประสบความสำเร็จได้อย่างไร

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

"ตัวอย่างเช่นการสร้างข้อมูลเมตา (ข้อมูลเกี่ยวกับข้อมูล) ในแต่ละดิสก์ทำให้ดิสก์นั้นสามารถสร้างโครงสร้างข้อมูลที่เหมาะสมได้หากสำเนามิเรอร์เสียหาย" Michailov กล่าว "นอกจากนี้ระดับ RAID สามารถใช้เพื่อต่อสู้กับความล้มเหลวในการจัดเก็บที่ตัวรวบรวมระบบไฟล์หรือระดับตัวจัดการไดรฟ์ข้อมูลที่แชร์"

ในการหารือเกี่ยวกับรูปแบบความสอดคล้องอื่น Lebel มุ่งเน้นไปที่ระบบที่เรียกว่าระบบไฟล์แบบกระจาย Hadoop (HDFS) ซึ่งเขาเรียกว่า "มาตรฐานอุตสาหกรรมโดยพฤตินัย"

ใน HDFS Lebel กล่าวว่าแต่ละบล็อคข้อมูลจะถูกจำลองแบบสามครั้งบนโหนดที่ต่างกันและในชั้นวางที่แตกต่างกันสองชั้น ข้อมูลถูกตรวจสอบจากต้นทางถึงปลายทาง ความล้มเหลวได้รับการรายงานไปยัง NameNode ตัวจัดการข้อมูลที่กำจัดบล็อกที่เสียหายและสร้างบล็อกใหม่

ทั้งหมดนี้สนับสนุนประเภทของ "ข้อมูลที่สะอาด" ซึ่งมีความสำคัญต่อความสมบูรณ์ของระบบข้อมูลมวลชนเหล่านี้

การบำรุงรักษา DFS

รูปลักษณ์ที่แตกต่างอย่างมากของ GFS นั้นมาจากบทความตุลาคม 2012 โดย Steven Levy มันมีประโยชน์มากในการกำหนดลักษณะของซอฟต์แวร์สำหรับการจัดการเครือข่ายจากบนลงล่างโดยรวมของ Google

Levy เขียนว่า "ในช่วงหลายปีที่ผ่านมา" Google ได้สร้างระบบซอฟต์แวร์ที่ช่วยให้สามารถจัดการเซิร์ฟเวอร์ที่นับไม่ถ้วนราวกับว่าพวกเขาเป็นหน่วยงานยักษ์ผู้พัฒนาใน บริษัท สามารถทำหน้าที่เหมือนหุ่นเชิด งานง่ายเหมือนกับการเรียกใช้เครื่องเดียว "

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

Levy ยังกล่าวถึงเทคโนโลยีเสริมสำหรับ GFS เช่น MapReduce เครื่องมือแอปพลิเคชันคลาวด์และ Hadoop เครื่องมือวิเคราะห์ที่ใช้หลักการออกแบบร่วมกับ GFS เครื่องมือเหล่านี้มีผลกระทบต่อการออกแบบระบบการจัดการศูนย์ข้อมูลขนาดใหญ่และสิ่งที่จะเกิดขึ้นในอนาคต (เรียนรู้เพิ่มเติมเกี่ยวกับเทคโนโลยีเหล่านี้ใน The Evolution of Big Data)

Michailov เชื่อว่า MapReduce มีศักยภาพในการรองรับระบบดาต้าเซ็นเตอร์ที่มากขึ้นและพูดคุยเกี่ยวกับ "การใช้งานครั้งเดียว" ของระบบไฟล์ที่แชร์และรวมกันซึ่งสามารถ "คงชื่อโหนดของระบบไฟล์รวมในคลัสเตอร์ที่ใช้ SSD ."

สำหรับส่วนของเขานั้น Lebel มองว่าการย้ายจากการประมวลผลแบบแบตช์ (วิธีการรองรับ Hadoop) เป็นการสตรีมการประมวลผล

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

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