Академический Документы
Профессиональный Документы
Культура Документы
Jonas Bonér
@jboner
- Gilad Bracha
CORE
SERVICES
ADD-ON
MODULES
ENTERPRISE
MODULES
!*"##!&'()*+,!$+)$,-#!-$*',!.
!!./01")$!1"/!$'()*+,!/!0
!!-$2!,+$+#1+!/!.
!!!!!"#$!"#$%!/2!
!!!!!!$'()*+,!3/!4
!!!!!!5,#)*6)7$'()*+,8
!!9
9
1"*!$'()*+,!/!<$*',=>?&'()*+,@
$'()*+, is an -$*',A+>
Tuesday, July 20, 2010
Create Actors
1"*!<$*',!/!<$*',=>7,$4!BC-$*',7::88
1"*!$'()*+,!/!<$*',=>?&'()*+,@
$'()*+,:D*<,*
1"*!$'()*+,!/!<$*',=>?&'()*+,@:D*<,*
1"*!$'()*+,!/!<$*',=>?&'()*+,@:D*<,*
$'()*+,:D*'5
%%&1$//0-$%-$2!#)#*!/!.
!!!!:::!EE!$<66+F!<>*+,!GD*<,*H!
!!9
!!&1$//0-$%-$2!DI(*F'J)!/!.
!!!!:::!EE!$<66+F!K+>',+!GD*'5H
!!9
9
!!-$2!,+$+#1+!/!.
!!!!!"#$!"#$%!/2!
!!!!!!$'()*+,!3/!4
!!!!!!D+6>!O!"#$%
!!9
9
$'()*+,!O!"#$%!
fire-forget
1"*!,+D(6*!/!7<$*',!OO!B+DD<Q+8:<D?R*,#)Q@
1"*!,+D(6*!/!,+D(6*=5*#')
!!!!!!!!!!!!:Q+*=,S6D+7F+><(6*A+D(6*8
1"*!,+D(6*!/!,+D(6*=5*#'):Q+*=,S6D+7
!!!!)5/&4%,$4!ST$+5*#')7L"#U+F!'(*N888
:::
V(*(,+D:<J<#*=)+7W#D*7>(*4X!>(*YX!:::88
V(*(,+D:<J<#*-667W#D*7>(*4X!>(*YX!:::88
EE!$,+<*+!<)F!D+)F!<!)+J!$<D+!$6<DD!U+DD<Q+
<$*',!O!A+Q#D*+,7(D+,8
EE!*(56+D
<$*',!O!7(D+,)<U+X!5<DDJ',F8
EE!6#D*D
<$*',!O!W#D*7LK#66NX!LK'KNX!L<6#$+N8
!!-$2!)+JST+$(*',]<D+FS1+)*\,#1+)P',%R*+<6#)Q\#D5<*$I+,7)<U+M!R*,#)Q8
!!-$2!)+J"I,+<F]<D+F\#D5<*$I+,7<$*',M!-$*',A+>8
!!
!!-$2!)+JA+<$*',]<D+F"I,+<F^''6S1+)*\,#1+)\#D5<*$I+,7)<U+M!R*,#)Q8
!!-$2!)+JA+<$*',]<D+FR#)Q6+"I,+<FS1+)*\,#1+)\#D5<*$I+,7)<U+M!R*,#)Q8
9
<$*',:F#D5<*$I+,!/!F#D5<*$I+,!EE!K+>',+!D*<,*+F
-$*',A+Q#D*,C:>',+<$I7>)8
-$*',A+Q#D*,C:DI(*F'J)-66
Erlang
Tuesday, July 20, 2010
9 nines
Tuesday, July 20, 2010
OneForOne
fault handling strategy
=)+V',=)+R*,<*+QC7
!!U<T_,=>A+*,#+DX!
!!J#*I#)"#U+A<)Q+8
D*<,*W#)%7<$*',8
D5<J)W#)%?BC-$*',@
!!-$2!,+$+#1+!/!.
!!!!!"#$!A+Q#D*+,7<$*',8!/2!
!!!!!!6#)%7<$*',8
!!9
9
Tuesday, July 20, 2010
Manage failure
!*"##!V<(6*"'6+,<)*R+,1#$+!$+)$,-#!-$*',!.
!!:::
!!&1$//0-$%-$2!5,+A+D*<,*7,+<D')M!"I,'J<K6+8!/!.
!!!!:::!EE!$6+<)!(5!'$2&/$!,+D*<,*
!!9
!!&1$//0-$%-$2!5'D*A+D*<,*7,+<D')M!"I,'J<K6+8!/!.
!!!!:::!EE!#)#*!"2)$/!,+D*<,*
!!9
9
A+U'*+_'F+:D*<,*7j6'$<6I'D*jX!kkkk8
EE!U+*I'FD!#)!-$*',!$6<DD
D5<J)A+U'*+?BC-$*',@7I'D*X!5',*8!
D5<J)W#)%A+U'*+?BC-$*',@7I'D*X!5',*8
D*<,*W#)%A+U'*+7<$*',X!I'D*X!5',*8
1"*!<$*',^,'TC!/!D5<J)W#)%A+U'*+?BC-$*',@7
!!LF<,%D*<,NX!
!!kkkk8
<$*',^,'TC!O!U+DD<Q+
A+U'*+_'F+:,+Q#D*+,7
!!LD+,1#$+M#FNX!<$*',=>?BCR+,1#$+@8
server part
I<)F6+!O!U+DD<Q+
client part
Tuesday, July 20, 2010
Cluster Membership
&6(D*+,:,+6<CB+DD<Q+7
!!$6<DD=>?"C5+=>-$*',@X!U+DD<Q+8
2&/%7+)F5'#)*!lm!&6(D*+,8!
!!D5<J)A+U'*+?"C5+=>-$*',@7!!
!!!!!!!!!!!!!!+)F5'#)*:I'D*X!
!!!!!!!!!!!!!!+)F5'#)*:5',*8
60
Tuesday, July 20, 2010
STM: overview
• See the memory (heap and stack) as a
transactional dataset
• Similar to a database
• begin
• commit
• abort/rollback
• Transactions are retried automatically
upon collision
• Rolls back the memory on abort
Tuesday, July 20, 2010
Managed References
• Separates Identity from Value
- Values are immutable
- Identity (Ref) holds Values
• Change is a function
• Compare-and-swap (CAS)
• Abstraction of time
• Must be used within a transaction
1"*!(D+,D!/!,+>:Q+*
1"*!)+JZD+,D!/!(D+,D!3!7LK#66N!m2!ZD+,7LK#66N88
,+>:DJ<57)+JZD+,D8
1"*!(D+,D!/!",<)D<$*#')<6B<5?R*,#)QX!ZD+,@78
1"*!(D+,D!/!",<)D<$*#')<6n+$*',?ZD+,@78
<*'U#$!.
!!:::
!!<*'U#$!.!EE!)+D*+F!*,<)D<$*#')D!$'U5'D+
!!!!:::!EE!F'!D'U+*I#)Q!J#*I#)!<!*,<)D<$*#')
!!9
9
!!-$2!,+$+#1+!/!.
!!!!!"#$!_+JZD+,7(D+,8!/2
!!!!!!D*',<Q+!3!7(D+,:)<U+!m2!(D+,8
!!!!:::!
!!9
9
Send message
Send message
Send message
Update state
within transaction
Send message
Update state
within transaction
Send message
Update state
within transaction
Send message
Update state
within transaction
Send message
Update state
within transaction
Send message
Update state
within transaction
Send message
Update state
within transaction
Transaction
fails
Send message
Update state
within transaction
Transaction
fails
EE!D+)F!>()$*#')!<DC)$I,')'(D6C
<Q+)*!D+)F!7;!3!48!
1"*!,+D(6*!/!<Q+)*78!EE!F+,+>
:::!EE!(D+!,+D(6*
<Q+)*:$6'D+
Modules
!!6<%%<M,+D*<,*9D*,<*+QC!><#6'1+,7j-66V',=)+j!
!!!!!!!!!!!!!!!!!!!!!!!!!,+*,#+D7jpj!
!!!!!!!!!!!!!!!!!!!!!!!!!*#U+,<)Q+7j4000j8
!!!!6<%%<M*,<59+T#*D8
! !!6<%%<M*,<59+T#*8f<1<:#':e=ST$+5*#')6;<%%<M*,<59+T#*8
!!!!6;<%%<M*,<59+T#*D8
!!6;<%%<M,+D*<,*9D*,<*+QC8
!!6<%%<M<$*#1+9'Kf+$*D8
!!!!6<%%<M<$*#1+9'Kf+$*!*<,Q+*7j$'U:K#a:BC^=o=j!
!!!!!!!!!!!!!!!!!!!!!!!!6#>+$C$6+7j5+,U<)+)*j!
!!!!!!!!!!!!!!!!!!!!!!!!*#U+'(*7j4000j8
!!!!!!6<%%<M,+D*<,*9$<66K<$%D!5,+7j5,+A+D*<,*j!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!5'D*7j5'D*A+D*<,*j;8
!!!!6;<%%<M<$*#1+9'Kf+$*8
!!6;<%%<M<$*#1+9'Kf+$*D8
6;<%%<MD(5+,1#D#')8
1"*!5,'F($+,!/!<$*',=>?&'U+*^,'F($+,@:D*<,*
1"*!*#U+!/!j&(,,+)*!*#U+M!j!3!,$4!\<*+
5,'F($+,!O!*#U+
EE!*,<)D<$*#')<6!A+F#DmK<$%+F!n+$*',!
1"*!1+$*',!/!A+F#DR*',<Q+:)+Jn+$*',
EE!*,<)D<$*#')<6!B')Q'mK<$%+F!A+>
1"*!,+>!/!B')Q'R*',<Q+:)+JA+>
EE!*,<)D<$*#')<6!A+F#DmK<$%+F!n+$*',!
1"*!1+$*',!/!A+F#DR*',<Q+:Q+*n+$*',7((#F8
EE!*,<)D<$*#')<6!B')Q'mK<$%+F!A+>
1"*!,+>!/!B')Q'R*',<Q+:Q+*A+>7((#F8
1"*!s(+(+M!^+,D#D*+)*`(+(+?S6+U+)*"C5+@!/!!!
!!A+F#DR*',<Q+:)+J`(+(+
1"*!D+*M%^+,D#D*+)*R',*+FR+*?S6+U+)*"C5+@!/
!!A+F#DR*',<Q+:)+JR',*+FR+*
REST Security
Web
Comet AMQP
JTA Guice
Tuesday, July 20, 2010
Learn more
http://akkasource.org