Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Scala Conference in Japan 2013Data Stream Processing and Analysis withAkka CyberAgent Inc., Ameba Technology Laboratory ○ ...
株式会社サイバーエージェント                                               2Self Introduction      シュティフ・ロマン•   Roman Y. Shtykh•   R&D E...
株式会社サイバーエージェント                                                               3Contents• Ameba Services• Ameba Technology L...
株式会社サイバーエージェント                                                 4     Ameba Services・       Monthly PV :                   ...
Ameba Pigg                株式会社サイバーエージェント                                                       5「 アメーバピグ」                「...
Smartphone Apps   株式会社サイバーエージェント                                   6
株式会社サイバーエージェント                                                 7  Ameba Technology Laboratory・ From April 2011・ About 20 e...
株式会社サイバーエージェント                                                                                 8                     Techn...
株式会社サイバーエージェント                                                                            9Onix• Generic real-time event p...
株式会社サイバーエージェント                                                            10System Overview• Collectors • data receivers• ...
株式会社サイバーエージェント                                               11Zones of Failure Resistance
株式会社サイバーエージェント                                               12Zones of Failure ResistanceWrite-Ahead Log
株式会社サイバーエージェント                                               13Zones of Failure ResistanceQueue
株式会社サイバーエージェント                                               14Zones of Failure ResistanceGuaranteed Event Delivery
株式会社サイバーエージェント                                    15Replaying Events
株式会社サイバーエージェント                                    16Replaying Events Event replay
株式会社サイバーエージェント                                                   17Scaling Out              topics/partitions             ...
株式会社サイバーエージェント                                                                18Scaling Out                           topi...
株式会社サイバーエージェント                                                                 19Scaling Out                            to...
株式会社サイバーエージェント                                             20Scaling Out:Sprinklers and Processors
株式会社サイバーエージェント                                                                                  21Scaling Out:Sprinklers a...
株式会社サイバーエージェント                                                                           22Scaling Out:Sprinklers and Proc...
株式会社サイバーエージェント                                             23Scaling Out:Sprinklers and ProcessorsLarger View
株式会社サイバーエージェント                                                                               24Extensibility  Adding a new...
株式会社サイバーエージェント                                   25Results•   Monthly,•   Hourly,•   Minutely,•   You specify
株式会社サイバーエージェント                                                           26Possible Scenario: Integration with Patriot• Lo...
株式会社サイバーエージェント                                                           27Possible Scenario: Integration with Patriot• Lo...
株式会社サイバーエージェント                                                                 28Current State and Challenges• Auto-scalin...
29Processing Tasks•           Spam Detection    •        Identifying spams from             articles, messages, comments, ...
株式会社サイバーエージェント                                                                                                            ...
株式会社サイバーエージェント                                                                                            31Why Akka?• “Le...
株式会社サイバーエージェント                                                                   32Some Java-related ‘problems’• Scala API...
株式会社サイバーエージェントThank you for your attention!
Upcoming SlideShare
Loading in …5
×

Data Stream Processing and Analysis with Akka

2,208 views

Published on

Published in: Technology

