#chiroito ’s blog

Java を中心とした趣味の技術について

Github上の最新のInfinispanを使う

Infinispanを使う時はDownload - Infinispanのようなダウンロードサイトで必要なファイルをダウンロードして使います。しかし、開発しているGithub上の最新バージョンを使って動かしたい時もあるでしょう。そんな時はビルドした後に出来上がる成果物を使いま…

OpenJDK の Author から Committer になりました

これまで通算11個のパッチを書いたので、推薦してもらい、OpenJDKコミュニティ内での信任投票の結果 OpenJDK の Committer になりました。 ※推薦してもらった時点では12個でしたが、その間に1個ダメになったので11個でした。 他のOSSだと1個パッチを書くだけ…

Infinispan Hot Rod の Distributed-cache で Cache Store/Loader を使う

キャッシュからデータを取得する時に、キャッシュにデータが乗っていないためキャッシュミスが発生し、RDBMSやオブジェクトストレージなどのデータストアからデータを取得し、次に備えてキャッシュに載せると言うことがあります。また、キャッシュの更新や他…

Infinispan Hot RodのDistributed-cacheで自作のエンティティを使う

インメモリデータグリッドを使用するにあたり分散キャッシュを使って自作のデータ型となるエンティティを使うことは避けられないでしょう。今回はHot Rodを使ったDistributed-cacheでどうやって自作のエンティティを使うかを紹介します。 オブジェクトを読み…

Infinispan の Hot Rod で設定ファイルとコードによる設定を組み合わせる

Infinispanを触ってて、設定ファイルで設定した内容に加え、コードによる設定を足したいなと思うことがあったので書いてみました。 以下の通りにするとHot Rodの設定ファイルであるresources/hotrod-client.propertiesを読み込みつつ、コードによる設定もで…

Infinispan のクライアントサーバモードでget/putの性能測定

Infinispan をクライアントサーバモードで動かした時の、実行回数をスレッド数を変えて性能測定してみました。 環境 クライアントとサーバのマシンを1台ずつ用意しています。サーバマシンにはInfinispanを2プロセス起動しています。 使用したInfinispanは10.…

Infinispan をクライアントサーバモードで使ってみる

今回は、Infinispan をクライアントサーバモードでキャッシュを使用してみます。 デフォルト設定で作成してあるmycacheという名前のキャッシュを使用します。サンプルコードではまず、このキャッシュを取得します。最後にそのキャッシュにあるデータの件数や…

Infinispan のライブラリモードでget/putの性能測定

Infinispan をライブラリモードで動かした時の、実行回数をスレッド数を変えて性能測定してみました。 環境 Lenovo X1 Xtremeで、4コアのI5-9400H を搭載しています。 ベンチマーク 今回試した処理は get と put です。 以下が実行回数のグラフで、get は左…

Infinispan をライブラリモードで使ってみる

今回は、Infinispan をライブラリモードでキャッシュを使用してみます。 デフォルト設定でキャッシュを作成し、そのキャッシュにmycacheという名前を付けます。そして、mycacheというキャッシュを取得します。最後にそのキャッシュにあるデータの件数やデー…

Infinispan をテストしてみる

