タグ

Infinispanに関するnobusueのブックマーク (24)

  • Build embedded cache clusters with Quarkus and Red Hat Data Grid | Red Hat Developer

  • HotRod ストアを使ったWildflyのセッションレプリケーション - #chiroito ’s blog

    これまでは、リモートストアを使用して HTTP セッションを Infinispan やその商用製品である Red Hat Data Grid へオフロードしていました。ですがその方法は Wildfly 14 (JBoss EAP 7.2)から古くなったようです。新しい方法は同バージョンから導入されたelytron サブシステムと統合する HotRod プロトコルをベースとするカスタムの最適化されたキャッシュストアを使います。 24.3.10. リモートストアを使用した HTTP セッションの Red Hat Data Grid への外部化 環境 Wildfly 19.1 Infinispan 9.4.18 Java EE 8 今回構築する構成は以下の様な構成です。1 つの Wildfly と 2 つの Infinispan を構築します。 サンプルのソースコードはこちらにあります。 Git

    HotRod ストアを使ったWildflyのセッションレプリケーション - #chiroito ’s blog
  • Github上の最新のInfinispanを使う - #chiroito ’s blog

    Infinispanを使う時はDownload - Infinispanのようなダウンロードサイトで必要なファイルをダウンロードして使います。しかし、開発しているGithub上の最新バージョンを使って動かしたい時もあるでしょう。そんな時はビルドした後に出来上がる成果物を使います。 ビルド環境の準備の仕方はこちらをご覧ください Windows 上に Infinispan 11 のビルド環境を構築してみた - #chiroito ’s blog infinispanディレクトリにソースコードを落としてきてとして、以下の様にビルドします。 $ cd infinispan $ mvn -s maven-settings.xml package -DskipTests=true 100モジュールほどのビルドが掛かるのでしばらく待ちます。無事に終了すると infinispan\server\runti

    Github上の最新のInfinispanを使う - #chiroito ’s blog
  • Infinispan Hot RodのDistributed-cacheで自作のエンティティを使う - #chiroito ’s blog

    インメモリデータグリッドを使用するにあたり分散キャッシュを使って自作のデータ型となるエンティティを使うことは避けられないでしょう。今回はHot Rodを使ったDistributed-cacheでどうやって自作のエンティティを使うかを紹介します。 オブジェクトを読み書きするためにはオブジェクトのシリアライズ/デシリアライズが必要になります。 Infinispan を分散キャッシュとして使うにはネットワーク通信が必要ですので、シリアライズ/デシリアライズが必要となります。サーバ内ではオブジェクトはシリアライズされた状態で格納されています。そのため、サーバ側でデシリアライズする必要が無ければクライアント側だけにシリアライズ/デシリアライズの情報やクラスがあれば動きます。シリアライズするにはマーシャラが必要ですが、Infinispan では自作のエンティティに設定をするだけでマーシャラを自動生成し

    Infinispan Hot RodのDistributed-cacheで自作のエンティティを使う - #chiroito ’s blog
  • Infinispan の Hot Rod で設定ファイルとコードによる設定を組み合わせる - #chiroito ’s blog

    Infinispanを触ってて、設定ファイルで設定した内容に加え、コードによる設定を足したいなと思うことがあったので書いてみました。 以下の通りにするとHot Rodの設定ファイルであるresources/hotrod-client.propertiesを読み込みつつ、コードによる設定もできます。 ConfigurationBuilder cb = new ConfigurationBuilder(); // 設定ファイルの読み込み ClassLoader cl = Thread.currentThread().getContextClassLoader(); cb.classLoader(cl); InputStream stream = FileLookupFactory.newInstance().lookupFile("hotrod-client.properties", cl);

    Infinispan の Hot Rod で設定ファイルとコードによる設定を組み合わせる - #chiroito ’s blog
  • Infinispan のクライアントサーバモードでget/putの性能測定 - #chiroito ’s blog

    Infinispan をクライアントサーバモードで動かした時の、実行回数をスレッド数を変えて性能測定してみました。 環境 クライアントとサーバのマシンを1台ずつ用意しています。サーバマシンにはInfinispanを2プロセス起動しています。 使用したInfinispanは10.1.3.Finalです。 クライアント Lenovo X1 Xtremeで、物理4コアのi5-9400H を搭載しています。クロックは2.5GHz-4.3GHzです。 サーバ 自作のPCで、物理8コアのi9-9900Kを搭載してます。クロックは3.6GHz-5.0GHzです。 ※来は複数のサーバマシン間で複製をとるため複製においてもネットワーク通信が発生します。しかし、今回は資材の都合上同じマシン上で複製処理が行われているためネットワークを介していません。そのため、put処理では実際のベンチマークとは異なる結果にな

    Infinispan のクライアントサーバモードでget/putの性能測定 - #chiroito ’s blog
  • Infinispan をクライアントサーバモードで使ってみる - #chiroito ’s blog

    今回は、Infinispan をクライアントサーバモードでキャッシュを使用してみます。 デフォルト設定で作成してあるmycacheという名前のキャッシュを使用します。サンプルコードではまず、このキャッシュを取得します。最後にそのキャッシュにあるデータの件数やデータを取得・格納してみます。 クライアントサーバモードの環境構築についてはこちらを参照下さい。 Infinispan 10.1 の環境を構築する - #chiroito ’s blog 今回使うメソッドは以下のとおりです。使うクラスはライブラリモードと異なりますが、使うメソッドは同一です。 データの件数を取得するにはRemoteCache#size()メソッドを使用します。 データの取得にはRemoteCache#get(K)メソッドを使用し、Kには取得したいキーを指定します。 データの格納にはRemoteCache#put(K, V

    Infinispan をクライアントサーバモードで使ってみる - #chiroito ’s blog
  • Infinispan のライブラリモードでget/putの性能測定 - #chiroito ’s blog

    Infinispan をライブラリモードで動かした時の、実行回数をスレッド数を変えて性能測定してみました。 環境 Lenovo X1 Xtremeで、4コアのI5-9400H を搭載しています。 ベンチマーク 今回試した処理は get と put です。 以下が実行回数のグラフで、get は左軸、put は右軸です。数字は 100 万回を表しています。 見ると分かりますが、左軸と右軸で 10 倍違います。 スレッド数が増えるに従ってきちんとスケールしているのが分かります。 4スレッドでput も500万回実行できているのを見るとRDBMSと比べ圧倒的に更新できることが分かります。 ソースコード ベンチマークに使用した JMH のコードは以下です。 import org.infinispan.Cache; import org.infinispan.configuration.cache.C

    Infinispan のライブラリモードでget/putの性能測定 - #chiroito ’s blog
  • Infinispan をライブラリモードで使ってみる - #chiroito ’s blog

    今回は、Infinispan をライブラリモードでキャッシュを使用してみます。 デフォルト設定でキャッシュを作成し、そのキャッシュにmycacheという名前を付けます。そして、mycacheというキャッシュを取得します。最後にそのキャッシュにあるデータの件数やデータを取得・格納してみます。 ライブラリモードの環境構築についてはこちらを参照下さい。 Infinispan 10.1 の環境を構築する - #chiroito ’s blog 今回使うメソッドは以下のとおりです。 データの件数を取得するにはCache#size()メソッドを使用します。 データの取得にはCache#get(K)メソッドを使用し、Kには取得したいキーを指定します。 データの格納にはCache#put(K, V)メソッドを使用し、Kには格納したいキー、Vには格納したい値を指定します。 import org.infini

    Infinispan をライブラリモードで使ってみる - #chiroito ’s blog
  • Infinispan をテストしてみる - #chiroito ’s blog

    ここでは Infinispan を開発するにあたって必要となるテストの実行の仕方を紹介します。 環境構築についてはこちら(Windows 上に Infinispan 11 のビルド環境を構築してみた - #chiroito ’s blog)をご覧ください。 全体のテスト Infinispan のテストを全部実行するには以下の様にします。 mvn test -s maven-settings.xml 特定のモジュールだけのテスト 特定のモジュールにパッチを書いた時などにはそのモジュールのテストがきちんと通るか確認しないといけません。特定のモジュールだけのテストを実行するには、-pl <モジュール>を指定してテストを実行します。以下の例ではcoreモジュールをテストする例です。 mvn test -s maven-settings.xml -pl core 特定のモジュールの中で特定のテスト

    Infinispan をテストしてみる - #chiroito ’s blog
  • Windows 上に Infinispan 11 のビルド環境を構築してみた - #chiroito ’s blog

    ここでは Windows 上でInfinispan を開発するためビルドできるように環境を構築していきます。Windows固有の理由でテストが通らなかったりするので、テストはスキップします。 環境変数 Java 11 と Maven が必要になりますので適宜インストールしてください。 それらのインストールディレクトリをJAVA_HOMEおよびM2_HOMEとして、JavaはPATHにも通しておきましょう。 また、ビルド時にログが化けたりするので英語にします。これは_JAVA_OPTIONSで指定します。 $ set JAVA_HOME=C:\opt\jdk-11.0.2 $ set M2_HOME=C:\opt\apache-maven-3.6.2 $ set PATH=%JAVA_HOME%\bin;%PATH% $ set _JAVA_OPTIONS=-Dfile.encoding=U

    Windows 上に Infinispan 11 のビルド環境を構築してみた - #chiroito ’s blog
  • Infinispan 10.1 の環境を構築する - #chiroito ’s blog

    Infinispan を使った環境を構築する場合、ライブラリモード(Embedded)方式とクライアントサーバ方式の2通りの方法があります。今回はmycache というキャッシュを持つ環境の作り方をそれぞれ簡単に紹介します。 今回試したバージョンは Infinispan 10.1.3.Final です。 2つの方式 ライブラリモードは、みなさんが書いたアプリケーションと同じメモリ空間にキャッシュしたデータが格納されます。APIとしての機能はこちらの方が高機能な印象です。 参考:Embedding Infinispan 10.1 クライアントサーバモードは、専用のサーバプロセスにデータが格納されます。クライアントからサーバにあるデータへのアクセスは必ずネットワークを介します。 参考:Deploying and Configuring Infinispan 10.1 Servers どちらの構

    Infinispan 10.1 の環境を構築する - #chiroito ’s blog
  • GitHub - jgroups-extras/jgroups-kubernetes: JGroups discovery protocol for Kubernetes

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

    え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation

    単なるキャッシュじゃないよ!?infinispanの紹介
  • Infinispan 5.3.0.FinalをJBoss AS 7.1.1に突っ込む - CLOVER🍀

    JBoss ASで、Infinispanを使うための下準備ってことで。まあ、すぐには手をつけないかもしれませんが。 sbtのMANIFEST設定の勉強にも、ちょいとなりましたね。 コミュニティ版のJBoss ASは、7.1.1で止まっているので、サブシステムとして含まれているInfinispanが5.1.2.FINALとなっていて、わりと古い状態です。 なお、デプロイするアプリケーションから組み込み済みのInfinispanを参照するためには、META-INF/MANIFESTに Manifest-Version: 1.0 Class-Path: org.infinispan servicesと書くか、以下のようなXMLファイルをWARに含めます。 src/main/webapp/WEB-INF/jboss-deployment-structure.xml <?xml version="1

    Infinispan 5.3.0.FinalをJBoss AS 7.1.1に突っ込む - CLOVER🍀
  • InfinispanのStateTransferを確認してみる - CLOVER🍀

    ちょっと他のライブラリで使っているInfinispanのデフォルトで用意されている設定ファイルを見て、StateTransferの設定がされていたのでそういえば調べてないなぁと思い、ちょっと確認してみました。 ドキュメントには、特に章立てての記載はないので、XML SchemaとかJavadocを見ています。 Infinispan 6.0.0.FinalのXML Schema http://docs.jboss.org/infinispan/6.0/configdocs/infinispan-config-6.0.html defaultまたはnamedCacheタグの、clusteringタグ配下にstateTransferタグとして設置して、設定します。 StateTransferは、クラスタリングモード(ReplicationまたはDistributionを選んだ場合)の時に使用し、

    InfinispanのStateTransferを確認してみる - CLOVER🍀
  • InfinispanのQuery DSLを試してみる - CLOVER🍀

    Infinispan 6.0から、Query DSLというものが追加されました。ちょっと気になっていたので、試してみようと思います。 前提知識 InfinispanのQueryですが、Lucene+Hibernate Searchという形で実現されています。よって、最終的にはLuceneのQueryが投げられるということは、押さえていた方がよいと思います。 現状は、Query DSL以外の方法でクエリを投げる場合は、LuceneのQueryを直接組み立てるか、Hibernate SearchのDSLを使用します。 って言ってますが、自分はHibernate Searchには詳しくないですけどね…。 将来的には、検索の機能をLucene/Hibernate Search非依存にすることも考えているみたいです。現状は、Lucene/Hibernate Searchですが。 また、まだ開発中のも

    InfinispanのQuery DSLを試してみる - CLOVER🍀
  • Infinispan停止時にCacheのエントリがどうなるのか、改めて確認する - CLOVER🍀

    Infinispanのような、Node Discoveryの仕組みがあり、サーバを起動するとクラスタのメンバーに自動的に組み込まれるようなタイプのものについて、サーバ停止時はどうするのかなぁ?という点について。 いや、別に面白いオチはなかったんですが…。 確認のため、以下のような設定ファイルをプログラムを用意します。 src/main/resources/infinispan.xml <?xml version="1.0" encoding="UTF-8"?> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:5.3 http://www.infinispan.org/schemas/infinispan-config-5.3

    Infinispan停止時にCacheのエントリがどうなるのか、改めて確認する - CLOVER🍀
    nobusue
    nobusue 2014/04/21
    当然ながらnumOwnersが1だと停止したノードにあるエントリはロスト
  • Infinispanでヘテロなクラスタを組んでみる - CLOVER🍀

    2014/4/22) Issue ISPN-3752での修正後の確認結果に更新しました。 このエントリは、Infinispan 6.0.2.Finalで書き直しています。 Infinispan 6.0.0.Finalがリリースされました。けっこうリリースを楽しみにしていたのですが、その中でもちょっと気になっていたのがこちらの機能追加。 Heterogenous clusters with Infinispan 6.0.0.Beta1 http://blog.infinispan.org/2013/09/heterogenous-clusters-with-infinispan.html Allow configuring the number of segments per node(ISPN-3051) https://issues.jboss.org/browse/ISPN-3051

    Infinispanでヘテロなクラスタを組んでみる - CLOVER🍀
  • Infinispan 6.0 User Guide

    nobusue
    nobusue 2014/04/15
    Eviction