官术网_书友最值得收藏!

2.5.1 如何描述需求

在描述需求時,我們要考慮的是:如何用寥寥數語勾勒出一個系統的功能。

以GFS(Google File System,Google文件系統)為例,其需求可以被描述為:

GFS is designed to provide efficient, reliable access to data using large clusters of commodity hardware.

(GFS的設計目的是,基于商用硬件組成的大型集群,為其提供有效和可靠的數據訪問機制。)

從上面這句話中我們可以得到如下幾個要點。

(1)GFS是用來保存數據的。

(2)GFS用于很大的集群(Large Cluster)。

(3)GFS用于標準的商用硬件(Commodity Hardware),而不是專用的硬件。

(4)GFS提供有效的(Efficient)、可靠的(Reliable)數據訪問機制。

在獲得這些需求信息后,是不是就可以開始做系統設計了?并不是,我們還需要更加詳細的信息,例如:

(1)這個系統可以存儲的文件數量是幾百萬、幾千萬個,還是幾十億個?

(2)這個系統存儲的文件的大小是如何分布的,是都為相同大小,還是分布在一個很大的范圍內?是幾十KB,還是幾百MB、幾百GB?

(3)這個系統的總存儲容量,是幾百GB,還是幾百TB,或是幾百PB?

(4)這個系統的讀寫能力是怎樣的,包括每秒讀寫文件的次數、數據傳輸速率、讀寫延遲等參數。

(5)這個系統的容錯能力是怎樣的,計劃在哪些錯誤場景下可以繼續工作。是幾臺存儲服務器發生故障,還是單/多個機房發生故障?

(6)這個系統在一致性方面的定位是什么樣的,是強一致、弱一致,還是最終一致?

(7)這個系統對外的接口是什么樣的,是通用的文件讀寫接口,還是特殊的接口?

……

類似這樣的需求描述,還需要列出很多條才能對GFS這樣的存儲系統的需求做出完整和準確的刻畫。其中,任何一點變化,都可能使系統的設計發生很大變化。

而且在需求描述中,需要使用精確的數字來刻畫需求。對于很多指標來說,量變會導致質變。例如,總存儲量從幾百TB改變為幾百PB,會導致設計發生重大變化。

主站蜘蛛池模板: 铜山县| 安化县| 碌曲县| 通山县| 南陵县| 托克逊县| 仪陇县| 朝阳区| 垫江县| 祥云县| 稷山县| 武强县| 科技| 湘西| 义乌市| 四平市| 灵川县| 缙云县| 西畴县| 运城市| 齐齐哈尔市| 抚顺市| 探索| 荔波县| 潢川县| 盐源县| 菏泽市| 聊城市| 福贡县| 岑溪市| 湘潭县| 那曲县| 拜泉县| 时尚| 财经| 尼玛县| 大石桥市| 治县。| 呼玛县| 新晃| 丹江口市|