ลองนึกภาพความต้องการของคุณคือคุณมีตารางขนาดใหญ่ 3 ตาราง (ข้อมูลที่มีโครงสร้าง) โดยมีจำนวนแถวละ 30,000 ล้านแถว (ขนาดรวม 4TB) และผู้ใช้ที่ใช้งานพร้อมกันจำนวนมาก (ซึ่งเป็นเธรดระบบปฏิบัติการแบบขนานบนเครื่อง LAN ระยะไกล) ข้อมูลผ่าน SELELCT WHERE GROUPBY ของพวกเขาและพร้อมกันสูงพูด 10,000 อ่านพร้อมกันในเวลาเดียวกันและผู้ใช้จำเป็นต้องแทรกข้อมูล (ไม่มีการปรับปรุง) ลงในตารางเหล่านี้พร้อมกันสูงเช่นนักเขียนพร้อมกัน 2000 (ทั่วเครือข่าย LAN ของศูนย์ข้อมูล) . ผู้ใช้ต้องการอ่านและแทรกให้เร็วที่สุดเท่าที่จะเป็นไปได้ในรูปแบบที่เก็บข้อมูลนี้ซึ่งการอ่านและเขียนแต่ละอันจะเกิดขึ้นคือ ms ถึง 1 วินาที
เทคโนโลยีใดที่คุณแนะนำให้ตอบสนองความต้องการดังกล่าว มีที่เก็บข้อมูลหรือที่เก็บค่าคีย์ที่สามารถทำสิ่งนี้ได้หรือไม่? คลาวด์ไม่ใช่ตัวเลือก
ชี้แจงบางส่วน:
ผู้ใช้ไม่จำเป็นต้องเห็นข้อมูลทันทีและยอมรับความสอดคล้องในที่สุด ข้อมูลสามารถเข้าถึงได้ผ่านทุกไดรเวอร์ที่หน่วยเก็บข้อมูลสามารถให้และผู้ใช้จะเป็นเพียงเธรดที่ทำงานบนเครื่องระยะไกลของศูนย์ข้อมูล ข้อความค้นหาส่วนใหญ่จะเป็นเหมือน SELECT WHERE GROUPBY
ข้อมูลอยู่ในรูปแบบตารางและแต่ละแถวมีขนาดประมาณ 60 ไบต์
ไม่มีตัวเลือกคลาวด์ที่ฉันไม่สามารถใช้ DynamoDB หรือโซลูชันที่คล้ายกัน ฉันต้องสามารถโฮสต์ภายในศูนย์ข้อมูลได้
ข้อมูลทั้งหมดของตารางสามารถอ่านได้ตลอดเวลาและรูปแบบการใช้งานไม่แน่นอน ไม่มีการเข้าร่วมหรือการสืบค้นที่ยาวมาก ไม่จำเป็นต้องใช้ DR แต่จำเป็นต้องใช้ HA ที่เหมาะสม แต่ไม่จำเป็นต้องแฟนซี ผู้อ่านทุกคนได้รับชุดของแถวตามที่ส่วนคำสั่งและแถวไม่เกี่ยวข้องจริง ๆ เราอาจมีความยาวคงที่สำหรับแต่ละแถว แต่ฉันหวังว่าเลเยอร์การจัดเก็บจะกังวลเกี่ยวกับมัน
นอกจากนี้ความกังวลที่ยิ่งใหญ่ที่สุดของฉันคือการเขียนพร้อมกันทั้งหมดที่เกิดขึ้นกับการอ่านพร้อมกัน
ข้อมูลเชิงลึกของคุณเกี่ยวกับเรื่องนี้เป็นที่นิยมอย่างสูง
และยิ่งกว่านั้นฉันมีตารางสามตารางที่แต่ละแถวมีจำนวน 30,000 ล้านแถวที่มีชนิดของวัตถุต่างกัน