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