對SharedNothing的一些理解

2021-09-13 17:17:47 字數 1587 閱讀 4939

share-nothing: 每乙個cpu都有私有記憶體區域和私有磁碟空間,而且2個cpu不能訪問相同磁碟空間,cpu之間的通訊通過網路連線。

share-memory:多個cpu共享同一片記憶體,cpu之間通過內部通訊機制(interconnection network)進行通訊;

share-disk  : 每乙個cpu使用自己的私有記憶體區域,通過內部通訊機制直接訪問所有磁碟系統。

shared memory 體系結構的cpu之間通過主存進行通訊,具有很高的效率;但當更多的cpu被新增到主機上時,記憶體競爭contetion就成為瓶頸,cpu越多,瓶頸越 厲害。shared disk也存在同樣問題,因為磁碟系統由 interconnection network 連線在一起。

shared memory和shared disk的基本問題是interference:當新增更多的cpu,系統反而減慢,因為增加了對記憶體訪問(memroy access)和網路頻寬(network bandwidth)的競爭。這樣shared nothing體系得到了廣泛的推廣。

shared nothing體系是資料庫穩定增長,當隨著事務數量不斷增加,增加額外的cpu和主存就可以保證每個事務處理時間不變。

總的來說,shared nothing降低了競爭資源的等待時間,從而提高了效能。反過來,如果乙個資料庫應用系統要獲得良好的可擴充套件的效能,它從設計和優化上就要考慮 shared nothing體系結構。share nothing means few contention

.它在oracle資料庫設計和優化上有很多相同之處。

share nothing 對資料庫應用主要體現在多使用者並行訪問系統時候,優化資料庫操作的response time上。如果資料庫操作能夠順利獲得所需要的資源,不發生等待事件,自然可以減少response time. 同時也體現在操作盡量少占用資源上,避免浪費時間在無用功上。

如sequence的實現方式。如果使用oracle sequence ,oracle可以快取sequence,這樣最小的降低多個session獲得唯一序列的競爭。如果設計為實體化表儲存sequence value方式,每次獲得sequence value都需要鎖住紀錄,這樣產生了嚴重資源競爭,導致hot block.同時增加了response time.

如儲存過 程的使用,也體現著share nothing原理。將多個sql 封裝在儲存過程中,避免了不必要的sql*net message from/to client, sql*net data from/to client 等等待事件。這體現了設計良好的應用使用最少的資源完成工作。

如在優化sql/表結構設計上,share nothing意味著降低查詢的執行成本—— i/o和cpu usage.這主要體現在降低consistent gets上。

在物理設計上,share nothing體現在避免磁碟熱點塊,協調程序對磁碟的競爭,平衡磁碟利用率上。

oracle自身設計上很多都體現了share nothing特性;在設計可擴充套件的資料庫應用的時候也要注意到這點。

下面來結合這張理解此架構。

php對mysql的了解 對MySQL的初步了解

首先安裝mysql 一.單詞部分 networking網路 option選擇 port埠 firewall防火牆 engine引擎 standard標準 character字元 collation校對 stirage儲存 二.預習部分 1.請寫出建立和刪除資料庫的sql語句 create datab...

對前端的理解和對自己的定位

這段時間公司提供給大家乙個崗位晉公升的機會,要以ppt的形式展現,具體包括以下幾點 當前的崗位職責 對崗位的理解 對當前崗位的建議和意見 對公司發展的建議和意見 該季度獲得的工作成績和對未來工作的發展定位和目標。我很糾結要不要去申請,因為自畢業以來做前端開發以後,交際圈明顯縮小,不像以前那樣話多,變...

對 新手想說的話,對自己的回顧

純屬只是為了回顧自己知識,同時分享學到的技術 其實對於網際網路技術,也就是現在的 行業一開始並不知道多少,作為乙個小白,我在高三那一年為自己想了幾個專業,其中就包括了計算機。當然和大部分中二愛玩的普通男孩一樣是因為能夠在計算機上玩些遊戲。當時也了解一些 但懂得實在有限,老家也比較遠離繁華地帶,在當地...