http://www.pcpro.co.uk/realworld/355477/understanding-the-nosql-movement:爲什麼所有的寫入都必須寫入主設備,爲什麼寫入從設備沒有意義?
然而,所有的寫操作必須去掌握,因爲數據流是由主到奴隸 單向的,並寫入到從沒有任何意義。
我無法理解該陳述。從我有限的理解,我不明白爲什麼這個限制存在。是否有某種方式讓奴隸與主人「交談」,這樣用戶可以簡單地寫信給奴隸,然後奴隸將通知主人寫信。不。
http://www.pcpro.co.uk/realworld/355477/understanding-the-nosql-movement:爲什麼所有的寫入都必須寫入主設備,爲什麼寫入從設備沒有意義?
然而,所有的寫操作必須去掌握,因爲數據流是由主到奴隸 單向的,並寫入到從沒有任何意義。
我無法理解該陳述。從我有限的理解,我不明白爲什麼這個限制存在。是否有某種方式讓奴隸與主人「交談」,這樣用戶可以簡單地寫信給奴隸,然後奴隸將通知主人寫信。不。
簡單地說,因爲你失去了一致性。當寫入從機和同時寫入主機衝突時,你會做什麼?任何一個或其他更新都將丟失,或者如果您發現衝突,那麼您會做什麼?
通常,您希望數據庫展示ACID properties。如果你願意,那麼多臺服務器接受寫入(這實際上就是主機的定義),你進入了你所引用的文章所討論的多主機場景,以及隨之而來的可伸縮性問題(參見Distributed Transactions)位詳細信息)
在這個意義上,術語「主」是指「所有者」 - 數據的權威副本。從屬是可用於分配負載的複製品。 (通常每個主站有多個從站)
因此,根據定義,任何節點採取寫入成爲一個「主」。有很多支持「多主」配置的系統,這些系統通常比單主系統更復雜,因爲主系統需要保持它們之間的一致性。
我寫了一篇文章,解釋得更詳細here
主從複製的定義是主處理所有的寫操作,並且從只處理讀取,接收來自主更新流。如果兩臺服務器都處理寫入操作,則屬於「主 - 主複製」的定義,該複製帶有自己的數據一致性問題。
那麼這將是一個「主/從」關係呢?他們都是平等的,對吧? – JNK