KZKY memo

自分用メモ.

akka

怒涛のAkka: Cluster Usage

この記事はAkka2.3.9なので注意. Documentの通りにやる. A Simple Cluster Example Cluster extension を有効にするには次のapplication.confをclass path rootにおく. src/main/resources/においておけばいい applicatoin.conf akka { actor { provider …

怒涛のAkka: Cluster Specification

初めに,これは忘れてはいけない Akka Cluster provides a fault-tolerant decentralized peer-to-peer based cluster membership service with no single point of failure or single point of bottleneck. It does this using gossip protocols and an aut…

怒涛のAkka: General

akka generalのまとめ,重要だと思った箇所のみ抜粋している. Actor Sytem ActorSystem(Actorを作るobject)は,threadをたくさん使い,heavyweight stuructureなので,1つのロジカルアプリケーションに1つつくること. Hierachical Structure 親acotrが子ac…

怒涛のAkka: Futures

基本 Futureはakka pgkではなくてscala pkgのしたにある. concurrent操作結果を受け取るときに使用されるがblockingでも使える. Execution Contextが必要 Actor内ならimport context.dispatcherでExecutionContextを使うのも良い Timeoutも必要 Await.resu…

怒涛のAkka: Actor DSL

REPLなどで使う. import akka.actor.ActorDSL._ import akka.actor.ActorSystem implicit val system = ActorSystem("demo") val a = actor(new Act { become { case "hello" ⇒ sender() ! "hi" } }) become/unbecomeやlife-cycle manegementも可能らしい.…

怒涛のAkka: Testing Actor Systems

基本 Synchronous/Asynchronousの2つがあると考えて良い. Synchronous Test メッセージの順序が決定的かつコンカレンシーを考えない場合のテスト基本は import akka.testkit.TestActorRef import scala.concurrent.duration._ import scala.concurrent.Awai…

怒涛のAkka: FSM

基本 Finate State Machineとは 状態 イベント アクション のtripletで構成される.ある状態の時にあるイベントが起こるとあるアクションをとって別状態 に移動するというマシン.ただし,とり得る状態は有限. APIと設計 Event/State/Dataを定義する. Even…

怒涛のAkka: Routing

基本 Router Actorは別のActorにラップして使用する. 理由は,Router ActorはRouter Actorをextendして使うわけではなく,実装も普通のActorとは違うため,別のActorにラップしてsupervised strategyを適用できるようにしたいから. Routerの基本的使い方 W…

怒涛のAkka: Mailboxes

1 acotr: 1mailboxだけれども,BalancingPoolのようにそうでない場合もある. message queueのタイプをアクターに要求 RequiresMessageQueueをタイプ付きでインプリ import akka.dispatch.RequiresMessageQueue import akka.dispatch.BoundedMessageQueueSem…

怒涛のAkka: Dispatchers

Actorを動かしているのがMessageDispatcher. すべてのMessageDispatcherのインプリがExecutorContext. actor systemの作成時にExecutorContextを渡すとそれがシステム全体のDispatcher 指定がなければ,defaultはfork-join-executor.Dispatcherは,mailbox,…

怒涛のAkka: Fault Tolerance

Fault Handling in Practice ここに書いてあるダイアグラムとコードを読むべき.Fault-Toleranceなsystemの設計指針がわかる. Creating a Supervisor Strategy こんな感じでStrategryを定義できる import akka.actor.OneForOneStrategy import akka.actor.S…

怒涛のAkka: Typed Actors

When to use Typed Actors Active Objectの実装. Active Objectはメソッド呼び出しとメソッド実行をそれぞれ別のスレッドにするデザインパターン.インターフェイスを持つクラスをTyped Actorを使うことで非同期にできる. こうするとActorの実装とOO-likeな…

怒涛のAkka: Actor編

Akka Scala DocのActorsを大体読んで噛み砕いたのでそのメモ. Actors 怒涛のAkka: Actors - KZKY memo 怒涛のAkka: Actors - KZKY memo Typed Actors 怒涛のAkka: Typed Actors - KZKY memo 怒涛のAkka: Typed Actors - KZKY memo Fault Tolerance 怒涛のAk…

怒涛のAkka: Actors

Actor API extends Actorしたときに使える APIの説明 context.actorOfでchild actorつくる start/stopのhook etc. Actor Lifecycle 図を見る 登場人物 ActorPath ActorSelection pathの表現 actor refの名前解決 ActorRef incarnationの表現 pathを持つ uid…

Scala akka 導入

基本 http://www.slideshare.net/sifue/akka-39611889が超わかりやすい. 並列処理の基本とJavaのconcurrent packageとを引き合いにして, Akka Documentをかなり完結にまとめている. Akkaとは 状態とアドレス,MailBoxをもった1つのThreadであるActorを提…

Spark Streaming 4

Fault-tolerance Semanticsについての話.基本はここのまとめ Spark RDDのfalut-tolerence semantics Spark RDDのfalut-tolerence semanticsのおさらい. イミュータブルで決定的に再計算可能で分散化されており,自分の決定的操作の系譜を覚えている. ワー…

Spark Streaming 3

Performance Tuning基本的にはこれのまとめStreamingで気を配るは以下2点 クラスタのリソースを効率的に使用してのデータバッチの処理時間 バッチを受け取ってからすぐ処理できるような適切なバッチサイズ Reducing the Processing Time of each Batch Spar…

GraphX 4

GraphXのPregelAPI関連のまとめ.はじめにGoogleのPregel Paperの概要をまとめてから,GraphXのPregelAPIをまとめる. Pregel Paper 概要 Balk Synchronous Parallelの実装 superstepを1単位としたMessage Passing source verticesからメッセージをdestinat…