Scribd on Scaling

Embed Size (px)

Citation preview

  • 7/31/2019 Scribd on Scaling

    1/23

    !"#$

    %&'#(")$*+,-.$

    /0+-,&1$2)"."+#,'&!

    "#$%!&'!"()*+!,--.#/!

    ,(%!012!3114!

    5(6-7!86)-79('!:;(6-7=&9?!('7!

    @)AB&'!C-6'+.(9!:.)AB&'=&9?

    mailto:[email protected]:[email protected]
  • 7/31/2019 Scribd on Scaling

    2/23

    /('3-4$5'3$6'#(")$7,#($

    .0+-,&18$

    !D-**2!).!7-/-'7+!

    !C#.!)E!%F6-!*(#'=B)'G!(!+.(6.#/2!/6&$($*%!

    !@B-!$-+.!H(%!.&!*(#'=B!(!+.(6.#/!.B-+-!7(%+!)+!.&!G-.!).!&'!@-=BI6#'=B2!J)GG2!"-77).2!-.=>!

    !K!7&'F.!G-.!(+!9#=B!.)9-!.&!G6&H!

    &6G(')=(**%!(+!%!#+-7!.&!

    !K!&'*%!G-.!&'-!*(#'=B!L!7&'F.!H('.!%!

    +).-!.&!E(**!&M-6

  • 7/31/2019 Scribd on Scaling

    3/23

    9("$2)"4"0"..').$

    !N.B-6!G6-(.!/*(=-+!.&!*&&A!E&6!)'E&!&'!.B)+!

    ! /&&=+>'-.!@B-!O7M-'.#6-+!&E!P=(*)'G!"()*+!

    B../QRR/&&=+>'-.R311SRTR0TR.B-U(7M-'.#6-+U&EU+=(*)'GU+.(G-U0!

    !P.-/B-'!V(-+!WX-6E&69('=-!"()*+Y!B../QRR6()*+-Z/6-++>7-R$*&GRE)*-+R+*)7-+R6#$%-'6()*+311S>/7E!

    !"&$&.I&&/!$*&G!('7!G-9+!

    B../QRRHHH>6&$&.=&&/>=&9R(6.)=*-+R311SR01R01R.B-U+&E.H(6-U('7UB(67H(6-U.B(.U6#'+UU+).-+!

    !NF6-)**%!$&&A!W[)GB!X-6E&69('=-!,%P\]Y!

    ! ^.F+!'&.!6()*+2!$#.!).F+!6-(**%!#+-E#*

    http://www.robotcoop.com/articles/2006/10/10/the-software-and-hardware-that-runs-our-siteshttp://railsexpress.de/blog/files/slides/rubyenrails2006.pdfhttp://poocs.net/2006/3/13/the-adventures-of-scaling-stage-1
  • 7/31/2019 Scribd on Scaling

    4/23

    :,1$2,0#3)"$

    !@B)+!/6-+-'.(.)&'!H)**!=&'=-'.6(.-!&'!HB(.F+!

    7)EE-6-'.!E6&9!/6-M)+!H6).)'G+2!'&.!(!

    =&9/6-B-'+)M-!&M-6M)-H!

    !OM()*($*-!(.!B../QRRHHH>+=6)$7>=&9R$*&G

    http://www.scribd.com/blog
  • 7/31/2019 Scribd on Scaling

    5/23

    ;('$7"$+)"$

    !P=6)$7>=&9!

    ! ])A-!WK@#$-!E&6!7&=#9-'.+Y!

    ! ](#'=B-7!)'!,(6=B2!3114!![('7*-+!_0,!6-`#-+.+!/-6!7(%

  • 7/31/2019 Scribd on Scaling

    6/23

  • 7/31/2019 Scribd on Scaling

    7/23

    =3))"$/0),64$+)0(,#"0#3)"$

    ! 0!D-$!P-6M-6!

    ! T!J(.($(+-!P-6M-6+!

    ! T!J&=#9-'.!=&'M-6+)&'!+-6M-6+!!@-+.!('7!$(=A#/!9(=B)'-+!

    !O9(d&'!PT

  • 7/31/2019 Scribd on Scaling

    8/23

    /")>")$?+)47+)"$

    !J#(*2!7#(*U=&6-!H&&7=6-+.+!(.!Ta[d!

    ! 0SaC!&E!9-9&6%!

    ! e!0fV!PIPI^!B(67!76)M-+!)'!(!"O^J!01!!D-!*-(6'-7Q!7)+A!+/--7!)+!)9/&6.('.!

    !J&'g.!+A)9/h!%F6-!'&.!a&&G*-2!('7!).g+!

    -(+)-6!.&!+=(*-!#/!.B('!.!!P&E.*(%-6!)+!(!G6-(.!7-7)=(.-7!B&+.)'G!

    =&9/('%

  • 7/31/2019 Scribd on Scaling

    9/23

    @+),'3.$.'A#7+)"$4"#+,-.$

    !I-'.NP!

    !O/(=B-R,&'G6-*!

    !,-9=(=B-72!"&$&.I&&/F+!9-9=(=B-U=*)-'.!!P.-E('!V(-+F!P\]P-++)&'P.&6-!

    ! C-+.!H(%!.&!+.&6-!/-6+)+.-'.!+-++)&'+!

    !,&').2!I(/)+.6('&!!X&+.E)Z

  • 7/31/2019 Scribd on Scaling

    10/23

    B)+1C"$=+0(,&1$

    ! iD-!7&'F.!#+-!('%!/(G-!&6!E6(G9-'.!

    =(=B)'G>i!U!6&$&.=&&/!

    ! iX*(%!H).B!E6(G9-'.!=(=B)'G!>>>!'&!

    )9/6&M-9-'.2!=B('G-+!H-6-!6-M-6.-7!(.!(!

    *(.-6!.)9->i!U!/&&=+>'-.!

    !D-**2!9(%$-!).g+!(//*)=(.)&'!+/-=)E)=!

    !P=6)$7!#+-+!E6(G9-'.!=(=B)'G!-Z.-'+)M-*%2!

    -'&69+!/-6E&69('=-!)9/6&M-9-'.

  • 7/31/2019 Scribd on Scaling

    11/23

    /0)""&/('#

  • 7/31/2019 Scribd on Scaling

    12/23

    ?'7$#'$D."$B)+1C"$=+0(,&1$

    ! ^G'&6-!(**!$#.!.B-!9&+.!E6-`#-'.*%!(==-++-7!/(G-+!

    ! ]&&A!E&6!/)-=-+!&E!.B-!/(G-!.B(.!7&'g.!=B('G-!&'!-M-6%!/(G-!M)-H!('7!(6-!-Z/-'+)M-!.&!=&9/#.-!

    ! 5#+.!H6(/!.B-9!)'!(!jk!=(=B-:gA-%'(9-l?!7&!km!

    n!

    jk!-'7!km!

    ! J&!.)9)'G!.-+.!$-E&6-!('7!(E.-6H(67+h!$(=A.6(=A!#'*-++!+)G')E)=('.!/-6E&69('=-!G()'+!

    ! D-!+--!m!01o

  • 7/31/2019 Scribd on Scaling

    13/23

    EFG,),&1$A)+1C".H$IJ$9,C"$6+."4$

    !K!+B*7!6-(**%!#+-!9-9=(=B-7!E&6!+.&6)'G!E6(G9-'.+!! C-..-6!/-6E&69('=-!

    ! p(+)-6!.&!+=(*-!.&!9#*.)/*-!+-6M-6+!!,&+.!)9/&6.('.Q!(**&H+!.)9-U$(+-7!-Z/)6(.)&'!

    !b+-!/*#G)'!B../QRR(G)*-H-$7-M-*&/9-'.>=&9R/*#G)'+R9-9=(=B-qE6(G9-'.+qH).Bq.)9-q-Z/)6%!

    !J-(7!-(+%Q!

    jk!=(=B-!gA-%'(9-l2!Q-Z/)6-!rm!01>9)'#.-+!7&!km!

    >>>!jk!-'7!km

    http://agilewebdevelopment.com/plugins/memcache_fragments_with_time_expiry
  • 7/31/2019 Scribd on Scaling

    14/23

    EFG,),&1$A)+1C".H$KJ$L+&3+--5$

    !s&!'--7!.&!+-6M-!+.(*-!7(.(!

    ! 5#+.!#+-Q!

    I(=B->7-*-.-:iE6(G9-'.QR/(6.)(*+RHB(.-M-6i?!!I*-(6!E6(G9-'.+!HB-'-M-6!7(.(!=B('G-+!

    !OG()'2!-(+)-6!H).B!9-9=(=B-7

  • 7/31/2019 Scribd on Scaling

    15/23

    9)+AA,0$%&+-5#,0.$

    !a&&G*-!O'(*%.)=+!)+!')=-2!$#.!.B-6-!(6-!(!*&.!&E!

    6-(+&'+!.&!6&**!%!&H'!.6(EE)=!('(*%.)=+!.&&!

    ! I('!$-!9#=B!9&6-!/&H-6E#*!

    ! K!=('!H6).-!P\]!.&!('+H-6!(6$).6(6%!`#-+.)&'+!

    ! I('!-Z/&+-!.&!#+-6+

  • 7/31/2019 Scribd on Scaling

    16/23

    /0),64M.$+&+-5#,0.$

    N.0)""&.('#.O

  • 7/31/2019 Scribd on Scaling

    17/23

    :3,-4,&1$#)+AA,0$+&+-5#,0.H$G+)#$I$

    ! =6-(.-q.($*-!W/(G-qM)-H+Y!7&!t.t!

    .>=&*#9'!W#+-6q)7Y2!Q)'.-G-6!

    .>=&*#9'!W6-`#-+.q#6*Y2!Q+.6)'G2!Q*)9).!rm!311!

    .>=&*#9'!W+-++)&'Y2!Q+.6)'G2!Q*)9).!rm!T3!

    .>=&*#9'!W)/q(776-++Y2!Q+.6)'G2!Q*)9).!rm!0S!

    .>=&*#9'!W6-E-6-6Y2!Q+.6)'G2!Q*)9).!rm!311!

    .>=&*#9'!W#+-6q(G-'.Y2!Q+.6)'G2!Q*)9).!rm!311!

    .>=&*#9'!W=6-(.-7q(.Y2!Q.)9-+.(9/!

    -'7!

    ! O77!(!HB&*-!$#'=B!&E!)'7-Z-+2!7-/-'7)'G!&'! #-6)-+

  • 7/31/2019 Scribd on Scaling

    18/23

    :3,-4,&1$#)+AA,0$+&+-5#,0.H$G+)#$K$

    !I6-(.-!(!X(G-u)-H!&'!-M-6%!6-`#-+.!

    !D-!#+-7!(!B('7U$#)*.!P\]!`#-6%!.&!.(A-!.!

    .B-!O=.)M-"-=&67!&M-6B-(7!&'!.B)+!

    !,)GB.!.6%!,%P\]F+!W)'+-6.!7-*(%-7Y!

    !O'(*%.)=+!`#-6)-+!(6-!#+#(**%!B('7U=&7-7!

    P\]!

    !b+-!W-Z/*()'!+-*-=.Y!.&!9(A-!+#6-!,%P\]!)+!

    #+)'G!.B-!)'7-Z-+!%!-Z/-=.

  • 7/31/2019 Scribd on Scaling

    19/23

    :3,-4,&1$9)+AA,0$%&+-5#,0.H$G+)#$P$

    !P=(*-+!/6-..%!H-**!

    !Cb@!('(*%.)=+!`#-6)-+!-Z/-'+)M-2!=('!=*&G!#/!

    9()'!JC!+-6M-6!

    !N#6!+&*#.)&'Q!

    ! #+-!.H&!JC!+-6M-6+!)'!(!9(+.-6R+*(M-!+-.#/!

    ! 9&M-!(**!.B-!('(*%.)=+!`#-6)-+!.&!.B-!+*(M-

  • 7/31/2019 Scribd on Scaling

    20/23

    *+,-.$7,#($C3-#,G-"$4+#+6+.".H$G+)#$I$

    ! iO.!.B)+!/&)'.!)'!.)9-!.B-6-F+!'&!E(=)*).%!)'!"()*+!.&!.(*A!.&!9&6-!.B('!&'-!7(.($(+-!(.!(!.)9->i!U!O*-Z!X(%'-2!@H)..-6!7-M-*&/-6!

    ! D-**!.B(.g+!.6#-!

    ! C#.!+-..)'G!.B)'G+!#/!%+-*E!)+!($.!01!*)'-+!&E!=&7->!

    ! @B-6-!(6-!'&H!(*+&!.H&!G6-(.!/*#G)'+!E&6!7&)'G!.B)+Q!

    ,(G)=!9#*.)U=&''-=.)&'+!

    B../QRR9(G)=9&7-*+>6#$%E&6G->&6GR9(G)=q9#*.)q=&''!-=.)&'+R!

    O=.+!(+!6-(7!&'*%($*-U!B../QRR6#$%E&6G->&6GRE6+RvG6/q)7rTef0

    http://rubyforge.org/frs/?group_id=3451http://magicmodels.rubyforge.org/magic_multi_connections/
  • 7/31/2019 Scribd on Scaling

    21/23

    *+,-.$7,#($C3-#,G-"$4+#+6+.".H$G+)#$K$

    !O.!P=6)$7!H-!#+-!.B)+!.&!+-'7!/6-U7-E)'-7!

    -Z/-'+)M-!`#-6)-+!.&!(!+*(M-!

    !@B)+!=('!$-!M-6%!)9/&6.('.!E&6!7-(*)'G!H).B!

    *&=A!=&'.-'.)&'!)++#-+!

    !K!=*7!(*+&!7&!(#.&9(.)=!*&(7!$(*('=)'G2!

    $#.!+%'=B6&')d(.)&'!$-=&9-+!9&6-!

    =&9/*)=(.-7!:6-(7!(!P\]!$&&A2!'&.!(!"()*+!)++#-?

  • 7/31/2019 Scribd on Scaling

    22/23

    *+,-.$7,#($C3-#,G-"$4+#+6+.".H$0'4"$

    ! ^'!7(.($(+->%9*!+*(M-0Q!

    B&+.Q!0w>ew>eT>3x!!y!%!+*(M-F+!^X!

    7(.($(+-Q!/6&7#=.)&'!

    #+-6'(9-Q!6&&.!

    /(++H&67Q!/(++!

    ! J-E)'-!(!9&7-*!P*(M-0>6$!

    =*(++!P*(M-0!j!O=.)M-"-=&67QQC(+-!

    +-*E>($+.6(=.q=*(++!r!.6#-!

    -+.($*)+Bq=&''-=.)&'!Q+*(M-0!-'7!

    ! DB-'!%!'--7!.&!6#'!(!`#-6%!&'!.B-!+*(M-2!;#+.!7&!

    P*(M-0>=&''-=.)&'>-Z-=#.-:i+-*-=.!z!E6&9!+&9-q.($*-i?

  • 7/31/2019 Scribd on Scaling

    23/23

    /(+C"-"..$/"-AQ2)'C'#,'&$

    !P=6)$7>=&9Q!uIU$(=A-7!('7!B)6)'G!

    ! 5#+.!T!/-&/*-!+&!E(6c!m01!$%!-'7!&E!%-(6>!

    !

    OH-+&9-!+(*(6%R-`#).%!=&9$)'(.)&'!! ^E!%F6-!6-(7)'G!.B)+2!%F6-!/6&$($*%!.B-!

    6)GB.!A)'7!&E!/-6+&'!

    !C#)*7)'G!.B-!H&6*7g+!*(6G-+.!&/-'!7&=#9-'.!

    *)$6(6%!

    !p9()*Q!B(=A-6+=&9