Ҫ@ƶ˄ӑB(ti)`Ҏ(gu)ģUֻǰϵy(tng)ŵψ(zh)оܵõA(y)Ч(yng)óʽ(zh)еķʽҲ{(dio)
ǰ҂Մ^ġҎ(gu)ɔUԣscalabilityһϵy(tng)Л]Ҏ(gu)ɔU҂IJdžһӋ㹝(ji)cܶ죬ǮӋYԴClrܷͨ^ӋYԴQȡҎ(gu)ģ̎
ڽQҎ(gu)ģӋ㆖}r˂P(gun)ܷͨ^ŷlgķ(w)Ҏ(gu)ģچһŷϿԈ(zh)ж
ҪõҎ(gu)ģɔUһԏƽ_@֧֣ӋYϴȡ(yng)óʽfS@ҲһЩ^ƶӋƽ_ڡ
һ҂ՄˡƶӋƽ_ǽ(gu)ڡƶӋƽ_ϵđ(yng)óʽͱȻ߂Ҏ(gu)ɔU
ڑ(yng)óʽfпǽ(gu)IaaSInfrastructure as a ServiceČӴ֮ߣҲPaaSPlatform as a ServiceӴl(f)չ
ͨIaaSϵđ(yng)óʽoֱӵõҎ(gu)ɔUԣƽ_ͨṩIJֻǡSrӑB(ti)õYԴAWSEC2\Б(yng)óʽܱC(yng)óʽҎ(gu)ɔUԣֻҪŷlgrEC2܉MܵӑB(ti)MҪ
fǰё(yng)óʽˡƶˡͱȻ@Ҏ(gu)ɔUֻ IaaS ƽ__l(f)rǷ߂Ҏ(gu)ģɔUfȡQϵy(tng)ܘ(gu)ԡ
^PaaS_l(f)rrͬPaaSƽ_̎SҎ(gu)ɔUP(gun)Ć}GoogleApp EngineṩYϴȡͲͬڂy(tng)P(gun)(lin)ʽYώBigTable A(ch)IJģʽ@ʹ̎YϵĴȡApp Engine֮ϵđ(yng)óʽȻȻ߂õҎ(gu)ɔU
ˣһT˸Ҏ(gu)ģO(sh)Ӌƽ__l(f)ҪõҎ(gu)ģɔUԵđ(yng)óʽ_l(f)߁fʡȥٵ⡣ Hadoop һ˴Ҏ(gu)ģӋO(sh)Ӌƽ_^MapReduceӋ㷽ʽԌӋɢṩӋęC֮ϱC֮ڸ̵ĕrg(ni)QҪQӋ㆖}ԏͶõYԴ(sh)ͶQøŷܸĽQӋ㆖}A(y)㲻ô֣Ҳʹ^ٵęCM^ĕrg@Ҏ(gu)ɔUԵxڡ
ɢʽӋ˼
mȻfɢʽӋĿ֮һϣͨ^ӋɢಿͬęCϣwӋеđ(yng)óʽpײɢಿC֮ȥ\ҸҪnj(yng)óʽֵಿC֮ͱȻwӋ
ef㌢đ(yng)óʽɶݣͬrݔಿC֮ψ(zh)@ׂʽ֮gҪͨҲǽQY֮gҪͬsynchronizationڲͬCϵijʽ֮gҪȴض^m(x)(zh)Уô@ӵđ(yng)óʽͲҊþҎ(gu)ɔUȴĭh(hun)(ji)Ҏ(gu)ģoSӋYԴͶL
@fˣʹԇӋֳɞڶಿCψ(zh)УҲҊÿԫ@öЧܸMܿӋģʽHܫ@ٔ(sh)ЧܳLSҎ(gu)ģLıβӋ㹤ʹɢಿͬęCԵõ(yng)ӋҎ(gu)ģͳ@ĺh}
ͨ^ֶ֮ķʽ}_SС}ͽQ}y
HadoopMapReduceһNӋ㹤ķʽҪͨ^ֹQӋ㆖}y(tng)ġֶ֮Divide and Conquer䌍һNеķʽ^ġֶ֮njһ}ɶС}քeQ@ЩС}Ĵٌ֮@Щͨ^ijNʽϲͿԵõ}Ĵ𰸡@Nʽf؞֮ҲDzɱ^СĆ}֮߀Խ^m(x)⣬ֱmϽQ}Ҏ(gu)ģֹ
҂\áֶ֮ķʽQ}ͺõҎ(gu)ģɔU飬҂ԌԭʼĆ}ɂ^СҎ(gu)ģĆ}Ȼ@Щ}քe÷ڲͬęCϽQQ@ЩС}Ӌǻચ֮gҲҪͨ\õęC(sh)׃rͿԌ}Ҏ(gu)ģĸСʹچһCϽQٶȸʹwQĕrgԿs̡ MapReduce Ǵ˷Nֶ֮Ľ}Ӌģʽ\MapReducerԴ˷Nʽ˼Q}ķ
(sh)ʽʽO(sh)Ӌ_ʼ
һҲl(f)F(xin)^(sh)ʽfunctionalijʽO(sh)Ӌʽ@Nֶ֮ķɢʽӋģʽ_ʼܚgӭ(sh)ʽijʽZѽ(jng)ЎʮĚvʷ Lisp ijʽZԣҪǑ(yng)˹ǻ۵I(lng)ʲô@(yng)I(lng)ˣ
(sh)ʽijʽZһЩʽǛ]РB(ti)statelessÿκʽֵ֮uf(zh)УrǛ]иõģside effect
^ĸãǺʽ(zh)ЕrҪ(yng)ԓ_ɵ֮߀һЩٵЧ˼丱ҪǺʽĻֵtdz˻ʽֵ֮⣬߀ͬr׃?ni)׃?sh)ֵʽĻֵ˱ݔ?yn)?sh)Ӱ֮߀ͬrĠB(ti)ȫ׃(sh)Ӱ푕ra(chn)S벻ĽY(ji)
҂Ĕ(sh)W(xu)ϵĺ(sh)ĽǶȁfx ֵ֮ȫȡQ x ]κ f (ni)ĠB(ti)ⲿĠB(ti) x ͬr fx ֵ֮ͬ^ĺ(sh)ʽʽO(sh)Ӌʽ˷Nȡˣ]РB(ti)Ҳ]и
@N֮܌ɢʽӋ㎧̎@ӵ֮Ӌ㹤䵽ͬęCȥӋ电(sh)W(xu)ĺ(sh)һֻҪoͬݔֵһͬݔֵӋ㹤֮gԽՓDzCʲôrgcӰ푵ӋĽY(ji)ԡֶ֮ԭtӋ㹤MзɢʽӋrײϳӋY(ji)ԳɞĽY(ji)
ͨ^һAƶӋƽ_ԼӋģʽ䌍ʽO(sh)Ӌ߸ȡҎ(gu)ɔUĬF(xin)ڵڅ݁(sh)ʽO(sh)Ӌʽ(yng)ԓ߀кһ