Soumettre la recherche
Mettre en ligne
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
•
33 j'aime
•
23,973 vues
Kazuki Negoro
Suivre
2016/01/30 @negokaz http://scalamatsuri.org/
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 59
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
Amazon Web Services Japan
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Recommandé
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
Amazon Web Services Japan
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
apkiban
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
Masahiro NAKAYAMA
Metaspace
Metaspace
Yasumasa Suenaga
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
From Microliths To Microsystems
From Microliths To Microsystems
Jonas Bonér
Contenu connexe
Tendances
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
apkiban
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
Masahiro NAKAYAMA
Metaspace
Metaspace
Yasumasa Suenaga
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Tendances
(20)
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
脱RESTful API設計の提案
脱RESTful API設計の提案
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
Glibc malloc internal
Glibc malloc internal
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
Metaspace
Metaspace
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
En vedette
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
From Microliths To Microsystems
From Microliths To Microsystems
Jonas Bonér
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Jonas Bonér
Pragmatic Real-World Scala (short version)
Pragmatic Real-World Scala (short version)
Jonas Bonér
Reactive Microsystems: The Evolution of Microservices at Scale
Reactive Microsystems: The Evolution of Microservices at Scale
Jonas Bonér
How Events Are Reshaping Modern Systems
How Events Are Reshaping Modern Systems
Jonas Bonér
Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
Yuta Okamoto
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
Zen of Akka
Zen of Akka
Konrad Malawski
Building Reactive Systems with Akka (in Java 8 or Scala)
Building Reactive Systems with Akka (in Java 8 or Scala)
Jonas Bonér
En vedette
(13)
How Scala code is expressed in the JVM
How Scala code is expressed in the JVM
From Microliths To Microsystems
From Microliths To Microsystems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Pragmatic Real-World Scala (short version)
Pragmatic Real-World Scala (short version)
Reactive Microsystems: The Evolution of Microservices at Scale
Reactive Microsystems: The Evolution of Microservices at Scale
How Events Are Reshaping Modern Systems
How Events Are Reshaping Modern Systems
Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
Why Reactive Matters #ScalaMatsuri
ScalaMatsuri 2016
ScalaMatsuri 2016
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
Zen of Akka
Zen of Akka
Building Reactive Systems with Akka (in Java 8 or Scala)
Building Reactive Systems with Akka (in Java 8 or Scala)
Similaire à バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
Mc web controllerご紹介資料2017.03.13
Mc web controllerご紹介資料2017.03.13
MPN Japan
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo!デベロッパーネットワーク
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
Insight Technology, Inc.
Diskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStack
Yuki Yamashita
Akkaを使ったスケーラブルなLINE BOT
Akkaを使ったスケーラブルなLINE BOT
Takashi Sugimoto
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo!デベロッパーネットワーク
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
Daisuke Ikeda
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
Amazon Web Services Japan
Python / R で使うSAS Viya
Python / R で使うSAS Viya
SAS Institute Japan
バッチソリューションAzarea cluster 2016
バッチソリューションAzarea cluster 2016
AzareaCluster
HANAのハナシの基本のき
HANAのハナシの基本のき
Koji Shinkubo
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
Insight Technology, Inc.
Contrail deploy by Juju/MAAS
Contrail deploy by Juju/MAAS
Ikuo Kumagai
弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ
Takashi Kozu
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
知って得する!パブリッククラウドをオンプレミスのように使う裏ワザ
知って得する!パブリッククラウドをオンプレミスのように使う裏ワザ
エクイニクス・ジャパン
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置について
エクイニクス・ジャパン
Enterpriseapi20160210
Enterpriseapi20160210
Shinichiro Takezaki
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
エクイニクス・ジャパン
Similaire à バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
(20)
Mc web controllerご紹介資料2017.03.13
Mc web controllerご紹介資料2017.03.13
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
Diskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStack
Akkaを使ったスケーラブルなLINE BOT
Akkaを使ったスケーラブルなLINE BOT
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
Python / R で使うSAS Viya
Python / R で使うSAS Viya
バッチソリューションAzarea cluster 2016
バッチソリューションAzarea cluster 2016
HANAのハナシの基本のき
HANAのハナシの基本のき
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
Contrail deploy by Juju/MAAS
Contrail deploy by Juju/MAAS
弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
知って得する!パブリッククラウドをオンプレミスのように使う裏ワザ
知って得する!パブリッククラウドをオンプレミスのように使う裏ワザ
クラウドファースト時代の最適なシステム配置について
クラウドファースト時代の最適なシステム配置について
Enterpriseapi20160210
Enterpriseapi20160210
OpenStack環境の継続的インテグレーション
OpenStack環境の継続的インテグレーション
Dernier
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(7)
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
1.
バッチを Akka Stream
で再実装したら100倍速くなった話
2.
Copyright © 2016
TIS Inc. All rights reserved. 根来 和輝 TIS 株式会社 生産技術R&D室 ‣ ‣ ‣
3.
Copyright © 2016
TIS Inc. All rights reserved. 今日話すこと Akka Streams を使ってバッチの処理速度を100倍にした事例
4.
Copyright © 2016
TIS Inc. All rights reserved. パフォーマンスに問題を抱えた本番運用されているバッチ処理
5.
Copyright © 2016
TIS Inc. All rights reserved. バッチ処理 毎日夜間に、その日の取引情報をCSVファイルに書き出す
6.
Copyright © 2016
TIS Inc. All rights reserved. アーキテクチャ Active Record
7.
Copyright © 2016
TIS Inc. All rights reserved. DBから一括で時刻順の取引情報を取得し、一行ずつ処理し、 一行ずつファイルへ書き出す
8.
Copyright © 2016
TIS Inc. All rights reserved. 問題は何か 処理が終わるのが遅い。応急処置でなんとか凌いでいる。
9.
Copyright © 2016
TIS Inc. All rights reserved. 遅い原因はなにか?
10.
Copyright © 2016
TIS Inc. All rights reserved. 調査環境として仮想マシンを構築。 本番環境と同じリソースを割り当て。 ‣ ‣ ‣ ‣
11.
Copyright © 2016
TIS Inc. All rights reserved. 調査のシナリオでは100万件のデータを用意
12.
Copyright © 2016
TIS Inc. All rights reserved. 結果、処理速度は毎秒4件
13.
Copyright © 2016
TIS Inc. All rights reserved. 100万件処理するのに3日
14.
Copyright © 2016
TIS Inc. All rights reserved. ボトルネックはどこか? スワップ領域が大量に消費 0 1000 2000 3000 4000 5000 6000 0:00 0:20 0:40 1:00 1:20 1:40 2:00 2:20 2:40 - - Memory - - Swap ‣
15.
Copyright © 2016
TIS Inc. All rights reserved. 処理のボトルネック
16.
Copyright © 2016
TIS Inc. All rights reserved. メモリを潤沢に用意すれば問題ないのか?
17.
Copyright © 2016
TIS Inc. All rights reserved. ‣ ‣ ‣ ‣
18.
Copyright © 2016
TIS Inc. All rights reserved. 調査のシナリオでは100万件のデータを処理
19.
Copyright © 2016
TIS Inc. All rights reserved. 結果、処理速度は毎秒100件
20.
Copyright © 2016
TIS Inc. All rights reserved. 100万件処理するのに3時間
21.
Copyright © 2016
TIS Inc. All rights reserved. ボトルネックは解消されたのか? メモリ不足は解消 0 1000 2000 3000 4000 5000 6000 7000 0:00 0:05 0:10 0:15 0:20 0:25 - - Memory - - Swap ‣
22.
Copyright © 2016
TIS Inc. All rights reserved. 使われているCPUコアは1つのみ ‣
23.
Copyright © 2016
TIS Inc. All rights reserved. 第2のボトルネック
24.
Copyright © 2016
TIS Inc. All rights reserved. 少しずつデータを取得。処理を並列で行う。 ただし、取得したデータの並びは維持。 ‣
25.
Copyright © 2016
TIS Inc. All rights reserved. DBから時刻順のデータを少しずつ取得。並列で処理。 取得した順序で書き出し。
26.
Copyright © 2016
TIS Inc. All rights reserved. ここに Akka Streams が使える
27.
Copyright © 2016
TIS Inc. All rights reserved. Akka Streams は Reactive Streams の Akka を使った実装 ‣ ‣
28.
Copyright © 2016
TIS Inc. All rights reserved. アーキテクチャ Streams
29.
Copyright © 2016
TIS Inc. All rights reserved. Reactive Streams の Publisher を通じてデータを ストリーミングするAPIを提供 Streams
30.
Copyright © 2016
TIS Inc. All rights reserved. 同期的な入出力と並列処理 Streams
31.
Copyright © 2016
TIS Inc. All rights reserved. 既存のバッチと同じ結果が得られるように実装。 キャッシュも既存のものと同様に実装。
32.
Copyright © 2016
TIS Inc. All rights reserved. 実装の構成要素 ‣ ‣ ‣
33.
Copyright © 2016
TIS Inc. All rights reserved. 実装 ※ 説明用に簡略化したコード
34.
Copyright © 2016
TIS Inc. All rights reserved. 入力、処理、出力、実行
35.
Copyright © 2016
TIS Inc. All rights reserved.
36.
Copyright © 2016
TIS Inc. All rights reserved.
37.
Copyright © 2016
TIS Inc. All rights reserved. この部分の処理は並列に実行される
38.
Copyright © 2016
TIS Inc. All rights reserved.
39.
Copyright © 2016
TIS Inc. All rights reserved.
40.
Copyright © 2016
TIS Inc. All rights reserved. 調査環境として仮想マシンを構築。 本番環境と同じリソースを割り当て。 ‣ ‣ ‣ ‣
41.
Copyright © 2016
TIS Inc. All rights reserved. 調査のシナリオでは100万件のデータを処理
42.
Copyright © 2016
TIS Inc. All rights reserved. 結果、処理速度は毎秒1,180件
43.
Copyright © 2016
TIS Inc. All rights reserved. 100万件処理するのに14分
44.
Copyright © 2016
TIS Inc. All rights reserved. ボトルネックは解消されたのか? メモリ不足は発生していない 0 200 400 600 800 1000 1200 1400 1600 1800 2000 0:00 0:00 0:01 0:02 0:03 0:04 0:05 0:05 0:06 0:07 0:08 0:09 - - Memory - - Swap ‣
45.
Copyright © 2016
TIS Inc. All rights reserved. CPUの全コアが使われている ‣
46.
Copyright © 2016
TIS Inc. All rights reserved. メモリがボトルネックになっていた場合と比較
47.
Copyright © 2016
TIS Inc. All rights reserved. CPUがボトルネックになっていた場合と比較
48.
Copyright © 2016
TIS Inc. All rights reserved.
49.
バッチを Akka Streams
で再実装したら295倍速くなった話
50.
Copyright © 2016
TIS Inc. All rights reserved. ハードウェアを変更せずに大幅な性能改善できた。 experimental なので本番環境への適用は注意。
51.
Copyright © 2016
TIS Inc. All rights reserved.
52.
Copyright © 2016
TIS Inc. All rights reserved. ストリームなのにメモリ不足。Slick の streaming API を使っ てデータを取得しているのに一括で取得されてしまう。
53.
Copyright © 2016
TIS Inc. All rights reserved. MySQL固有の問題 解決方法: enableStreamingResults() を設定
54.
Copyright © 2016
TIS Inc. All rights reserved. 非同期キャッシュ - spray-caching 非同期ノンブロッキングでスレッドセーフなキャッシュ
55.
Copyright © 2016
TIS Inc. All rights reserved.
56.
Copyright © 2016
TIS Inc. All rights reserved.
57.
Copyright © 2016
TIS Inc. All rights reserved. 2016年2月2日 7:00PM-10:30PM、場所は西新宿
58.
Copyright © 2016
TIS Inc. All rights reserved. 2016年2月2日 7:00PM-10:30PM、場所は西新宿
59.
THANK YOU
Télécharger maintenant