ここでは Infinispan を開発するにあたって必要となるテストの実行の仕方を紹介します。 環境構築についてはこちら(Windows 上に Infinispan 11 のビルド環境を構築してみた - #chiroito ’s blog)をご覧ください。 全体のテスト Infinispan のテストを全部…

Windows 上に Infinispan 11 のビルド環境を構築してみた

ここでは Windows 上でInfinispan を開発するためビルドできるように環境を構築していきます。Windows固有の理由でテストが通らなかったりするので、テストはスキップします。 環境変数 Java 11 と Maven が必要になりますので適宜インストールしてください…

macOS に OpenJDK のビルド環境を構築

環境 以下の環境で試しました。 macOS Mojave バージョン 10.14.6 Xcode Version 11.3.1 (11C504) 環境の準備 環境を準備するには以下の3つが必要です。 Xcode autoconf Boot用JDK Xcode は App Store からインストールしました。 デフォルトの設定ではbash …

Infinispan 10.1 の環境を構築する

Infinispan を使った環境を構築する場合、ライブラリモード(Embedded)方式とクライアントサーバ方式の2通りの方法があります。今回はmycache というキャッシュを持つ環境の作り方をそれぞれ簡単に紹介します。 今回試したバージョンは Infinispan 10.1.3.F…

書評:みんなのJava OpenJDKから始まる大変革期!

2月頭に著者のきしださんとスウェーデンへ行った時に、毎日進捗を確認したおかげか、著者から献本をいただきました。 献本いただきました~。前書きから涙なしでは読めない!!#minjava pic.twitter.com/NKIYx38ofN— いとうちひろ(Chihiro Ito) (@chiroito) …

Infinispan 10 のメトリックを Prometheus と Grafana で可視化する

システムを運用する時や検証する時にオシャレなGUIで状況を確認したいことはないでしょうか。Infinispan 10にはこの様な要求を実現する機能が含まれています。今回はその機能を使って Grafana でオシャレなダッシュボードを作れるようにするところまで紹介し…

Infinispan 10 Server のログレベルを変える

ここでは、Infinispan 10 のログレベルを変更する方法を紹介します。通常の動かし方と公式コンテナを使った場合の2通りを紹介します。 プロセスを起動する場合 以下の流れでログレベルを変更します。 ログファイルを編集 infinispan Server を起動 設定ファ…

OpenJDK開発記:JDK-8219904: ClassCastException when calling FlightRecorderMXBean#getRecordings()を直してみた。

これは何? 今回、パッチを書いたのはJDK-8219904のClassCastException when calling FlightRecorderMXBean#getRecordings()です。 [JDK-8219904] ClassCastException when calling FlightRecorderMXBean#getRecordings() - Java Bug System これはJMXのリモ…

OpenJDK開発記:JDK-8222489: jcmd VM.system_properties gives unusable paths on Windowsを直してみた。

これは何? 今回、パッチを書いたのはJDK-8222489のjcmd VM.system_properties gives unusable paths on Windows。 [JDK-8222489] jcmd VM.system_properties gives unusable paths on Windows - Java Bug System Java 14までにはjcmd <PID> VM.system_properties</pid>…

Jfokus 2020 に参加してきた。

2020年2月3日~5日にスウェーデンのストックホルムで開催される VM Tech Summit と Jfokus に参加してきました。私としては初ヨーロッパでもちろん初北欧なわけですが、経由地であるフィンランドのヘルシンキも含め雪がなく、札幌と比べて暖かかったです。 w…

JFR Event Streamingを軽い気持ちで非同期にしてみたら動かなかった

もともとこんな感じで同期で作っていたので「es.start()の部分をes.startAsync()にしたら非同期になるだろ」と思いやったらイベントが全然処理されない。 import jdk.jfr.Configuration; import jdk.jfr.consumer.EventStream; import jdk.jfr.consumer.Reco…

QuarkusでOpentracingを利用する

QuarkusはデフォルトではOpentracingを利用していませんが、拡張機能(extention)を追加して設定を少しするだけでOpentracingを利用できるようになります。 Opentracingの追加 Opentracingの拡張機能を利用するにはmvn quarkus:add-extensionに-Dextensionsで…

Quarkusのデバッグポートを変更する

Quarkusのデバッグポートはデフォルトでは5005ですが、これを変えるには起動時(mvn compile quarkus:dev)に-Ddebugを指定します。 ポート番号を1234に変更する方法は以下の通りです。 mvn compile quarkus:dev -Ddebug=1234 以下のログが出れば変更成功です…

Quarkusで実装したAPIをSwagger-uiで見る

QuarkusでSwagger UIを見るには拡張機能としてSmallRye OpenAPIを追加します。 Swagger UIへのアクセスはホスト名にswagger-uiを追加するとアクセスできるようになります。 拡張機能を追加する方法は以下の3つあります。 https://code.quarkus.io/で作成時に…

Quarkusが公開するポート番号を変更する

src/main/resources/application.propertiesにquarkus.http.portを指定します。 ポート番号を80に変更する方法は以下の通りです。 quarkus.http.port=80

Jfokusについてまとめてみた

Jfokusとはスウェーデンのストックホルムで開催されるカンファレンスです。 www.jfokus.se 2018年にじゅくちょーが参加されたレポートはこちら。 www.sakatakoichi.com 日時 Jfokus 2020は2020年2月3日(月)から5日(水)に開催されます。 この前に2月1日(土)~…

CPUによるOpenJDKのビルド時間の推移

OpenJDK の開発環境を E3-1265 V2 から i9-9900K へ変えてみたのでビルド時間を計ってみました。 ※i5-9400H のCPUもゲットしたので表でだけ性能を追加しました。 それぞれの性能はこんな感じです。 プロセッサ名 物理コア数 ベース動作周波数 ターボブースト…

Windows Subsystem for Linux を使って OpenJDK をビルド

Windows 上で Windows Subsystem for Linux (WSL) を使用して OpenJDK 14 の Windows バイナリをビルドする方法をまとめます。 やりがちですが、Windows Subsystem for Linux (WSL)側のUbuntu 側で hg するのは必須ではありません。(やった) Windows側で好…

エンタープライズ向けのシステムを自動構築するツール

エンタープライズで使われるミドルウェアを使うためには、環境が使えるようになるまで構築に膨大な時間がかかるほか、開発用途などでちょっと使うだけで莫大なライセンス料がかかります。 クラウドが当たり前になって、ライセンス料が非常に安価になって触り…

OpenJDK を開発する流れ

自分が使うコマンドをうっかり忘れるときがあるのでその備忘録のために、開発の流れとそこで使ってる内容をメモ。 公式のガイドはこちらを参考にしてください。The OpenJDK Developers' Guide OpenJDK の開発は以下のような流れで行います。 バグを上げる 開…

Oracle Management Cloud エージェントをインストールしてみる

はじめに システムを運用するときは、ログやメトリックをモニタリングします。オンプレのシステムでは決まった台数を監視すれば良いことが多いです。また、ストレージが書き込める限り、あとからストレージからログやメトリックを収集できます。クラウドでは…