บ้าน การเงินส่วนบุคคล การใช้วิธีการสอดคล้องกันใน NoSQL - Dummies

การใช้วิธีการสอดคล้องกันใน NoSQL - Dummies

สารบัญ:

Anonim

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

ความสอดคล้องกันคือระดับการเลื่อนและวัตถุที่ลึกเกินไปที่จะครอบคลุมที่นี่ อย่างไรก็ตามในโลกของ NoSQL ความสอดคล้องกันโดยทั่วไปอยู่ในสองค่าย:

  • ACID Consistency (ACID ย่อมาจาก Atomicity, Consistency, Isolation, Durability): ACID หมายความว่าเมื่อมีการเขียนข้อมูลแล้วคุณจะมีความสอดคล้องกันอย่างเต็มที่ อ่าน

  • ความสอดคล้องกันในเวลา (BASE): BASE หมายความว่าเมื่อมีการเขียนข้อมูลแล้วในที่สุดจะปรากฏขึ้นสำหรับการอ่าน

    >

การต่อสู้เกิดขึ้นระหว่างผู้ที่เชื่อว่าความสอดคล้องกันที่แข็งแกร่งในฐานข้อมูลไม่จำเป็นต้องใช้และผู้ที่เชื่อว่าจำเป็นต้องมีอย่างแน่นอน (แปล คน ถึง บริษัท NoSQL 'ฝ่ายการตลาด! )

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

ACID หมายถึงโดยทั่วไป "

ฐานข้อมูลนี้มีสิ่งอำนวยความสะดวกเพื่อป้องกันไม่ให้ข้อมูลที่เสียหายหรือสูญหาย " ซึ่งไม่ใช่ฐานข้อมูลทั้งหมด ในความเป็นจริงส่วนใหญ่ของฐานข้อมูล NoSQL ไม่ได้ให้การค้ำประกันกรด DB Foundation, MarkLogic และ Neo4j เป็นข้อยกเว้นที่โดดเด่น ฐานข้อมูล NoSQL บางแห่งมีการรับประกันที่มีเกรดต่ำกว่าที่เรียกว่า

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

BASE

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

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

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

ข้อได้เปรียบของแนวทางนี้คือการทำธุรกรรมได้เร็วขึ้น การมีแบบจำลองที่ถ่ายทอดสดแบบอ่านได้ช่วยให้คุณสามารถอ่านข้อมูลได้อย่างรวดเร็วทำให้การอ่านเร็วขึ้น

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

วิธีอื่นในแบบจำลองแบบอ่านอย่างเดียวคือการมี

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

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

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

การเลือกกรดหรือเบส?

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

บางฐานข้อมูล NoSQL มีการปฏิบัติตาม ACID บนแผนงานแม้ว่าจะเป็นผู้สนับสนุน BASE ซึ่งแสดงถึงการรับประกัน ACID ที่เกี่ยวข้องกับระบบ

enterprise, mission - critical หลาย บริษัท ใช้ผลิตภัณฑ์ BASE-consistency เมื่อทดสอบไอเดียเนื่องจากไม่มีค่าใช้จ่าย แต่จะย้ายไปเป็นฐานข้อมูลแบบชำระเงินตามเกณฑ์ ACID เมื่อพวกเขาต้องการใช้งานระบบที่มีความสำคัญต่อภารกิจ

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

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

กรณีที่คล้ายกันสามารถสร้างขึ้นสำหรับ ACID เหนือ BASE ในการดูแลสุขภาพการป้องกันสติปัญญาและภาคอื่น ๆ มันทั้งหมดเดือดลงไปที่ข้อมูลแม้ว่าและความสำคัญของทั้งสองทันเวลาและความปลอดภัยของข้อมูล

การใช้วิธีการสอดคล้องกันใน NoSQL - Dummies

ตัวเลือกของบรรณาธิการ

สำรวจภาพพื้นผิวในภาพถ่ายอาหาร - หุ่น

สำรวจภาพพื้นผิวในภาพถ่ายอาหาร - หุ่น

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

ค้นหาภาพระยะใกล้และระยะใกล้ - Dummies

ค้นหาภาพระยะใกล้และระยะใกล้ - Dummies

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

แก้ไข Light Balance ของภาพ HDR ใน Photomatix - Dummies

แก้ไข Light Balance ของภาพ HDR ใน Photomatix - Dummies

เพื่อปรับสมดุลแสงและผลกระทบโดยรวมในภาพ ภาพ HDR ใน Photomatix Pro ใช้การตั้งค่า Strength และ Smoothing หากการตั้งค่าพื้นฐานของคุณได้รับการหมุนเวียนไปจนถึงจุดที่คุณพอใจกับภาพลักษณ์ของคุณคุณอาจไม่จำเป็นต้องปรับการตั้งค่า Strength และ Smoothing อย่างมีนัยสำคัญใด ๆ ...

ตัวเลือกของบรรณาธิการ

วิธีเลือกเลนส์สำหรับการถ่ายภาพสัตว์ป่า - หุ่น

วิธีเลือกเลนส์สำหรับการถ่ายภาพสัตว์ป่า - หุ่น

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

วิธีการถ่ายภาพสัตว์ที่เคลื่อนไหว - มัมมี่

วิธีการถ่ายภาพสัตว์ที่เคลื่อนไหว - มัมมี่

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

วิธีการถ่ายภาพวัตถุที่มีแสงด้านหลัง - ม.อ.

วิธีการถ่ายภาพวัตถุที่มีแสงด้านหลัง - ม.อ.

เมื่อดวงอาทิตย์ส่องลงด้านหลังของวัตถุ เมื่อกล้องวัดวัตถุหรือวัตถุที่มีแสงด้านหลังมันมืดกว่าฉากอื่น ๆ คุณสามารถจัดการวัตถุย้อนแสงได้สองวิธี: ใช้การชดเชยแสงเพื่อเพิ่มแสง

ตัวเลือกของบรรณาธิการ

เปลี่ยนขนาดภาพและความละเอียดใน Photoshop Elements 10 - Dummies

เปลี่ยนขนาดภาพและความละเอียดใน Photoshop Elements 10 - Dummies

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

การโคลนและการรักษาเครื่องมือใน Photoshop Elements 12 - Dummies

การโคลนและการรักษาเครื่องมือใน Photoshop Elements 12 - Dummies

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

โหมดผสมผสานใน Photoshop Elements 11 - Dummies

โหมดผสมผสานใน Photoshop Elements 11 - Dummies

Photoshop Elements 11 กีฬาโหมดตกแต่งที่น่าประทับใจ 25 โหมด โหมด Blend จะส่งผลต่อสีที่โต้ตอบระหว่างเลเยอร์และวิธีการที่สีต่างๆโต้ตอบเมื่อคุณใช้สีกับเลเยอร์ โหมดการผสมผสานสามารถสร้างความหลากหลายของผลที่น่าสนใจบางครั้งก็แปลกประหลาด นอกจากนี้คุณสามารถใช้แก้ไขหรือยกเลิกโหมด Blend ได้โดยไม่ต้องแก้ไขรูปภาพ