SlideShare a Scribd company logo
1 of 37
Download to read offline
Advanced Tech Night No.05


      単なるキャッシュじゃないよ!?
      データグリッドプラットフォーム

   Infinispanの紹介
                                       2012/09/20
                            Acroquest Technology
                                         束野 仁政
自己紹介

 束野 仁政(つかの さとゆき)
 Acroquest Technology株式会社
   @snuffkin
   もやっています。フレンディングよろしく!
   satoyuki

 これまで経験した主な業務は、フレームワーク/プラットフォーム開発。
  →基盤の開発に興味あります。
 HadoopやInfinispan、Nettyを利用するプロジェクトを経験。
  →ドキュメント少ない?OSSなら、ソースを読めばいいじゃない。
 社内勉強会でCEPやMessagePackの解説を担当。
  →流行りもの好き。

                                       1
                 Advanced Tech Night
はじめに

「KVS」(Key-Value Store)という単語を
聞いたことがある人?


「NoSQL」という単語を聞いたことがある人?



「Data Grid」という単語を聞いたことがある人?


                                     2
               Advanced Tech Night
はじめに

Data Gridとは?


正確性に目をつむると、

         高機能なKVS
ただし、 Infinispanは単なるKVSではない。

     Data Grid Platform
                                     3
               Advanced Tech Night
目次
1. Infinispanとは?
  ① Infinispanプロフィール
  ② Data Gridとは?
2. Infinispanの使い方~KVS編~
  ① 動作モードの分類
  ② プロセスの関係による分類
      • Client-Server modeで利用できるプロトコル
  ③ データ保持方式による分類
3. Infinispanの使い方~Data Grid編~
  ①   Cache Store
  ②   Distributed Executors
  ③   MapReduce
  ④   Query API
  ⑤   Grid File System
4. まとめ
                                                    4
                              Advanced Tech Night
第1章
Infinispanとは?

                           5
     Advanced Tech Night
Infinispanプロフィール

1. JBossファミリーの(In-Memory) Data Grid
   Platform
2. 公式サイト
   http://www.jboss.org/infinispan.html
3. JavaとScalaで記述されたOSS
4. ライセンスはLGPL v2.1
5. 主なコミッタはRed Hat社に所属
6. 2012年8月、ようやく本が出版
   「Infinispan Data Grid Platform」
                                          6
                  Advanced Tech Night
Data Gridとは?(1/5)

Data Gridに求められること
                                             分散システム
1. extreme scalability
   サーバ増加により、線形にスケールアウトできる
                                             分散システム
2. high availability
   障害が発生しづらい。発生時も素早く復旧できる
3. elastic data                               NoSQL

   様々な形式のデータを扱うことができる
4. support for compute grids                 Data Grid

   複数のサーバが結びつき、全体でひとつの処理を実行できる



                                                         7
                       Advanced Tech Night
Data Gridとは?(2/5)

Data Gridとは?(概ねこんな認識)
  ① サーバ分散による高速データアクセス
    →線形にスケールアウト
  ② 様々なデータを扱える
    →Infinispanの場合は、Javaオブジェクト
  ③ Jobを各サーバで分散実行可能
    →各サーバに処理を配布
    →ローカルデータにアクセスすることで高速化
    →MapReduce等


さらに、InfinispanはIn-Memory Data Grid

                                       8
                 Advanced Tech Night
Data Gridとは?(3/5)

Data Gridの主な適用箇所
 ① Webシステムにおけるセッション情報の保持
                                            複数サーバで
              Infinispan                  セッション情報を共有
          Web/AP
          サーバ


              Infinispan
          Web/AP
                                                 RDBMS
          サーバ


              Infinispan
          Web/AP
          サーバ


                                                         9
                    Advanced Tech Night
Data Gridとは?(4/5)

Data Gridの主な適用箇所
 ② DBのキャッシュ(low latencyでデータアクセス)
                                         DBのキャッシュを分散保持し
                                          大量データに高速アクセス
          Web/AP
          サーバ
                                  Infinispan



          Web/AP
                                  Infinispan       RDBMS
          サーバ



                                  Infinispan
          Web/AP
          サーバ


                                                           10
                   Advanced Tech Night
