文中談到作業系統的抽象在平行計算的雲平台上已經不再適用。
談談我的想法:從幾個方面來考慮。一共要抽象計算、記憶體、儲存、網路四個方面。
計算:單機計算可以以虛擬機器或容器(比如docker)為單位。虛擬機器或容器的好處是可以做實時遷移(live migration),從而可以自動均衡負載。多機平行計算,需要把計算抽象為可以隨時(或定期)儲存和載入(類似於作業系統的休眠和恢復)的步驟(這一點可以在作業系統層面實現),步驟與步驟之間可以通過儲存(或網路,但實際上可以抽象為儲存,後面會講到)來互動。這樣做的好處有幾點:首先乙個程式的整個程序都執行在一台機器上,不必改變這方面的程式設計模型。執行緒模型可以繼續適用於單程序內的計算。
跨程序的計算將被強制要求封裝為步驟,並採用bsp模型。好處有:所有步驟的執行序列就相當於狀態機,與具體的物理機無關。所有步驟都可以在機器間遷移。對於靜態輸入來說,給定乙個全域性初始的儲存狀態(儲存在雲上),所有並行步驟的最終執行結果必然是一致的。對於動態輸入來說,只要儲存的內容被很好地儲存了,即便一台機器出了錯,只要上面的步驟遷移到另一台機器以同樣的初始儲存內容重新執行一次,任務仍然可以被完成。只有當儲存或儲存更新本身被丟失的情況下,資料才會丟失。
儲存系統所帶的事件通知機制,其含義是,程式可以指定在物件儲存,或資料庫儲存中的指定目錄、指定物件(或檔案)、指定資料庫表的指定鍵值上進行監視,一旦在雲儲存中的這些資料上值發生改變,那麼就通知該程式。
master data(主資料,比如員工列表等極少改變,卻經常需要訪問的資料)需要人工定義,由雲儲存跨機房備份和replicate(複製)。但相對動態的transaction data(事務資料)和communication data在概念上不作區分。雲儲存系統將自動根據資料的讀取頻率和寫入頻率、應用程式提供的實時性標誌(應用程式可以接受多舊的資料)、資料訪問的源機器所在的網路位置等自動優化資料訪問,包括做多少個複製副本等。但需要注意的是,對於sql等資料庫儲存來說,由於其資料粒度比檔案系統小得多,於是只能根據資料冷熱來區分資料,而不是像大個檔案資料那樣,仔細地為每個檔案做優化。
最後來談記憶體。事實上這個是最無法被優化的東西——記憶體只能在結點本身上面使用。網路分布ssd還有不少用處,因為ssd是毫秒或微秒級的,網路最快也是毫秒或微秒級。但記憶體是納秒級的,沒有辦法通過網路共享記憶體來提高速度。最多就是把swap或page file(交換檔案或頁面檔案)放在雲儲存上罷了。所以,記憶體的使用,就在於充分利用一台機器,讓它cpu和記憶體盡可能以同樣速度接近飽和,而不是乙個遇到瓶頸了,另乙個還空閒很多。
瞎想了許多,請各位看官自行定奪。
有關衣服的想法
人的穿衣由來已久,但對衣服的研究卻不多。提到衣服的研究,更多的人會想到服裝設計。其實,服裝設計更接近於藝術,而不是科學。它只研究了衣服的乙個方面 美觀。衣服從功能來看,可以分為三個部分 貼身層 中間層 外觀層。三層的需求是不一樣的。貼身層強調的是舒適,中間層強調的是保暖,外觀層強調的是美觀。從具體來...
雲鎖定之公共PaaS和私有PaaS的鎖定
通過更好地利用身份 系統日誌 和實時安全事件資訊,可實現更高水平的it安全和合規管理,同時降低相關成本。在過去的10年中,各家公司企業都已在安全與合規管理方面投入數百萬資金。但現實情況卻非常不幸,他們花費很多卻沒有換得什麼安全或合規保障。至今,許多公司企業仍不具備確保或確證他們的系統是安全且符合法律...
雲服務的型別IaaS SaaS 與 PaaS
基礎結構即服務是最靈活的雲服務類別。它旨在完全控制執行應用程式的硬體 it 基礎結構伺服器和虛擬機器 vm 儲存 網路和作業系統 使用 iaas 時,你是租用硬體,而不是購買硬體。它是即時計算基礎結構,可通過 internet 進行預配和管理。iaas 通常用於以下場景 paas 為生成 測試和部署...