3 akka. A actor-based concurrency framework. Provides solutions for non
blocking concurrency. Written in Scala, also works in Java. Open source.
Building Massively Scalable Applications with Akka Vikas Hazrati Inphina Technologies
1
what?
Platform for next generation, event driven, scalable and fault tolerant architectures on the JVM.
2
akka A actor-based concurrency framework Provides solutions for non blocking concurrency Written in Scala, also works in Java Open source Now at 1.3-RC2 (to be released this weekend) Lead developer and founder: Jonas Boner JRockit, AspectWerkz, AspectJ, Terracotta
3
issues
concurrency scalability fault tolerance
4
why akka simpler concurrency event driven scale up or scale out fault tolerance remoting scala and java api 5
aha actors! message-Passing Concurrency share NOTHING isolated lightweight processes communicates through messages asynchronous and non-blocking 6
actors defined in the 1973 paper by Carl Hewitt popularized by Erlang alleviates the dev from explicit locking and thread management easy to write concurrent and parallel systems actors like objects BUT dont share state 7
actor models Thread-based Event-based • Very lightweight • can easily create millions on a single workstation (6.5
million on 4 G RAM) 8
9
defining an actor
10
firing messages bang bang bang
11
send anything
12
fault tolerance let it crash linked set of actors
13
all for one
14
one for one
15
supervisor hierarchies
16
fault management
17
other concepts Akka STM Remote Actors
Akka Serialization Persistence
18
problem statement
19
considerations
20
hmm... STM – X Serialization – X Persistence – X Remoting – ?/X
21
22
23
24
issues
maxing out on the os threads
25
dispatchers thread based – dedicated os thread bound event based – backed by pool of threads priority event based work stealing 26
27
ala carte'
28
used in ...
29
more information
http://akka.io/docs/akka/1.3-RC1/intro http://thoughts.inphina.com/tag/akka/
30
Everyone ! “Thanks”
[email protected] @vhazrati
31