Data Gridとは?(5/5)

Data Gridの主な適用箇所
 ③ 分散実行
      複数サーバでの実行により
     並列性を増し、高速処理を実現                         Infinispan

                                   サーバ



                                            Infinispan

        Job実行                      サーバ



                                            Infinispan

                                   サーバ



                                                         11
                      Advanced Tech Night
第2章
Infinispanの使い方
     ~KVS編~
                           12
     Advanced Tech Night
プロセスの関係による分類
No. 機能                   概要                         メリット/デメリット
1   Embedded mode        ユーザが開発するアプリ                ○AppからInfinispanを
                         ケーション(以下、App)と             start/stopすることが可能
                         同一JVMで動作                   ○Listener等、機能が豊富
2   Client-Server mode   Appと別JVMで動作                ○様々なプロトコルが利用可
                                                    ○外部プロセスから利用可
                                                    ○Appと独立して動作可能

データ保持方式による分類
No. 機能                   概要                         メリット/デメリット
1   Replicated mode      各データを全てのサーバ                ○読み込みが高速
                         が保持する                      ×書き込みに時間がかかる
2   Distributed mode     各データを一部のサーバ ○書き込みが高速
                         が保持する       ×読み込みに時間がかかる

                                                                   13
                              Advanced Tech Night
プロセスの関係による分類(1/4)

1. Embedded mode
 ① ユーザが開発するAppと
   同一JVMでInfinispanを
   動作させる
 ② AppとInfinispanとの関係は
   1対1となる




              図はManik Surtani 「Infinispan In-memory data grid meets NoSQL」より引用
              http://www.slideshare.net/maniksurtani/infinspan-inmemory-data-grid-meets-nosql

                                                                                       14
                  Advanced Tech Night
プロセスの関係による分類(2/4)

2. Client-Server mode
  ① ユーザが開発するAppと別JVMで
    Infinispanを動作させる
  ② AppのJVMから複数のServerに
    アクセスする
  ③ Appが個々のサーバを意識しなくて
    良いように、Clientライブラリ内で
    隠ぺい可能
    (Hod Rod)

                図はManik Surtani 「Infinispan In-memory data grid meets NoSQL」より引用
                http://www.slideshare.net/maniksurtani/infinspan-inmemory-data-grid-meets-nosql

                                                                                         15
                    Advanced Tech Night
プロセスの関係による分類(3/4)
【Embedded mode】の実装例
1. Cacheにデータを格納・取得・削除する例
2. デフォルト設定で良いなら、これだけで利用可能

public static void main(String[] args) {
  // cacheを取得
  EmbeddedCacheManager manager = new DefaultCacheManager();
  Cache<String, String> cache = manager.getCache(“CacheName”);

    // cacheにデータを格納
    cache.put(“key”, “value”);

    // cacheからデータを取得
    cache.get(“key”);

    // cacheからデータを削除
    cache.remove(“key”);
}


                                                                 16
                                 Advanced Tech Night
プロセスの関係による分類(4/4)
【Client-Server mode】の実装例(Hot Rod)
1. 基本的なメソッドはEmbedded modeと同じ
2. サポートしているメソッドに違いあり

public static void main(String[] args) {
  // cacheを取得
  RemoteCacheManager manager = new RemoteCacheManager(“192.168.0.1:11223”);
  Cache<String, String> cache = manager.getCache(“CacheName”);

    // cacheにデータを格納
    cache.put(“key”, “value”);

    // cacheからデータを取得
    cache.get(“key”);

    // cacheからデータを削除
    cache.remove(“key”);
}


                                                                       17
                                 Advanced Tech Night
Client-Server modeで利用できるプロトコル(1/4)

【REST】
 ① URLで操作対象のキーを指定
   http://localhost:8080/infinispan/rest/CacheNam
   e/key
 ② HTTPメソッドでInfinispanのメソッドを指定
    No.   HTTPメソッド Infinispanメソッド               備考
    1     PUT       put                         BODYにputする値を設定
    2     GET       get
    3     DELETE    remove

 ③ HTTPロードバランサで通信先サーバを選択

                                                                 18
                          Advanced Tech Night
