บ้าน การเงินส่วนบุคคล การใช้วิธีการสอดคล้องกันใน 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

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

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

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

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

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

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

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

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

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

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

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

ใน Canon EOS 70D, ใกล้ด้านขวาบนของสายยางที่ล้อมรอบช่องมองภาพเป็นปุ่มหมุน (ดูรูปต่อไปนี้) ที่ช่วยให้คุณปรับโฟกัสของช่องมองภาพให้ตรงกับสายตาของคุณ ปุ่มหมุนนี้เป็นที่รู้จักอย่างเป็นทางการว่าเป็นตัวควบคุมการปรับสายตา หากไม่ใช้ขั้นตอนนี้ฉากที่ปรากฏ ...

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

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

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

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

หนึ่งตัวเลือกเพื่อสร้างสีดำและสีขาวสูง ภาพช่วงไดนามิก (HDR) คือการแปลงภาพถ่ายสีของคุณให้เป็นขาวดำก่อนใช้ภาพเหล่านี้เพื่อสร้างภาพ HDR คุณมีสองตัวเลือกเพื่อเลือกว่านี่คือทิศทางที่คุณต้องการหรือไม่: แปลงระหว่าง Conversion ดิบ แปลงระหว่างการทำแผนที่โทน หากเลือก ...

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

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