作者candog (怕热的肥宅)
看板NTHU_Course
标题Fw: [心得] 云端资料库 吴尚鸿
时间Wed Feb 15 13:12:28 2017
※ [本文转录自 candog 信箱]
作者:
[email protected] ("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
─ Liz:
push 07/13 22:19gxfw
△ Liz:
补 07/13 22:20gxfw
△ TK421:
推 10/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