Client-Server modeで利用できるプロトコル(2/4)

【Memcached】
  ① KVSで利用される汎用的なプロトコル
  ② telnetでアクセスして、コマンドラインでCache操作
    可能
// cacheにデータを格納
> set key value

// cacheからデータを取得
> get key
value

// cacheからデータを削除
> delete key


  ③ Client Appで通信先サーバを選択する実装が必要
                                         19
                   Advanced Tech Night
Client-Server modeで利用できるプロトコル(3/4)

【Hot Rod】
    ① Infinispan固有のプロトコル
    ② Java, C#, Python, Rubyのクライアント有
    ③ 通信先サーバをAppから隠ぺい~Smart Routing
public static void main(String[] args) {
    // cacheを取得
    RemoteCacheManager manager = new RemoteCacheManager(“192.168.0.1:11223,192.168.0.2:11223”);
    Cache<String, String> cache = manager.getCache(“CacheName”);

    // cacheにデータを格納
    cache.put(“key”, “value”);

    // cacheからデータを取得
    cache.get(“key”);

    // cacheからデータを削除
    cache.remove(“key”);
}


                                                                                              20
                                          Advanced Tech Night
Client-Server modeで利用できるプロトコル(4/4)

 各プロトコルの特徴
No. プロトコル       プロトコルの     利用可能な               通信先サーバの選択
                汎用性        データ型
1   REST          ○        △ String            △ ロードバランサ
2   Memcached     ○        △ String            × App側で実装
3   Hot Rod       ×        ○ 任意                ○ Smart Routing(自動選択)
     ※正式サポートしていないが、WebSocketのインタフェース有


 分散環境でClient-Server modeを使う場合は
 基本的にHot Rodを選択することに
 なるのでは?
                                                                  21
                         Advanced Tech Night
データ保持方式による分類(1/2)

1. Replicated mode
  ① 各データを全ての                             putしたデータは
                                       全てのサーバに送信される
    サーバが保持する
  ② 読み込みが高速                                                Infinispan

  ③ 書き込みに時間がか
    かる                                 ①put
                                                            ②replica


                              App             Infinispan

                                                            ②replica




                                                           Infinispan




                                                                       22
                 Advanced Tech Night
データ保持方式による分類(2/2)

2. Distributed mode
  ① 各データを一部の                       putしたデータは
                                一部のサーバのみに送信される
    サーバが保持する
  ② 書き込みが高速                                                Infinispan

  ③ 読み込みに時間が
    かかる                                ①put
                                                            ②replica


                              App             Infinispan



                                                replica
                                              されないサーバ
                                                           Infinispan




                                                                       23
                 Advanced Tech Night
第3章
Infinispanの使い方
 ~Data Grid編~
                           24
     Advanced Tech Night
InfinispanのData Gridとしての主な機能
No. 機能                      概要                         メリット/デメリット
1   Cache Store             データ永続化                     Infinispanが終了しても、
                                                       データが失われない
2   Distributed Executors   分散実行機能                     データが存在するサーバ
                            一般的なタスクを実行                 上で高速・並列処理
3   MapReduce               分散実行機能                     データが存在するサーバ
                            MapReduce処理を実行             上で高速・並列処理
4   Query API               全文検索エンジン機能                 複数サーバで高速に検
                                                       索
5   Grid File System        メモリ上のファイルシステム              ・ファイルアクセスが高速
                                                       ・標準機能で冗長化




                                                                    25
                                 Advanced Tech Night
Data Gridとしての機能(1/5)

1. Cache Store
  ① データの永続化
  ② 永続化先                                App    Infinispan

    • サポート済み
       –   File System
       –   RDBMS                        App    Infinispan   Shared
                                                             Store
       –   Amazon S3
       –   Cassandra
    • 今後サポートされる予定
                                        App    Infinispan
       – GlasterFS




                                                               26
                         Advanced Tech Night
Data Gridとしての機能(2/5)

2. Distributed Executors
  ① 分散実行機能
  ② データを保持しているサーバに処
    理を配布し、バッチ実行
  ③ ディスクアクセスや
    ネットワークアクセスを
    極力減らして高速化




                                          27
                    Advanced Tech Night
