【ハウツー】

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年後は? あなたの年収をデータに基づき予報します。

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

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

人気記事

一覧

イチオシ記事

新着記事

[LoVendoЯ]ギター担当の魚住有希が9月卒業を発表 今後はギタリストとして海外での勉強も視野
[23:51 7/23] エンタメ
高田桂「あねコン」1巻、狐に憑かれた義姉とのラブストーリー
[22:41 7/23] ホビー
あの日あの時あのコンピュータ 第13回 「8ビット御三家」最終形への夜明け前(その2) - NEC「PC-8001」
[21:04 7/23] パソコン
『おそ松さん』よりひょこっとラバーストラップの第2弾が登場
[20:00 7/23] ホビー
みなさんメガネ男子は好きですか?『おそ松さん』が一番くじでメガネ姿を披露
[20:00 7/23] ホビー

求人情報