BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MicroStream 5.0がオープンソースになった

MicroStream 5.0がオープンソースになった

原文(投稿日:2021/09/20)へのリンク

MicroStream 5.0のリリースと同時に、同社はJava永続化フレームワークもオープンソース化することを発表した。

MicroStreamは、6年以上にわたってビジネスクリティカルなプロジェクトで生産的に使用されています。実績があり、安定しており、高いコード品質を備えています。さて、それをオープンソース化する時が来ました。オープンソース化は、私たちのコミュニティに強力な価値と大きなメリットを提供します。ソースコードを誰でも読むことができるようになりました。

2019年4月に最初に導入されたMicroStreamは、リストやコレクションだけでなくさまざまなドキュメントなどのあらゆる種類のJavaオブジェクトを格納するための永続化エンジンだ。これはJavaの組み込みシリアル化に似ているが、はるかに強力だ。完全なオブジェクトグラフのみを永続化できるJavaシリアル化とは対照的に、オブジェクトグラフを部分的かつオンデマンドで永続化、ロード、または更新できる。また、サイズとパフォーマンスの両面で非常に効率的だ。

MicroStreamは、ユーザ管理、接続管理、セッション処理などがないため、データベース管理システム (DBMS) の完全な代替ではないが、MicroStreamの開発者のビジョンでは、これらの機能は専用サーバアプリケーションでより適切に実装できる。

MicroStreamは、すべてのデータベースにデータ構造があるため、DBMSをデータを永続化する非効率的な方法と見なしている。したがって、データをオブジェクトリレーショナルマッパー (ORM) などの追加レイヤで変換やマッピングする必要がある。これらのフレームワークは複雑さを増やし、待ち時間を増やし、パフォーマンスの低下をもたらす。

MicroStream Data-Storeテクノロジーは、これらの変換の必要性を無くし、すべてをメモリに直接格納できるため、クエリを超高速にし、プレーンJavaのみを使用することでアーキテクチャを簡素化する。

彼らのWebサイトによると、JPAと比較して、集計 (sum) を使用した複雑なクエリのピークが1000倍で、単純なクエリのパフォーマンスが10倍向上しているとのことだ。あるいは、Postgres、MariaDB、SQLite、プレーンファイルストレージ (クラウド上も) などのデータベースがデータを永続化するためのコネクタも提供する。

その他の注目すべき機能は、ACIDトランザクション、マルチスレッドIO、遅延ロードだ。

クエリシステムは、Java Streams APIを使用してメモリ内のオブジェクトグラフを検索する。次の方法を検討してください:

	
public static void booksByAuthor()
{
      final Map<Author, List<Book>> booksByAuthor =
        	ReadMeCorp.data().books().stream()
        	.collect(groupingBy(book -> book.author()));


   	booksByAuthor.entrySet().forEach(e -> {
       	System.out.println(e.getKey().name());
       	e.getValue().forEach(book -> {
           	System.out.print('\t');
           	System.out.println(book.title());
       	});
   	});
}
	

データをファイルストレージに永続化するのは次のように簡単だ:

	
DataRoot root = microstreamDemo.root();
root.getCustomers().add(customer);
microstreamDemo.store(root.getCustomers());
	

MicroStreamのCEO兼共同創設者であるMarkus Kett氏は、MicroStreamについてInfoQと話した。

InfoQ: MicroStreamをオープンソース化するインスピレーションは何でしたか?

Markus Kett氏: 情熱的なJava開発者である私たちにとって、開発者が私たちを使うのが大好きなとき、それが最大の認識と動機です。オープンソースのMicroStreamは、ユーザに強力な価値と大きなメリットを提供します。コードの理解、MicroStreamの機能原理、デバッグ、バグの発見と修正が可能になりました。これにより、開発者はMicroStreamを独自にカスタマイズおよび拡張できる柔軟性が得られます。さらに、コードベースの永続的なレビューと多くの開発者による多数のテストサイクルにより、MicroStreamの安定性が向上します。オープンソース化は信頼を生み出し、参入へのハードルを減らします。今、私たちは素晴らしいグローバルなオープンソースコミュニティの一員であることを誇りに思っています。

InfoQ: JavaコミュニティはMicroStreamがオープンソース化したことでどのような反応がありましたか?

Kett氏: 世界中の多くのJavaユーザグループがメンバーにMicroStreamを紹介する機会を与えてくれたので、多くのJava開発者はMicroStreamをオープンソースとして入手することに熱心でした。MicroStreamをオープンソース化した後、すばらしいフィードバックを受け取りました。

InfoQ: MicroStreamの展望はいかがですか?

Kett氏: MicroStreamは独自の永続性を持つ必要があるマイクロサービスで運命づけられた永続性レイヤです。これは、ORMフレームワークと比較して、MicroStreamは超軽量で実装が簡単であり、本当にマイクロな永続性であるためです。そのため、さまざまなマイクロサービスフレームワークベンダがMicroStreamの統合に関心を持っています。現在、OracleのHelidonチーム、およびIBMのOpen Libertyチームと協力して、MicroStreamをProject HelidonとOpen Libertyと統合をすすめています。

ユーザに可能な限り最高の快適さとサポートを提供するために、JVMプロセス間でオブジェクトグラフを複製することにより、分散アプリを実行するMicroStreamクラスタをセットアップできるMicroStreamクラウド、および高可用性ストレージサービスとフルマネージドサービスにも取り組んでいます。

すでに利用可能であったAndroidのMicroStream実装は、現在書き直されています。これにより、モバイルデバイスとエッジデバイスでMicroStreamを使用できるだけでなく、クラウドで実行されているJavaアプリとマイクロサービスは非常に簡易な方法でこれらのデバイスを同期できます。

MicroStreamは、Mavenで単一の依存関係として使用できる。MicroStreamへの貢献に関心のある開発者は、GitHubリポジトリにアクセスすることから始めることができる。

この記事に星をつける

おすすめ度
スタイル

BT