Data Gridとしての機能(3/5)

3. MapReduce
  ① 分散実行機能。Hadoopで有名なあの処理
  ② 処理の流れ(インプットデータは事前に保持)
    1.   Jobを実行する
    2.   データ保持しているサーバでMap処理を実行
    3.   中間データをCacheに保存
    4.   データ保持しているサーバでReduce処理を実行
    5.   結果をJobに返す
                           In             ③             tmp
              Infinispan         ②                        Infinispan
                           Map            ③            Reduce ④
          ①
                                                                       ⑤

 Job実行
          ①                In                           tmp            ⑤
                                                                           Job実行
              Infinispan                   ③              Infinispan
                                 ②
                           Map                         Reduce ④

                                                                               28
                                 Advanced Tech Night
Data Gridとしての機能(4/5)

4. Query API
  ① 全文検索エンジンApache Luceneの
    Lucene Directoryの実装
  ② put時にデータのindexを作成・保持する
  ③ Hibernate Search APIを使って検索




                              図は公式サイトのUser Guide「Querying Infinispan」より引用
                              https://docs.jboss.org/author/display/ISPN/Querying+Infinispan

                                                                                    29
               Advanced Tech Night
Data Gridとしての機能(5/5)

5. Grid File System
  ① メモリ上のファイルシステム
  ② ファイルに高速アクセス
                                                         Meta
  ③ 2個のCacheで構成される                          Infinispan
                                                         File

     • メタデータ(ファイル名)
     • 実際のデータ                                            Meta
                                            Infinispan
  ④ Infinispanの標準機能で                                     File


    Replicationを実現 App
                                                         Meta
                                            Infinispan
                                                         File
                             App


                                                                30
                      Advanced Tech Night
まとめ

1. Infinispanとは?
  ① In-Memory Data Grid
2. Data Gridとは?
  ① サーバ分散による高速データアクセス
  ② 様々なデータを扱える
  ③ Jobを各サーバで分散実行可能
3. KVSとしてのInfinispan
  ① プロセスの関係による分類
    Embedded modeとClient-Server mode
  ② データ保持方式による分類
    Replicated modeとDistributed mode
                                         31
                   Advanced Tech Night
まとめ

4. Data GridとしてのInfinispan
No. 機能                      概要                         メリット/デメリット
1   Cache Store             データ永続化                     Infinispanが終了しても、
                                                       データが失われない
2   Distributed Executors   分散実行機能                     データが存在するサーバ
                            一般的なタスクを実行                 上で高速・並列処理
3   MapReduce               分散実行機能                     データが存在するサーバ
                            MapReduce処理を実行             上で高速・並列処理
4   Query API               全文検索エンジン機能                 複数サーバで高速に検
                                                       索
5   Grid File System        メモリ上のファイルシステム              ・ファイルアクセスが高速
                                                       ・標準機能で冗長化




                                                                    32
                                 Advanced Tech Night
最後に、、、

                        33
  Advanced Tech Night
あまり知られていないInfinispanですが
実は、他にも多くの機能があります
• Transaction
• Asynchronous API(非同期実行)
• L1 Cache(検索頻度が高いキーの検索を高速化)
• Rack Awareness(サーバの物理配置を考えた冗長化)
• Interceptor(Cacheに対してユーザが機能追加可能)
• Marshalling(データフォーマットのカスタマイズ)
• Continuous Query(Live Queryを発行。本体に未反映)
• Cross-datacentre replication
  (遠隔レプリケーション。9/19Alphaリリース)
• など、、、

                                       34
                 Advanced Tech Night
是非Infinispanを
使ってみてください

                           35
     Advanced Tech Night
ご静聴ありがとう
 ございました

                         36
   Advanced Tech Night

More Related Content

What's hot

え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...whywaita
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo!デベロッパーネットワーク
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 

What's hot (20)

え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 

Similar to 単なるキャッシュじゃないよ!?infinispanの紹介

Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPRyoga Saito
 
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』Brocade
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2Dell TechCenter Japan
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)Michitaka Terada
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3日本Javaユーザーグループ
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overviewirix_jp
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceKazuho Oku
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraD35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraInsight Technology, Inc.
 
