Erlang

2008年03月18日

Yawsで分散データベースMnesiaを使う

はてなブックマークに登録

ErlangはMnesiaというデータベースマネージメントシステム(DBMS)をサポートしています。 Mnesiaを使用すると、データベースのレプリケーションによって分散データベースを構築し、簡単にデータベースの冗長化を実現できます。
前回まで紹介してきたErlyWebのORマッパはMnesiaに対応していて Mnesiaを使用した分散データベース上でErlyWebのORマッパを使ってWebアプリケーションを作ることができるようになります。

今回は、前回説明したYawsで設定したMnesiaのデータベースを、同一ホスト内で複数のノードで使用したり、データベースを複製する手順を説明します。 異なるホスト間でのMnesiaの複製を行おうとすると、今回の環境では別の問題が発生します。これについては次回に説明する予定です。
今回は、同一ホスト内で接続と複製だけ行ってみます。

続きを読む

(セ)
klab_gijutsu2 at 18:22|この記事のURLComments(0)TrackBack(0)
2008年03月13日

ErlyWeb:ErlyWebでmnesiaを使う

はてなブックマークに登録

ErlyWebErlangで書かれたウェブのフレームワークです。ErlyWebErlangのウェブアプリケーションであるYaws上で動作します。
今回は前回の続きの3回目でErlyWebでmnesiaを使ってみます。
第1回:ErlyWebのインストール
Windowsへのインストール手順を紹介します。
第2回:ErlyWebのテンプレートを使ってみる
ErlyWebのテンプレートシステムを使って見ます。
第3回:ErlyWebでmnesiaを使う
Erlangのデータベース mnesia を使ってサンプルを動作させて見ます。
mnesiaを使うと、簡単にデータベースのレプリケーション機能を使用することができます。まずは、ErlyWebのコンポーネントでモデルを使ってErlyDBのORマッパ機能などの紹介をします。 mnesiaについてはDSAS開発者の部屋に他の記事もあるので参考にしてみてください。 続きを読む
(セ)
klab_gijutsu2 at 19:02|この記事のURLComments(0)TrackBack(0)
2008年03月04日

ErlyWeb(その2):テンプレートシステム

はてなブックマークに登録

ErlyWebErlangで書かれたウェブのフレームワークです。ErlyWebErlangのウェブアプリケーションであるYaws上で動作します。
今回は前回の続きの2回目でErlyWebのテンプレートを使ってみます。
第1回:ErlyWebのインストール
Windowsへのインストール手順を紹介します。
第2回:ErlyWebのテンプレートを使ってみる
ErlyWebのテンプレートシステムを使って見ます。
第3回:ErlyWebでmnesiaを使う
Erlangのデータベース mnesia を使ってサンプルを動作させて見ます。

続きを読む

(セ)

klab_gijutsu2 at 16:30|この記事のURLComments(0)TrackBack(0)
2008年02月22日

ErlyWeb:Erlangで書かれたWebフレームワーク

はてなブックマークに登録

ErlyWebはErlangで書かれたウェブのフレームワークです。ErlyWebはErlangのウェブアプリケーションであるYaws上で動作します。

Yawsを使用するだけで、Erlangで動作するWebアプリケーションを作成することができますが、ErlyWebを使うと、より柔軟なテンプレート機能(ErlTL)や、MySQLやErlangのmnesia(まだα版らしい)などのデータベースへのORマッパ機能 (ErlDB)、appmodを利用してURLパスによって実行されるアプリケーションの作成が行えるようになります。

これからErlyWebについて3回に分けて紹介していきます

第1回:ErlyWebのインストール
Windowsへのインストール手順を紹介します。
第2回:ErlyWebのテンプレートを使ってみる
ErlyWebのテンプレートシステムを使って見ます。
第3回:ErlyWebでmnesiaを使う
Erlangのデータベース mnesia を使ってサンプルを動作させて見ます。

今回はインストールからになります。windows用に手順を紹介していますが、当然linuxなどでも動作します。

続きを読む

(セ)

klab_gijutsu2 at 14:48|この記事のURLComments(0)TrackBack(0)
2008年02月11日

Erlang で 4000万プロセス起動する方法

はてなブックマークに登録

前回、Erlang の並列処理のパフォーマンスがマルチプロセッサ環境でどれ くらい向上するかというのを調べてみましたが、今回は軽量と呼ばれている Erlang のプロセスをどれくらい同時に起動することが出来るかという実験を 行ってみました。

最終的に、メモリを 32G積んだ Sun Fire T2000を使用して、4000万プロセスを起動することが出来ましたが、これだけのプロセスを扱うためには幾つかの工夫が必要したので Erlang で大量プロセスを扱うためのテクニックを幾つか紹介していきたいと思います。

また、最後に大量プロセスを使用してのリングベンチマークを載せてあり ます。

続きを読む
klab_gijutsu2 at 09:00|この記事のURLComments(0)TrackBack(0)
2008年01月15日

Erlang の並列処理性能をマルチプロセッサ環境で検証してみました。

はてなブックマークに登録

