ブックマーク / miyakawataku.hatenablog.com (5)

  • JavaのGCログのローテーション - 映画は中劇

    Oracle JDKの7u2以降、GCログがローテーションできるようになりました。また、JDK8および、JDK7のPSUリリース*1である7u76では、GCログのファイル名にプロセス番号と日時が含められるようになりました。7u76以外、特に目新しい話ではありませんが、備忘のために整理しておきます。 関連するissuesは次の2つです。 JDK-6941923: RFE: Handling large log files produced by long running Java Applications 対象バージョン: 6u34, 7u2, 8 GCログがローテーションできるようになった JDK-7164841: Improvements to the GC log file rotation 対象バージョン: 7u76, 8 最新のファイルの末尾に「.current」が付くようになった

    JavaのGCログのローテーション - 映画は中劇
  • Dockerのネットワーク構成 - 映画は中劇

    Dockerのネットワーク構成について整理する。 図1: Dockerネットワーク全体図 物理NICが1個ついたDockerホストに2つのコンテナを立てると、図1のようになる。コンテナは172.17.X.Xのネットワーク内にいて、ホスト側には172.17.0.1のIPアドレスが付く。この構成自体は、VirtualBoxで言うところのホストオンリーネットワークと同じようなもの。異なる点として、Dockerネットワークは、ハードウェア仮想化ではなく、Linuxカーネルの機能であるvethペアとブリッジを組み合わせて実現される。 図2: vethペア veth (virtual Ethernet) は、図2のように、仮想NICのペアと、それをつなぐ仮想ケーブルを作る機能。ふたつの仮想NICはイーサネットで直接通信できる。 図3: ブリッジ ブリッジとは、LinuxマシンがL2スイッチ(スイッチン

    Dockerのネットワーク構成 - 映画は中劇
  • CentOS 6 で QJM ベースの NameNode HA + 自動フェイルオーバを構成した時のメモ - 映画は中劇

    Hadoop HDFS の NameNode は長い間単一障害点だったのですが、 CDH 4 から、 NFS 上の edits ログを共有する形でのアクティブ/スタンバイ構成が可能になりました。しかし、フェイルオーバが中途半端になると共有 edits ログが破壊されるとか、 NFS が新しい単一障害点になってしまうとかで、評判が良くなかったようです。 そこで CDH 4.1 からは、 JournalManager という、 edits ログを書き込む専門のデーモンが追加されました。アクティブな NameNode は、 Quorum Journal Manager (QJM) を通じて、共有 edits ログを JournalNode クラスタに書き込めるようになりました。 今回、 QJM ベースの NameNode 冗長化を試すため、 HDFS クラスタを作ってみました。同時に ZooKe

    CentOS 6 で QJM ベースの NameNode HA + 自動フェイルオーバを構成した時のメモ - 映画は中劇
  • Java 7 の Fork/Join で 並列マージソート & クイックソート - 映画は中劇

    Java 6 までの Concurrency Framework の主役は、 Executor です。Executor を使うと、 非同期処理や複数セッション処理の並列化を、効率的に実装することができます。 Java 7 では、 Fork/Join という新しい仕組みが登場します。これは、 Executor とは異なった種類の計算、 CPU が律速となるような重い計算をターゲットにしています。重い計算を小さなタスクに分割して、小分けになったタスクを複数のスレッド (プロセッサ) が並列実行することで、高速に処理する、という実行モデルです。OpenMP に似ているはずです。使ったことないけど。 Fork/Join の仕組みについて、詳しくは、下記桜庭さんの記事をお読みください。スレッドごとの実行待ち行列の取り回しの仕方など、面白いです。 Java SE 7徹底理解 第2回 細粒度の並行処理

    Java 7 の Fork/Join で 並列マージソート & クイックソート - 映画は中劇
  • Java SE 8 でのメソッド継承のルール - 映画は中劇

    Java SE 8 では、デフォルトメソッドが追加されたため、メソッド継承のルールが新しくなりました。以下に、 Java SE 8 でのメソッド継承のルールを一通りまとめます。 前提となる概念 型消去 (type erasure) シグネチャ (signature) サブシグネチャ (subsignature) オーバーライド等価 (override-equivalent) メソッド継承のルール 継承 (inheritance) の基 コンパイル時エラーになるケース 型消去 (type erasure) 「型消去」とは、総称型から型パラメータを引っぺがすことです。たとえば、 <T> List<T> asList(T[] elements) を型消去すると List asList(Object[] elements) になります。 言語仕様では次のように定義されています。 型消去 (era

    Java SE 8 でのメソッド継承のルール - 映画は中劇
  • 1