Data Center As A Computer 2章前半
Data Center As A Computer 2章前半Data Center As A Computer 2章前半
Data Center As A Computer 2章前半Akinori YOSHIDA
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャKenta Hattori
 

Similar to 単なるキャッシュじゃないよ!?infinispanの紹介 (20)

Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』
ストレージ・ネットワークがわかるwebセミナー『古くて新しいファイバーチャネルの “今”』
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
 
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; OverviewOSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
AppFormix勉強会資料
AppFormix勉強会資料AppFormix勉強会資料
AppFormix勉強会資料
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraD35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
 
Data Center As A Computer 2章前半
Data Center As A Computer 2章前半Data Center As A Computer 2章前半
Data Center As A Computer 2章前半
 
NFaaS 輪読資料
NFaaS 輪読資料NFaaS 輪読資料
NFaaS 輪読資料
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャ
 

More from AdvancedTechNight

CSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3DCSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3DAdvancedTechNight
 
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界AdvancedTechNight
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めようAdvancedTechNight
 
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現AdvancedTechNight
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocketAdvancedTechNight
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験AdvancedTechNight
 
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)ScriptTypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)ScriptAdvancedTechNight
 
three.jsで作る3Dの世界
three.jsで作る3Dの世界three.jsで作る3Dの世界
three.jsで作る3Dの世界AdvancedTechNight
 
Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIAdvancedTechNight
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4AdvancedTechNight
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoAdvancedTechNight
 
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門AdvancedTechNight
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」AdvancedTechNight
 
Hadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバックHadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバックAdvancedTechNight
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOneAdvancedTechNight
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちAdvancedTechNight
 
ATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMRATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMRAdvancedTechNight
 
ATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlersATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlersAdvancedTechNight
 

More from AdvancedTechNight (20)

CSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3DCSS3Rendererを使ってiOSでもサクサク3D
CSS3Rendererを使ってiOSでもサクサク3D
 
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)ScriptTypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
TypeScriptのススメ ~JavaエンジニアのためのJava(like)Script
 
three.jsで作る3Dの世界
three.jsで作る3Dの世界three.jsで作る3Dの世界
three.jsで作る3Dの世界
 
Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPI
 
Spine入門
Spine入門Spine入門
Spine入門
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demo
 
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
 
Hadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバックHadoop scr第7回 hw2011フィードバック
Hadoop scr第7回 hw2011フィードバック
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
 
ATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMRATN No.1 Hadoop vs Amazon EMR
ATN No.1 Hadoop vs Amazon EMR
 
ATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlersATN No.2 大阪から来たJavaPuzzlers
ATN No.2 大阪から来たJavaPuzzlers
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