Data Stream Processing and Analysis with Akka

  1. 1. Scala Conference in Japan 2013Data Stream Processing and Analysis withAkka CyberAgent Inc., Ameba Technology Laboratory ○ Roman Y. Shtykh, Mitsuharu Makita
  2. 2. 株式会社サイバーエージェント 2Self Introduction シュティフ・ロマン• Roman Y. Shtykh• R&D Engineer• Ameba Technology Lab• Interests: • Distributed Computing • Information Retrieval
  3. 3. 株式会社サイバーエージェント 3Contents• Ameba Services• Ameba Technology Lab• Onix: Data Stream Processing and Analysis• Choice of Akka
  4. 4. 株式会社サイバーエージェント 4 Ameba Services・ Monthly PV : 33.1billion・ Number of users : about 24 million* As of Sep 2012
  5. 5. Ameba Pigg 株式会社サイバーエージェント 5「 アメーバピグ」 「 ピグライフ」「 ピグカフェ」 「 ピグアイランド」
  6. 6. Smartphone Apps 株式会社サイバーエージェント 6
  7. 7. 株式会社サイバーエージェント 7 Ameba Technology Laboratory・ From April 2011・ About 20 engineers
  8. 8. 株式会社サイバーエージェント 8 Technology Areas Smartphone News Blog games Pigg Othersprofile Now Ameba Search Data Mining Large- Scale Distribute Pigg Messaging Blog Gruppo d Data Blog Gruppo Processing Recommenders Filtering
  9. 9. 株式会社サイバーエージェント 9Onix• Generic real-time event processing and analysis platform• Emphasis on • Low latency event processing with delivery guarantees • => correct analysis real-time • Being replayable if failure still occurs • Scalability • Extensibility• Built on Akka 2.0.x
  10. 10. 株式会社サイバーエージェント 10System Overview• Collectors • data receivers• Queue• Sprinklers • pulling and scattering event data• Processors • processing according to the specified tasks
  11. 11. 株式会社サイバーエージェント 11Zones of Failure Resistance
  12. 12. 株式会社サイバーエージェント 12Zones of Failure ResistanceWrite-Ahead Log
  13. 13. 株式会社サイバーエージェント 13Zones of Failure ResistanceQueue
  14. 14. 株式会社サイバーエージェント 14Zones of Failure ResistanceGuaranteed Event Delivery
  15. 15. 株式会社サイバーエージェント 15Replaying Events
  16. 16. 株式会社サイバーエージェント 16Replaying Events Event replay
  17. 17. 株式会社サイバーエージェント 17Scaling Out topics/partitions corresponding sprinklers
  18. 18. 株式会社サイバーエージェント 18Scaling Out topics/partitions corresponding sprinklers 1…* processors per a sprinkler
  19. 19. 株式会社サイバーエージェント 19Scaling Out topics/partitions corresponding sprinklers 1…* processors per a sprinkler 1…* processing tasks one 1 processor
  20. 20. 株式会社サイバーエージェント 20Scaling Out:Sprinklers and Processors
  21. 21. 株式会社サイバーエージェント 21Scaling Out:Sprinklers and Processors increasing total throughput under an increased load
  22. 22. 株式会社サイバーエージェント 22Scaling Out:Sprinklers and Processors mps 6 5 4 mps 3 2 1 0 5000 10000 15000 20000 ※ in ideal settings
  23. 23. 株式会社サイバーエージェント 23Scaling Out:Sprinklers and ProcessorsLarger View
  24. 24. 株式会社サイバーエージェント 24Extensibility Adding a new functionality is as simple as • Writing a processor plugin extending the base class • Registering it to the processor pool Processing functionality becomes available to all services
  25. 25. 株式会社サイバーエージェント 25Results• Monthly,• Hourly,• Minutely,• You specify
  26. 26. 株式会社サイバーエージェント 26Possible Scenario: Integration with Patriot• Log processing platform at Ameba • since 2010• Hadoop/Hive, HBase• Working with • User behavioral logs • Access logs • Textual data (blogs, etc.)Enabling lambda architecture with Onix!
  27. 27. 株式会社サイバーエージェント 27Possible Scenario: Integration with Patriot• Log processing platform at Ameba • since 2010• Hadoop/Hive, HBase, Onix (speed layer)• Working with • User behavioral logs • Access logs • Textual data (blogs, etc.)• Supplementing Patriot with real-time analytics • Incremental update of real-time views • Emphasis on the latest data
  28. 28. 株式会社サイバーエージェント 28Current State and Challenges• Auto-scaling is not available yet • Needed to reduce management complexity• Additional APIs and protocols to support• Only basic processing tasks are implemented• In beta
  29. 29. 29Processing Tasks• Spam Detection • Identifying spams from articles, messages, comments, etc.• Outlier Action Detection • Detecting fraud acts on online game • Unauthorized users, etc. # e.g. R15+, R18+ • Unauthorized tools • Abuses • Detecting other anomalies • DDoS attacks • Invasions • Failures
  30. 30. 株式会社サイバーエージェント 30Why Akka?• Gives loose coupling(疎結合) and location transparency(ロケーション透過性) for design • Actor Model• Easy scaling • Asynchronous and Distributed by design • Remoting Address addr = new Address("akka", "sys", "host", 1234); ActorRef ref = system.actorOf(new Props(RemoteDeploymentDocSpec.Echo.class).withDeploy( new Deploy(new RemoteScope(addr)))); • Microkernel bin/akka sample.kernel.hello.HelloKernel• No visibility(可視性) and race condition(競合状態) concerns -> lower complexity of the system • Isolated Mutability (単独可変性) provided by Actor Concurrency Model(並列モデル)
  31. 31. 株式会社サイバーエージェント 31Why Akka?• “Let It Crash” Philosophy • Surviving failures in a simple way instead of doing defensive programming • Don’t be afraid to crash!• Java API• Open Source• Responsive Community
  32. 32. 株式会社サイバーエージェント 32Some Java-related ‘problems’• Scala API is richer than Java API• SBT is required if you want to do something fancy‘• application.conf must be merged with multiple reference.conf manually if you need a fat jar
  33. 33. 株式会社サイバーエージェントThank you for your attention!

×