Fw: [心得] 雲端資料庫 吳尚鴻

看板NTHU_Course作者 (怕熱的肥宅)時間8年前 (2017/02/15 13:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 candog 信箱] 作者: candog.bbs@bbs.cs.nthu.edu.tw ("FireBolt") 標題: [心得] 雲端資料庫 吳尚鴻 時間: Wed Feb 15 01:39:43 2017 作者: SLMT (偶叫小山) 站內: nthu.course 標題: [心得] 雲端資料庫 吳尚鴻 時間: 2013/07/07 Sun 16:55:08 課名:雲端資料庫 科號:CS574000 老師:吳尚鴻 課本:課程講義 課別:資工系選修 學分:3 學分 涼度:★★ 甜度:★★★★★ 建議先修課程: 這門課需要看大量的程式碼,而程式碼都用 Java 撰寫,因此需要先學過 Java 程式設計。另外,資料庫用到很多作業系統的概念,所以最好也先修過 作業系統 這門課。最後,老師要求學生必須要有使用資料庫的基本知識, 所以最少要懂如何使用 SQL 指令,以及一些關於 Entity Model 的知識。 課程內容: 這門課主要的目的是要教授同學如何撰寫一個分散式資料庫。 注意!是撰寫,不是使用。因此老師在第一門課的時候會先告知學生, 這門課在前幾堂課有一個期初考,目的是測驗學生是否具備基本資料庫的知識。 1. 單一資料庫基本架構 前面大概會有 2/3 學期的時間在教授如何從無到有撰寫一個資料庫。老師的 實驗室有改寫一個教學用的資料庫 SimpleDB ,加入了許多新的功能,並改名為 VanillaDB-Core。這段期間老師會帶大家看過這個資料庫基礎架構的程式碼,以及 教導這個架構之下的基礎概念。 為了保證資料庫達到四大基本特性 ACID (Atomic、Consistency、Isolation、 Durability),使的資料庫的架構變得無比龐大。這期間的課程由上到下大略涵蓋: 與 Client 的溝通、解析 SQL 指令、如何找出處理指令的路徑、將資料存進硬碟、 如何建立 log 保證資料不會遺失、如何讓多個指令同時執行又不影響到對方。 在這期間,會需要看大量的程式碼來瞭解實作細節,所以我認為這算是不小 的負擔。(這部分至少需要看 100 以上的 class 檔) 2. 分散式資料庫 剩下 1/3 是在教如何將前面所建立的資料庫放在不同電腦上,並使用分散式 系統的方式讓這些資料庫連接起來。連接起來之後,又必須要確保資料庫的特性 (ACID),以及雲端資料庫的三大要點:High Scalability、High Availability、 High Elasticity。 一開始會先介紹目前較知名的分散式資料庫,然後再切入說如何個別達到三 大特性。最後會引出說其實世界上沒有真正的雲端資料庫,因為這些特性會互相 影響,現在業界施行的都是犧牲某些特性來達到部分目標這樣。 這部分也有程式碼要看,不過因為老師是第一次開這門課。這部分的程式碼 較晚發布,稱為 VanillaDB-Comm,跟 VanillaDB-Core 合併之後就是一個分散 式資料庫了。這個資料庫只保障了 High Availability 這個特性,但也有不少 的程式碼要看 (大概 30 class 以上)。 上課方式: 老師上課一律使用投影片教學。因為要教的東西很多,上課步調緊湊。但是 精神不需要太緊繃,放鬆心情專心聽講即可。老師喜歡與同學互動,例如在教一個 技術之前,會先問同學說「如果是你會怎麼做?」當然這不會記錄到分數裡面,但會 讓大家試著去思考加深不少印象。 作業內容介紹: 這學期一共有四份作業與 Final Project。大部分都是增減一些功能,只要 有把資料庫實作方式搞懂,那要完成就不會太難。另外,通常老師要求學生在 完成之後寫一份報告,並自行設計實驗來測試結果。如果實驗測得越細,並且可以 提出適當的說法來證明實驗結果。那分數就會非常高。 作業一 依照業界標準的 TPC-C 撰寫一個簡化版的 Benchmark 來測試資料庫。 作業二 在 VanillaDB-Core 內實作新的 SQL 指令 Explain 作業三 修改 VanillaDB-Core 儲存資料的機制,並實作 redo log 功能。 作業四 在 VanillaDB-Comm 實作 Zab Consensus 的溝通系統。 Final Project 將 VanillaDB-Core 與 Comm 合併,並修改為 Deterministic Database 。 以達到 Availbility 的特性。 考試介紹: 我想最特別的應該是這門課有期初考,而且占的分數不少。內容大致是關於 SQL 指令的使用以及 Enity Model。其實沒有學過沒關係,剛開始我也沒有學過 ,老師會在第一堂課告訴大家可以去看哪本書的哪幾個章節。那本書在網路上 就可以找到電子書。然後在第三堂課的時候考試這樣。考試的難度還挺高的, 我懷疑老師根本想嚇跑我們,不過有念熟就不需要害怕。 原本這學期還有計畫期中與期末考,但是因為考慮到作業份量的問題,就直接 取消了。原定的分數就合併到作業與 Final Project。不過這是第一次開課, 下一次開課很有可能會改變方針。 給分: 期初考 10% 作業 x4 各占 15 % (共 60 %) Final Project 30 % 我個人覺得這門課給分非常大方,只要你有努力,例如實驗做得很認真,數據 很確實。那麼就會拿到非常高的分數。就算沒有精美的報告,只要要求有達到,分數 也會不錯。 當然考試的部分就是白紙黑字的分數,考幾分就看自己的努力。 老師的喜好、個性: 個性爽朗,容易親近,很年輕,但是感覺生涯經歷豐富。老師原本 是在美國 Telcordia (前身貝爾實驗室) 工作,後來回到台灣當老師,據說是希望 能培育出有能力自行創業的學生。 給加簽嗎? 完全沒問題 成績分布: ↓每組人數 A+ 39.3 % (11) <------- 在下在這裡 A 21.4 % ( 6) A- 14.3 % ( 4) B+ 3.6 % ( 1) B 7.1 % ( 2) --------------- C+ 3.6 % ( 1) --------------- D 3.6 % ( 1) E 7.1 % ( 2) -- __ˍ(_▇▆' * _ ▆▇ ▁_ ▄▆▇.楓橋驛站.telnet://imaple.tw◣} = ▔﹊ *. @▂~+ ▃▂▁▂。▁▂ˍ_◢_▇.* ├=rom:r326-27.cs.nthu.edu.tw ﹊ ̄﹊ ̄ ̄﹊﹊ ̄ ̄﹊ ̄﹊ ̄ ̄﹊@人 ̄ ̄﹊ ̄﹊ ̄ ̄﹊﹊ ̄ ̄﹊﹊ ̄ ̄﹊﹊ ̄﹊ ̄ SLMT 於 2013/07/07 Sun 17:02:06 從 r326-27.cs.nthu.edu.tw 修改 cfcs2004我同學被當 科 07/07 17:52mtEK geniusturtle路過推 07/07 18:18olIh Richo推,還有推原po的C#教學 07/07 20:49lzWe Lizpush 07/13 22:19gxfw Liz07/13 22:20gxfw TK42110/22 23:27ldNn SLMT 於 2014/01/02 Thu 12:06:53 從 shwu14.cs.nthu.edu.tw 修改 SLMT 於 2014/01/02 Thu 12:07:45 從 shwu14.cs.nthu.edu.tw 修改 Only大推原PO的C#教學~ (雖然還沒時間看XD) 01/04 17:15lzSD ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: candog (140.114.206.139), 02/15/2017 13:12:28
文章代碼(AID): #1Oe-Cz-J (NTHU_Course)