並列処理に適したプログラミング言語 Erlang は、マルチプロセッサの環境 で効率よくパフォーマンスが向上すると言われています。そこで実際のマルチ プロセッサ環境(32CPU SMP)で様々な Erlang プログラムを走らせる検証を行ってみました。

行った検証の内容は以下の通りです。

  • 並列ソート
  • N-Queen 問題

検証に使用した UltraSPARC T1 プロセッサ は 8つのコア×4スレッド(CoolThreads)という構成で合計 32個の並列処理が可能となっています。なお、この Sun Fire T1000 はサン・マイクロシステムズ(株)様よりごお貸し頂きました。

詳細は以下のページにまとめてあります。

http://lab.klab.org/modules/mediawiki/index.php/Erlang_Performance
klab_gijutsu2 at 10:29|この記事のURLComments(2)TrackBack(0)
2007年11月30日

Jabberサーバーをクラスタリングしてみました。

はてなブックマークに登録

みなさん Jabber をご存じですか? Jabber はオープンな仕様のメッセン ジャーサービスのことで最近だと Google Talk で使用している方が多いと思 います。

KLab では 2001年ぐらいから、誰でも Jabber を使うことが出来る Jabber.JP というサービスを運用してい ます。まだ Jabber を使用したことがない方は是非こちらの「Jabber をはじめよう」 を ご覧になって Jabber を使ってみて下さい。

Jabber.JPjabberd という実装を使用してい たのですが、冗長構成が難しいという問題がありました。

そこで先日、Jabber.JP では大規 模なメンテナンスを行い ejabberd という実装で分散、冗長化を行ってみました。ejabberd はその名の通り、Erlang で 実装された Jabber サーバーで、Mnesia データーベースを使用してデータの 冗長化を行うことが出来ます。

今回は Jabber.JP で動いている ejabberd やそのクラスタリング方法について紹介したいと思います。

続きを読む
klab_gijutsu2 at 17:52|この記事のURLComments(2)TrackBack(1)
2007年09月27日

erlang:dets の動作を調べる(その1)

はてなブックマークに登録

以前紹介した付箋webを開発する際に、Erlang のストレージシステムの一つである dets を使用しました。

この dets の基本的な使い方と、動作についてよくわからない所があったので、実験とその結果を書いてみたいと思います。

続きを読む
klab_gijutsu2 at 19:47|この記事のURLComments(0)TrackBack(0)
2007年09月18日

Erlang版 memcached でキャッシュデータの永続化をしてみました。

はてなブックマークに登録

幾つかの改変を行った ememcached ver 0.3 をリリースします。

主な変更点は、

  • ディスク書き込みによるキャッシュの永続化
  • キャッシュデータをディスクに書き込むことで再起動してもキャッシュデータ が消えないように出来るようになりました。
  • キャッシュデータのガベージコレクション
  • 以前のバージョンには Expire したデータが残り続けるという問題がありました。
  • autoconf/automake 化
  • ./configure && make でビルドできます。

ダウンロード: ememcached-0.3.tar.gz

続きを読む
klab_gijutsu2 at 16:34|この記事のURLComments(0)TrackBack(0)
2007年09月12日

Erlang版 memcached でレプリケーションしてみました。

はてなブックマークに登録

先週お知らせした通り、Mnesia を使用した Erlang版 memcached が出来上がりました。ememcached ver 0.2 です。

前回の ets のコードも残してあったり、設定ファイルでストレージを切り替え られるようにしているうちにコードが長くなってしまいましたので以下からダ ウンロードしておためし下さい。

ダウンロード: ememcached-0.2.tar.gz

前回からの差分は以下の通りです

  • 設定ファイルの使用
  • Mnesia を使用出来るようになった(etsも使えます)
  • キャッシュデータのレプリケーション
続きを読む
klab_gijutsu2 at 10:00|この記事のURLComments(0)TrackBack(0)
2007年09月07日

Erlang で memcached を作ってみました。

はてなブックマークに登録

先日、こちらの Erlang の世界ではmemcachedとか要らない を興味深く読ませて頂きました。

たしかにクライアント側も Erlang で書かれている場合、例えばキャッシュサー バーにアクセスを行う WEB アプリケーションも Erlang で書かれていれば Erlang のプロセス間通信を使用することで簡単にキャッシュサーバを実装する ことが出来そうです。しかし、WEB アプリケーションなど、全てのシステムを Erlang で書くにはまだ私にとって勇気が要る事なので TCP/IP で memcache プ ロトコルを喋る Erlang 版 memcached を作ってみました。 その名も ememcached です。

続きを読む
klab_gijutsu2 at 13:00|この記事のURLComments(0)TrackBack(1)
2007年09月05日

Erlang で付箋Webアプリケーションを作ってみました。

はてなブックマークに登録

インターネットを見ていて、そのときの感想とかページの内容に対して思っ たことなんかを簡単に書き留めておけると便利かなと思い、適当なWebのペー ジ上にブラウザで表示したまま付箋をつけられる WEB アプリケーションを、最近流 行の Erlang 作成してみました。

付箋 Web の実験デモサイトはこちらです。

http://husen.lab.klab.org/

続きを読む
klab_gijutsu2 at 13:00|この記事のURLComments(3)TrackBack(2)
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント