【ハウツー】

JVMレベルでクラスタリングを可能に - OpenTerracotta

1 JVMレベルのクラスタリングって何?

 
  • <<
  • <

1/4

Open Terracottaは、複数のJVMをまたいでJavaオブジェクトをキャッシュすることができるクラスタリングソリューションだ。以前は商用製品であったものが、2006年末にオープンソース化された。ライセンスは、Mozilla Public LicenseをベースとしたTerracotta Public Licenseであり、商用プロダクトにも問題なく利用できる。

なぜTerracottaが必要か

アプリケーションにとって「パフォーマンス」は重要だ。特にデータベースを使用するアプリケーションはデータベースへのネットワークアクセス、検索クエリの実行性能などに足を引っ張られてパフォーマンスが思うように出ないことも多い。

そこで考え付くのが検索結果をキャッシュして再利用することであるが、これには別の問題がある。一つは、キャッシュを利用すると将来的な拡張性を損ねる可能性があることである。例えばスケーラビリティを向上させるべくアプリケーションサーバを複数台利用したとする。そうした環境で、個々のサーバが自分専用のキャッシュを持ち、キャッシュに対する書き込みも行うような状況だと、キャッシュの不整合が生じてしまう。もう一つの問題は、複数のプロセスがキャッシュを共有している場合、同時にキャッシュを更新してもデータが破壊されないことを保証しなくてはならないということである。ほかにもキャッシュが肥大化してRAMに乗り切らなくなった場合どうするか、などだ。

こうした問題を、スマートに解決しようというソフトウェアがOpen Terracottaである。

Open Terracottaの特色

Open Terracottaの特色は「JVMレベルのクラスタリング」--「シングルJVM用のコードをいじることなく、複数JVM間でのオブジェクト共有が可能」という点である。

仕組みとしては、クラスタリングを調停し、オブジェクトのマスターを持つサーバに対して、個々のJVMがクライアントとなり、Javaオブジェクトのフィールド変更があった場合通知を行うことによってクラスタリングが実現されている。

また、JVMをまたいだスレッド間の同期(synchronized)も適切に行われる。つまり、あるJVM上のスレッドがオブジェクトのロックを獲得したら、クラスタリングに参加している全てのJVM上のスレッドがそのロックを獲得できるまでウェイトするのだ。こうした仕組みは、クラスをロードする前にバイトコードを操作することで実現されており、アプリケーションにとっては透過的に行われる。

こうした機能を持つOpen Terracottaの用途は、HTTPセッションのクラスタリング、分散キャッシュ、JVM単位での作業分割など様々だ。

ではさっそくインストールして動かしてみよう。

  • <<
  • <

1/4

インデックス

目次
(1) JVMレベルのクラスタリングって何?
(2) 早速インストール
(3) Terracottaで「Hello, World」
(4) まとめ


転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

LiSA、NEWシングル「Brave Freak Out」のリリースイベントを幕張で開催
[22:02 8/25] ホビー
auがサッカー日本代表を強力にサポート! - ハリル監督「KDDIと契約できて誇りに思う」
[21:50 8/25] スマホとデジタル家電
[Re:ゼロから始める異世界生活]人気アニメがゲーム化
[21:50 8/25] ホビー
「弥次喜多」を茶室の障子に描き下ろし!しりあがり寿「回・転・展」in 愛知
[21:50 8/25] ホビー
[いきなり!黄金伝説。]テレ朝長寿バラエティーが9月で終了 18年の歴史に幕
[21:48 8/25] エンタメ

求人情報