タグ

ブックマーク / www.nagaseyasuhito.net (3)

  • EclipseLinkでデータベースのパーティショニングをするぞ | nagaseyasuhito Daily works.

    データベースにおいてパーティショニング(Partitioning)という負荷分散手法をご存知でしょうか。 先日のエントリ「JPAでマスター/スレーブ構成のMySQLを使うぞ」で紹介した方法ではスレーブをスケールアウトさせることでSELECTなど参照系のクエリに対してはある程度まで負荷分散ができました。しかしINSERTやUPDATE、DELETEなど更新系のクエリはスケールアウトすることができません。 パーティショニングはこのような問題を解決する手法の1つで、テーブルを一定のルールに基づいて複数のデータベースに分割し、データの格納先を分散させることで更新系のクエリの負荷を軽減させる仕組みです。シャーディング(Sharding)と呼ばれることもあります。 EclipseLinkはJPAの実装ですが、パーティショニングを簡単に扱うことができるように独自の拡張が施されています。今回はその方法をご

    KinjouJ
    KinjouJ 2015/02/07
  • JPAでマスター/スレーブ構成のMySQLを使うぞ | nagaseyasuhito Daily works.

    この記事はJava EE Advent Calendarの18日目のエントリです。昨日はn_agetsuさんのApache Shiro を使ってみましたでした。 Webサービスやソーシャルゲームのボトルネックになりやすいのがデータベースアクセスです。そしてこれらのサービスではデータベースにMySQLが多く使われています。 高負荷なMySQLの負荷分散の一つにデータベースをマスター/スレーブのレプリケーション構成にしてINSERT/UPDATE/DELETEなど更新系のクエリはマスターに対して行い、スレーブにマスターの更新内容をレプリケート、SELECTなど参照系のクエリはスレーブのデータベースにクエリを発行して負荷分散を行う手法があります。 このエントリではそのようなマスター/スレーブのレプリケーション構成のMySQLにJPAを使ってクエリを発行する方法をご紹介します。 MySQLのJDB

  • fluentdでネストされたデータを扱いやすくする方法 | nagaseyasuhito Daily works.

    前回の記事でJMXのメトリクスをfluentd経由で蓄積する方法を書きましたが、殆どの場合JMXのメトリクスは深い入れ子構造になっています。 $ curl -X POST -d '{"type":"read","mbean":"java.lang:type=Memory"}' http://localhost:8778/jolokia/ | python -mjson.tool { "request": { "mbean": "java.lang:type=Memory", "type": "read" }, "status": 200, "timestamp": 1389278295, "value": { "HeapMemoryUsage": { "committed": 133054464, "init": 16432320, "max": 518979584, "used": 67

  • 1