日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在現代信息世界中,我們有許多照片、文件、視頻等需要存儲。我相信幾乎所有人都嘗試過使用 google Drive 或 Dropbox。

功能需求

1.用戶可以從任何設備上傳和下載文件。2.用戶可以通過替換相同的文件名來更新文件。3.用戶可以通過電子郵件鏈接將文件和文件夾分享給其他人。4.用戶可以隨時從任何設備刪除文件和文件夾。5.刪除的文件和文件夾將在回收站中存儲 15 天。6.系統應該支持離線編輯。用戶可以在離線狀態下添加/修改文件和文件夾名稱,一旦網絡恢復,更改將與遠程服務器同步。7.用戶可以進行文件版本管理,以恢復文件的先前版本。(系統可以支持多次更改的同一文件的多個版本,帶寬和所需空間將顯著增加)8.系統可以支持跨設備的文件和文件夾同步。9.系統允許每個用戶免費上傳高達 10 GB 的文件。10.系統將為不同存儲大小提供不同的市場計劃。

非功能需求

1.系統必須高度可靠。任何上傳的文件都不得丟失。用戶可以恢復其重要文件。2.系統可以支持每周 7 天 24 小時。3.用戶可以隨時升級其計劃,并立即使用系統。4.用戶必須能夠輕松地將其系統與其他應用程序集成。例如,系統支持通過其他應用程序共享文檔。5.系統可以提供延遲或并發利用(這意味著以高效的方法從云中反復上傳和下載完整文件)。

存儲估算

1.用戶數量 = 5 億2.活躍用戶數量 = 1 億3.用戶平均存儲的文件數量 = 3004.每個文件的平均大小 = 200 KB5.總文件數量 = 5 億 * 300 = 1500 億6.需要的總存儲空間 = 1500 億 * 200 KB = 30 PB

系統組件

1.客戶端(安裝在您的桌面或移動應用程序中,用于訪問與存儲相關的應用程序)•監視用戶機器上的工作區文件夾,并通過與遠程服務器同步文件來維護一致性。因此,它必須由 4 個基本組件組成,即監視器、分塊器、索引器和內部數據庫。•監視器將監視本地工作區文件夾,并通知索引器用戶執行的任何操作(添加、刪除、替換和更新文件或文件夾),并追蹤來自其他設備的任何更改,這些更改由同步服務廣播。•分塊器將文件分成更小的塊,并從這些塊中重建文件,以便完整的文件可以在沒有任何丟失塊的情況下傳輸。分塊算法將檢測用戶修改的文件部分,并僅將已修改的部分傳輸到云存儲,從而節省帶寬和同步時間。•索引器將處理來自監視器的事件,并更新內部元數據數據庫。一旦成功從云存儲下載或上傳了塊,索引器將與遠程同步服務通信,廣播更改給其他客戶端,并更新遠程元數據數據庫。•內部元數據數據庫將跟蹤所有文件、塊、任何已更新的版本以及其在文件系統中的位置。•客戶端應用程序將通過請求上傳、下載和編輯 API 與后端云存儲服務器進行通信。客戶端還與遠程同步服務進行交互,以處理任何文件元數據更新,例如文件名、大小、修改日期等。2.元數據數據庫•保持有關文件、塊、用戶、設備、工作區和存儲位置的版本和元數據信息。•元數據數據庫可以是關系數據庫,如 MySQL,也可以是 NoSQL 數據庫服務,如 DynamoDB。•同步服務在多個用戶同時處理同一文件時,提供文件的一致視圖。•由于 NoSQL 數據存儲不支持 ACID 屬性,編程代碼會將 ACID 屬性與 NoSQL 數據庫結合在一起,用于同步服務的邏輯。3.同步服務•更新客戶端創建的文件或文件夾。•將客戶端的本地數據庫與存儲在遠程元數據數據庫中的信息同步。•使用 HTTP 長輪詢從云存儲獲取響應,或在脫機一段時間后將文件和更新發送到云存儲,一旦重新脫機,將向所有設備或用戶發送通知。•同步服務還嘗試在客戶端和云存儲之間傳輸更少的數據,以實現更快的響應時間,因此使用差異化算法來減少需要同步的數據量。不再將整個文件從客戶端傳輸到服務器,而是傳輸兩個版本文件之間的差異。僅傳輸已更改的部分(塊)。這減少了終端用戶的帶寬消耗和

云數據存儲。服務器和客戶端將計算哈希值,以查看是否更新修改的塊。該過程稱為數據去重。

1.消息隊列服務•這是一個處理讀寫請求數量的消息中間件。•一個可擴展的消息隊列服務,支持客戶端和同步服務之間的異步通信。•可用性和可靠性必須被設計得最適合消息隊列服務。•請求隊列:此隊列將在所有客戶端之間共享。當客戶端執行任何更新和請求時,此請求將發送到消息隊列服務,然后由同步服務進一步處理,最后更新元數據數據庫。•響應隊列:每個客戶端都有一個相關的響應隊列,因為每個客戶端都有一個單獨的響應隊列。•一旦文件更新,同步服務將通知所有響應隊列有關更改的信息,然后響應隊列將通知每個客戶端進行的更改。2.云/塊存儲•存儲文件的塊•使用 Amazon S3 服務•客戶端將使用 API 服務與云存儲進行交互

圖片

文件處理工作流程:客戶端 A 將塊上傳到云存儲,然后更新元數據并提交更改,然后獲得確認。服務器將通知客戶端 B 和 C 有關更改的信息。客戶端 B 和 C 接收元數據更改并下載更新的塊。•數據去重:消除數據的重復副本。這還可以減少相同數據傳輸(發送的字節數)以提高傳輸速率。對于每個傳入的塊,都會打上一個哈希標簽,然后計算并將該哈希與現有塊的所有其他哈希進行比較。 a) 后處理去重:新塊存儲在存儲設備上,并且將分析塊以了解它們是否是重復的。優點是,客戶端不需要等待哈希計算或查找完成,然后再存儲數據,這會提高存儲性能。缺點是短時間內會存儲不必要的重復數據,并且會傳輸和消耗帶寬。 b) 內聯去重:去重哈希計算可以實時執行,以便系統可以識別重復塊,然后僅存儲不存在的塊。優點是優化網絡和存儲使用。缺點是消耗用戶的時間并降低存儲性能。

1.緩存•在 Google Drive / Dropbox 系統設計中有兩種類型的緩存•用于塊存儲的緩存•使用像 Memcache 這樣的現成解決方案的緩存,可以存儲帶有其相應 ID/哈希的整個塊和塊服務器•可以采用最近最少使用(LRU)緩存策略。2.負載均衡器(LB)•在客戶端和塊服務器之間•在客戶端和元數據服務器之間•在后端服務器之間平均分配傳入的請求3.安全性/權限和文件共享•上傳/下載的文件將與遠程服務器同步•不允許對單個文件進行多個操作(并發問題)•如果在某個過程中出現了某些連接問題,客戶端必須重新上傳或下載整個文件,或者恢復下載或上傳塊。

系統 API

1.Upload(string uploadToken, fileInfo file, userInfo user)2.Edit(string authToken, fileInfo file, userInfo user)3.Delete(string authToken, fileInfo file, userInfo user)4.Download(string authToken, fileInfo file, userInfo user)5.GenerateToken (string userName, string password)

高級系統架構

詳細系統架構
圖片

分享到:
標簽:Google
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定