= 2011-04-19 = == Mobile Computing == * 新名詞 '''[http://differentapple.blogspot.com/2011/02/solomo.html SoLoMo]''' - "Social-Local-Mobile" - 概念來自John Doerr * [http://www.slideshare.net/kleinerperkins/kpcb-top-10-mobile-trends-feb-2011 Top 10 Mobile Internet Trends (Feb 2011)] == File System == * 影片: [http://video.linux.com/video/1971 File Systems in the Cloud {Collaboration Summit '11}] * 2011/4/6~8 在舊金山舉辦的 Collaboration Summit '11 其中由 Google Kernel Storage Team 成員 Michael Rubin 解說從 Local Disk File System 到 Local Network File System 到 Distributed File System 到 Application(!BigTable),當 Google 從 ext2 改變成 ext4,並取消 Journal 功能,帶來許多好處。 * 首先,比較重要的是 Google 的儲存分層架構(Storage Stack)是 Local File System、NFS 跟 DFS。有點好奇的是為何需要 NFS,也許是為了某些服務吧~總不能全部都跑 Google File System。(Q:這樣還有在地運算 data locality 的優點嘛?) * [[Image(jazz/11-04-19:01_Google_Storage_Stack.png,width=480)]] * 這裡提到一個缺點是關於 ext2 會花 40% 在處理屬性資料(metadata)上。 * [[Image(jazz/11-04-19:02_ext2_disk_operation.png,width=480)]] * 其次是 ext2 如果毀損,每 TB 必須花 85 分鐘做 fsck,相當耗時! * [[Image(jazz/11-04-19:03_ext2_cloud_threat.png,width=480)]] * 因此,Google 儲存團隊比較了 btrfs、ext3、ext4、xfs 跟 zfs,最後決定移植到 ext4 (相信很大的重要性是為了相容於 ext2 的資料移轉) * [[Image(jazz/11-04-19:04_ext4_upgrade_2011.png,width=480)]] * 這裡顯示出 ext4 只會花 4% 在處理屬性資料,比較 ext2 少了許多。 * [[Image(jazz/11-04-19:05_ext4_disk_operation.png,width=480)]] * 採用 ext2 跟 ext4 對 NFS 的效能影響:以 ext2 為比較基準,ext4 不管是讀、寫還是移除,在效能上都有長足的改善(約60%~120%)。 * [[Image(jazz/11-04-19:06_NFS_impact.png,width=480)]] * 採用 ext2 跟 ext4 對 GFS 的效能影響:以 ext2 為比較基準,ext4 也大約有 20%~50% 的效能提昇。 * [[Image(jazz/11-04-19:07_GFS_impact.png,width=480)]] * 採用 ext2 跟 ext4 對 GFS 的效能影響:以 ext2 為比較基準,ext4 大約降低了 30% 左右的延遲,效能也是提昇。 * [[Image(jazz/11-04-19:08_BigTable_impact.png,width=480)]] * 講者提到三個雲端必要需求(Requirement of the Cloud):(1) Visibility 可見度(了解到底故障、錯誤在哪裡?是誰拖垮效能?) * [[Image(jazz/11-04-19:09_visibility_requirement.png,width=480)]] * 講者提到三個雲端必要需求(Requirement of the Cloud):(2) Predictable 可預測性(考量效能改進與成本的關係,如果用 5GB 記憶體來做屬性資料的快取,能讓讀寫於 20ms 完成;但用 500MB 記憶體的讀寫效能變成 500ms~2sec 那該用哪一個呢?這又是一個機率與統計的問題!Google的最愛啊!) * [[Image(jazz/11-04-19:10_predictable_requirement.png,width=480)]] * 講者提到三個雲端必要需求(Requirement of the Cloud):(3) HW Abstraction 硬體抽象性(應該也可以解釋成能夠容忍異質平台,不管是磁碟硬碟還是固態硬碟) * [[Image(jazz/11-04-19:11_HW_Abstract_requirement.png,width=480)]] * 最後講者分享了一個調校小技巧:把 EXT4 的日誌功能(Journaling)關掉,也可以加速 * [[Image(jazz/11-04-19:12_journal_impact.png,width=480)]] * 當然講者提到說目前不需要日誌功能,但或許未來 Google 有一天需要重新思考這個決策。 * [[Image(jazz/11-04-19:13_turn_off_journal_for_now.png,width=480)]]