単なるキャッシュじゃないよ!?infinispanの紹介

  • 1. Advanced Tech Night No.05 単なるキャッシュじゃないよ!? データグリッドプラットフォーム Infinispanの紹介 2012/09/20 Acroquest Technology 束野 仁政
  • 2. 自己紹介  束野 仁政(つかの さとゆき)  Acroquest Technology株式会社  @snuffkin  もやっています。フレンディングよろしく!  satoyuki  これまで経験した主な業務は、フレームワーク/プラットフォーム開発。 →基盤の開発に興味あります。  HadoopやInfinispan、Nettyを利用するプロジェクトを経験。 →ドキュメント少ない?OSSなら、ソースを読めばいいじゃない。  社内勉強会でCEPやMessagePackの解説を担当。 →流行りもの好き。 1 Advanced Tech Night
  • 4. はじめに Data Gridとは? 正確性に目をつむると、 高機能なKVS ただし、 Infinispanは単なるKVSではない。 Data Grid Platform 3 Advanced Tech Night
  • 5. 目次 1. Infinispanとは? ① Infinispanプロフィール ② Data Gridとは? 2. Infinispanの使い方~KVS編~ ① 動作モードの分類 ② プロセスの関係による分類 • Client-Server modeで利用できるプロトコル ③ データ保持方式による分類 3. Infinispanの使い方~Data Grid編~ ① Cache Store ② Distributed Executors ③ MapReduce ④ Query API ⑤ Grid File System 4. まとめ 4 Advanced Tech Night
  • 6. 第1章 Infinispanとは? 5 Advanced Tech Night
  • 7. Infinispanプロフィール 1. JBossファミリーの(In-Memory) Data Grid Platform 2. 公式サイト http://www.jboss.org/infinispan.html 3. JavaとScalaで記述されたOSS 4. ライセンスはLGPL v2.1 5. 主なコミッタはRed Hat社に所属 6. 2012年8月、ようやく本が出版 「Infinispan Data Grid Platform」 6 Advanced Tech Night
  • 8. Data Gridとは?(1/5) Data Gridに求められること 分散システム 1. extreme scalability サーバ増加により、線形にスケールアウトできる 分散システム 2. high availability 障害が発生しづらい。発生時も素早く復旧できる 3. elastic data NoSQL 様々な形式のデータを扱うことができる 4. support for compute grids Data Grid 複数のサーバが結びつき、全体でひとつの処理を実行できる 7 Advanced Tech Night
  • 9. Data Gridとは?(2/5) Data Gridとは?(概ねこんな認識) ① サーバ分散による高速データアクセス →線形にスケールアウト ② 様々なデータを扱える →Infinispanの場合は、Javaオブジェクト ③ Jobを各サーバで分散実行可能 →各サーバに処理を配布 →ローカルデータにアクセスすることで高速化 →MapReduce等 さらに、InfinispanはIn-Memory Data Grid 8 Advanced Tech Night
  • 10. Data Gridとは?(3/5) Data Gridの主な適用箇所 ① Webシステムにおけるセッション情報の保持 複数サーバで Infinispan セッション情報を共有 Web/AP サーバ Infinispan Web/AP RDBMS サーバ Infinispan Web/AP サーバ 9 Advanced Tech Night
  • 11. Data Gridとは?(4/5) Data Gridの主な適用箇所 ② DBのキャッシュ(low latencyでデータアクセス) DBのキャッシュを分散保持し 大量データに高速アクセス Web/AP サーバ Infinispan Web/AP Infinispan RDBMS サーバ Infinispan Web/AP サーバ 10 Advanced Tech Night
  • 12. Data Gridとは?(5/5) Data Gridの主な適用箇所 ③ 分散実行 複数サーバでの実行により 並列性を増し、高速処理を実現 Infinispan サーバ Infinispan Job実行 サーバ Infinispan サーバ 11 Advanced Tech Night
  • 13. 第2章 Infinispanの使い方 ~KVS編~ 12 Advanced Tech Night
  • 14. プロセスの関係による分類 No. 機能 概要 メリット/デメリット 1 Embedded mode ユーザが開発するアプリ ○AppからInfinispanを ケーション(以下、App)と start/stopすることが可能 同一JVMで動作 ○Listener等、機能が豊富 2 Client-Server mode Appと別JVMで動作 ○様々なプロトコルが利用可 ○外部プロセスから利用可 ○Appと独立して動作可能 データ保持方式による分類 No. 機能 概要 メリット/デメリット 1 Replicated mode 各データを全てのサーバ ○読み込みが高速 が保持する ×書き込みに時間がかかる 2 Distributed mode 各データを一部のサーバ ○書き込みが高速 が保持する ×読み込みに時間がかかる 13 Advanced Tech Night
  • 15. プロセスの関係による分類(1/4) 1. Embedded mode ① ユーザが開発するAppと 同一JVMでInfinispanを 動作させる ② AppとInfinispanとの関係は 1対1となる 図はManik Surtani 「Infinispan In-memory data grid meets NoSQL」より引用 http://www.slideshare.net/maniksurtani/infinspan-inmemory-data-grid-meets-nosql 14 Advanced Tech Night
  • 16. プロセスの関係による分類(2/4) 2. Client-Server mode ① ユーザが開発するAppと別JVMで Infinispanを動作させる ② AppのJVMから複数のServerに アクセスする ③ Appが個々のサーバを意識しなくて 良いように、Clientライブラリ内で 隠ぺい可能 (Hod Rod) 図はManik Surtani 「Infinispan In-memory data grid meets NoSQL」より引用 http://www.slideshare.net/maniksurtani/infinspan-inmemory-data-grid-meets-nosql 15 Advanced Tech Night
  • 17. プロセスの関係による分類(3/4) 【Embedded mode】の実装例 1. Cacheにデータを格納・取得・削除する例 2. デフォルト設定で良いなら、これだけで利用可能 public static void main(String[] args) { // cacheを取得 EmbeddedCacheManager manager = new DefaultCacheManager(); Cache<String, String> cache = manager.getCache(“CacheName”); // cacheにデータを格納 cache.put(“key”, “value”); // cacheからデータを取得 cache.get(“key”); // cacheからデータを削除 cache.remove(“key”); } 16 Advanced Tech Night
  • 18. プロセスの関係による分類(4/4) 【Client-Server mode】の実装例(Hot Rod) 1. 基本的なメソッドはEmbedded modeと同じ 2. サポートしているメソッドに違いあり public static void main(String[] args) { // cacheを取得 RemoteCacheManager manager = new RemoteCacheManager(“192.168.0.1:11223”); Cache<String, String> cache = manager.getCache(“CacheName”); // cacheにデータを格納 cache.put(“key”, “value”); // cacheからデータを取得 cache.get(“key”); // cacheからデータを削除 cache.remove(“key”); } 17 Advanced Tech Night
  • 19. Client-Server modeで利用できるプロトコル(1/4) 【REST】 ① URLで操作対象のキーを指定 http://localhost:8080/infinispan/rest/CacheNam e/key ② HTTPメソッドでInfinispanのメソッドを指定 No. HTTPメソッド Infinispanメソッド 備考 1 PUT put BODYにputする値を設定 2 GET get 3 DELETE remove ③ HTTPロードバランサで通信先サーバを選択 18 Advanced Tech Night
  • 20. Client-Server modeで利用できるプロトコル(2/4) 【Memcached】 ① KVSで利用される汎用的なプロトコル ② telnetでアクセスして、コマンドラインでCache操作 可能 // cacheにデータを格納 > set key value // cacheからデータを取得 > get key value // cacheからデータを削除 > delete key ③ Client Appで通信先サーバを選択する実装が必要 19 Advanced Tech Night
  • 21. Client-Server modeで利用できるプロトコル(3/4) 【Hot Rod】 ① Infinispan固有のプロトコル ② Java, C#, Python, Rubyのクライアント有 ③ 通信先サーバをAppから隠ぺい~Smart Routing public static void main(String[] args) { // cacheを取得 RemoteCacheManager manager = new RemoteCacheManager(“192.168.0.1:11223,192.168.0.2:11223”); Cache<String, String> cache = manager.getCache(“CacheName”); // cacheにデータを格納 cache.put(“key”, “value”); // cacheからデータを取得 cache.get(“key”); // cacheからデータを削除 cache.remove(“key”); } 20 Advanced Tech Night
  • 22. Client-Server modeで利用できるプロトコル(4/4) 各プロトコルの特徴 No. プロトコル プロトコルの 利用可能な 通信先サーバの選択 汎用性 データ型 1 REST ○ △ String △ ロードバランサ 2 Memcached ○ △ String × App側で実装 3 Hot Rod × ○ 任意 ○ Smart Routing(自動選択) ※正式サポートしていないが、WebSocketのインタフェース有 分散環境でClient-Server modeを使う場合は 基本的にHot Rodを選択することに なるのでは? 21 Advanced Tech Night
  • 23. データ保持方式による分類(1/2) 1. Replicated mode ① 各データを全ての putしたデータは 全てのサーバに送信される サーバが保持する ② 読み込みが高速 Infinispan ③ 書き込みに時間がか かる ①put ②replica App Infinispan ②replica Infinispan 22 Advanced Tech Night
  • 24. データ保持方式による分類(2/2) 2. Distributed mode ① 各データを一部の putしたデータは 一部のサーバのみに送信される サーバが保持する ② 書き込みが高速 Infinispan ③ 読み込みに時間が かかる ①put ②replica App Infinispan replica されないサーバ Infinispan 23 Advanced Tech Night
  • 26. InfinispanのData Gridとしての主な機能 No. 機能 概要 メリット/デメリット 1 Cache Store データ永続化 Infinispanが終了しても、 データが失われない 2 Distributed Executors 分散実行機能 データが存在するサーバ 一般的なタスクを実行 上で高速・並列処理 3 MapReduce 分散実行機能 データが存在するサーバ MapReduce処理を実行 上で高速・並列処理 4 Query API 全文検索エンジン機能 複数サーバで高速に検 索 5 Grid File System メモリ上のファイルシステム ・ファイルアクセスが高速 ・標準機能で冗長化 25 Advanced Tech Night
  • 27. Data Gridとしての機能(1/5) 1. Cache Store ① データの永続化 ② 永続化先 App Infinispan • サポート済み – File System – RDBMS App Infinispan Shared Store – Amazon S3 – Cassandra • 今後サポートされる予定 App Infinispan – GlasterFS 26 Advanced Tech Night
  • 28. Data Gridとしての機能(2/5) 2. Distributed Executors ① 分散実行機能 ② データを保持しているサーバに処 理を配布し、バッチ実行 ③ ディスクアクセスや ネットワークアクセスを 極力減らして高速化 27 Advanced Tech Night
  • 29. Data Gridとしての機能(3/5) 3. MapReduce ① 分散実行機能。Hadoopで有名なあの処理 ② 処理の流れ(インプットデータは事前に保持) 1. Jobを実行する 2. データ保持しているサーバでMap処理を実行 3. 中間データをCacheに保存 4. データ保持しているサーバでReduce処理を実行 5. 結果をJobに返す In ③ tmp Infinispan ② Infinispan Map ③ Reduce ④ ① ⑤ Job実行 ① In tmp ⑤ Job実行 Infinispan ③ Infinispan ② Map Reduce ④ 28 Advanced Tech Night
  • 30. Data Gridとしての機能(4/5) 4. Query API ① 全文検索エンジンApache Luceneの Lucene Directoryの実装 ② put時にデータのindexを作成・保持する ③ Hibernate Search APIを使って検索 図は公式サイトのUser Guide「Querying Infinispan」より引用 https://docs.jboss.org/author/display/ISPN/Querying+Infinispan 29 Advanced Tech Night
  • 31. Data Gridとしての機能(5/5) 5. Grid File System ① メモリ上のファイルシステム ② ファイルに高速アクセス Meta ③ 2個のCacheで構成される Infinispan File • メタデータ(ファイル名) • 実際のデータ Meta Infinispan ④ Infinispanの標準機能で File Replicationを実現 App Meta Infinispan File App 30 Advanced Tech Night
  • 32. まとめ 1. Infinispanとは? ① In-Memory Data Grid 2. Data Gridとは? ① サーバ分散による高速データアクセス ② 様々なデータを扱える ③ Jobを各サーバで分散実行可能 3. KVSとしてのInfinispan ① プロセスの関係による分類 Embedded modeとClient-Server mode ② データ保持方式による分類 Replicated modeとDistributed mode 31 Advanced Tech Night
  • 33. まとめ 4. Data GridとしてのInfinispan No. 機能 概要 メリット/デメリット 1 Cache Store データ永続化 Infinispanが終了しても、 データが失われない 2 Distributed Executors 分散実行機能 データが存在するサーバ 一般的なタスクを実行 上で高速・並列処理 3 MapReduce 分散実行機能 データが存在するサーバ MapReduce処理を実行 上で高速・並列処理 4 Query API 全文検索エンジン機能 複数サーバで高速に検 索 5 Grid File System メモリ上のファイルシステム ・ファイルアクセスが高速 ・標準機能で冗長化 32 Advanced Tech Night
  • 34. 最後に、、、 33 Advanced Tech Night
  • 35. あまり知られていないInfinispanですが 実は、他にも多くの機能があります • Transaction • Asynchronous API(非同期実行) • L1 Cache(検索頻度が高いキーの検索を高速化) • Rack Awareness(サーバの物理配置を考えた冗長化) • Interceptor(Cacheに対してユーザが機能追加可能) • Marshalling(データフォーマットのカスタマイズ) • Continuous Query(Live Queryを発行。本体に未反映) • Cross-datacentre replication (遠隔レプリケーション。9/19Alphaリリース) • など、、、 34 Advanced Tech Night