ScholarGate
ผู้ช่วย

CAP และแบบจำลองความสอดคล้อง

แบบจำลองความสอดคล้อง (Consistency models) กำหนดการรับประกันที่ระบบจำลองแบบ (replicated system) ให้เกี่ยวกับค่าที่อ่านได้ และทฤษฎี CAP กำหนดขอบเขตว่าการรับประกันใดบ้างที่สามารถอยู่ร่วมกับการพร้อมใช้งาน (availability) ภายใต้การแบ่งพาร์ติชันเครือข่าย (network partitions) ได้

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

แบบจำลองความสอดคล้อง (consistency model) คือข้อตกลงระหว่างที่เก็บข้อมูลจำลองแบบ (replicated data store) กับไคลเอนต์ โดยระบุผลลัพธ์ที่อนุญาตของการอ่านและเขียนพร้อมกัน; ทฤษฎี CAP ระบุว่าเมื่อมีการแบ่งพาร์ติชันเครือข่าย ที่เก็บข้อมูลแบบกระจาย (distributed data store) ไม่สามารถให้ทั้งความสอดคล้องแบบ linearizable และความพร้อมใช้งานได้

Scope

หัวข้อนี้ครอบคลุมแบบจำลองความสอดคล้องอย่างเป็นทางการ ได้แก่ linearizability, sequential consistency, causal consistency และ eventual consistency รวมถึงการจัดลำดับตามความแข็งแกร่งของแบบจำลองเหล่านั้น; ทฤษฎี CAP และคำกล่าวที่แม่นยำพร้อมข้อพิสูจน์; และการปรับปรุงแก้ไข เช่น PACELC ซึ่งพิจารณาถึงการแลกเปลี่ยนระหว่างความหน่วง (latency) กับความสอดคล้อง (consistency) ในกรณีที่ไม่มีการแบ่งพาร์ติชันด้วย หัวข้อนี้ให้คำศัพท์สำหรับการระบุและเปรียบเทียบการรับประกันของระบบจำลองแบบ

Core questions

  • Linearizability, sequential, causal และ eventual consistency มีความแตกต่างกันในด้านความแข็งแกร่งอย่างไร?
  • ทฤษฎี CAP ห้ามอะไรอย่างแม่นยำ และอนุญาตอะไรบ้าง?
  • ข้อพิจารณาด้านความหน่วงปรับปรุงการแลกเปลี่ยนความสอดคล้องอย่างไรเมื่อไม่มีการแบ่งพาร์ติชัน?

Key theories

Linearizability และ sequential consistency
Linearizability กำหนดให้การดำเนินการแต่ละครั้งต้องปรากฏว่ามีผลทันที ณ จุดใดจุดหนึ่งระหว่างการเรียกใช้และการตอบสนอง ซึ่งสอดคล้องกับเวลาจริง; sequential consistency ละเว้นข้อกำหนดด้านเวลาจริง โดยต้องการเพียงการจัดเรียงลำดับที่ถูกต้องเพียงครั้งเดียวที่เคารพคำสั่งของแต่ละกระบวนการ
ทฤษฎี CAP
กิลเบิร์ตและลินช์พิสูจน์ว่าไม่มีที่เก็บข้อมูลจำลองแบบใดที่สามารถรับประกันได้ทั้งความสอดคล้องแบบ linearizable และความพร้อมใช้งาน เมื่อเครือข่ายอาจมีการส่งข้อความระหว่างสำเนาข้อมูลผิดพลาด ซึ่งบังคับให้ต้องเลือกในระหว่างการแบ่งพาร์ติชัน
การปรับปรุง PACELC
PACELC ขยาย CAP โดยสังเกตว่าแม้จะไม่มีการแบ่งพาร์ติชัน ระบบก็ยังต้องแลกเปลี่ยนความหน่วงกับความสอดคล้อง ดังนั้นการออกแบบจึงถูกกำหนดโดยพฤติกรรมทั้งในระหว่างการแบ่งพาร์ติชันและการทำงานปกติ

Clinical relevance

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

History

แลมพอร์ต (Lamport) ได้นิยาม sequential consistency ในปี 1979 และเฮอร์ลิฮี (Herlihy) กับวิง (Wing) ได้กำหนด linearizability อย่างเป็นทางการในปี 1990; บรูเวอร์ (Brewer) ได้ตั้งข้อสังเกตเกี่ยวกับการแลกเปลี่ยน CAP ในปี 2000, กิลเบิร์ต (Gilbert) และลินช์ (Lynch) ได้พิสูจน์ในปี 2002 และการปรับกรอบ PACELC ของอาบาดี (Abadi) ในปี 2012 ได้ชี้แจงว่าความหน่วง ไม่ใช่แค่การแบ่งพาร์ติชันเท่านั้น ที่เป็นตัวขับเคลื่อนการเลือกความสอดคล้อง

Debates

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

Key figures

  • Eric Brewer
  • Seth Gilbert
  • Nancy Lynch
  • Maurice Herlihy
  • Jeannette Wing
  • Leslie Lamport

Related topics

Seminal works

  • gilbert2002
  • herlihy1990
  • lamport1979

Frequently asked questions

CAP หมายความว่าระบบจะมีเพียงสองในสามของความสอดคล้อง ความพร้อมใช้งาน และความทนทานต่อการแบ่งพาร์ติชันเท่านั้นใช่หรือไม่?
ไม่เชิง การแบ่งพาร์ติชันเป็นข้อเท็จจริงของเครือข่าย ไม่ใช่ทางเลือกในการออกแบบ ดังนั้นการตัดสินใจที่แท้จริงคือจะทำอย่างไรในระหว่างการแบ่งพาร์ติชัน: เสียสละความสอดคล้องที่เข้มงวดเพื่อคงความพร้อมใช้งาน หรือเสียสละความพร้อมใช้งานเพื่อคงความสอดคล้อง เมื่อไม่มีการแบ่งพาร์ติชัน ระบบสามารถมีความสอดคล้องและพร้อมใช้งานได้ทั้งสองอย่าง

Methods for this concept

Related concepts