Graph-Easyで構成図(ブロック図)を描いてみる

PerlCPANで公開されているGraph-Easyを利用して構成図(ブロック図)を書いてみたいと思ったので試してみた。

導入方法はここを見ればすぐに出来た。普段cpanコマンド使っていれば、$ cpan Graph::Easy でインストールできるはず。*1

あとは、概略を書くとグラフ化される。記述の方法はマニュアルを参照するとおおよそわかる。

# sample.txt
[ Internet ]  -- WAN --> [ nginx ]
[ nginx ] -- LAN --> [ remp001 ]
[ nginx ] -- LAN --> [ storyboards001 ]
[ storyboards001 ] -- ref --> [ mongo001 ]
[ remp001 ] -- ref --> [ mongo001 ]
(LXC: [remp001], [storyboards001], [mongo001])

上記の様な記述を graph-easy コマンドの標準入力として渡せば結果を以下の様なブロック図として得られる。

更にLXCとnginxをVPSというグループでまとめたかったのだけど一旦書きたかった図はすぐに書けたので良しとする。

*1:インストールページに書かれているmake使って入れる方法でもすぐ入った

ラーメン

ラーメンを食べました。
千切りキャベツ山盛り。

Key-value Stores with FPGA

FPGAでmemcachedを!的な話をブログに妄想として書いたり、雑談で人とすることがあったりしたのですが、世界では実装されて既に発表されていました。*1


ざっくり中身

  • NICに対してFPGAオンボードしてその部分でmemcachedのプロトコルを解釈して直接DRAMに値を書き込む
    • ハッシュテーブルの大きさは200万レコードで24GByteのストレージを持つ
  • NICに入ってきたパケットを以下の順で処理する
    • memcachedプロトコルの解析
    • ハッシュテーブル問い合わせ
    • ハッシュテーブルへの値の格納・取得(DRAM書き込み or 読み込み)
    • memcachedプロトコルとしての応答生成
  • 上の一連の処理が156MHzのクロック駆動481サイクルで完了する
  • これを並列化且つパイプライン化
  • 実験
    • memcachedのGET命令を1秒辺りの応答数 vs パケットサイズでグラフ図示
      • FPGA単独の場合、パケットサイズが96byteであれば13,000 req/sec くらい (グラフ赤線)
      • 但しNICのボトルネックがあるのでパケットサイズが大きくなるとXeonサーバと同等の req/sec になる
    • 過去のFPGA実装と比較すると大幅にパフォーマンスがよくなっている (グラフ黄線との比較)
      • 過去の実装はこれと思われる

  • First Results of Memcached Evaluation
    • Xeonサーバと比較してもパフォーマンスよかった
    • 応答時間も100倍程度良くなっている
    • 1W当たりのリクエスト処理数はXeonサーバに比べて大変良い(=エコ)
  • 今後の課題
    • ハッシュテーブルの大きさの制限
    • 実際のアプリケーションでの利用
    • 他のアプリケーションでの活用を見つける(=恐らくWebアプリで利用されるキャッシュ以外での活用の模索?)

そしていろいろ調べると既にFPGA入ったアプライアンスとして世の中に出ていることを知った。*2

このあたり今年ぐらいから盛り上がったりするのだろうか。

*1:気づくのが遅くて大変ツライ

*2:しかもこれも去年の話だった...

半熟玉子の幸福

おひるごはん。ガパオライス。

半熟の目玉焼きの黄身を割る時の幸福感は何者にも代え難い。

というニュアンスの台詞がテレビドラマであったのを思い出した。

ガパオライス

仕事初め

本日仕事初め。

お土産を頂いたり、年末年始の過ごし方の話をしたりしていたり、溜まった業務を片付けるうちに新年会があったりして、あっという間に一日が過ぎてしまった。

焼き納豆丼

納豆の苦手な人にはとんでもないレシピに見えるかもしれないが、納豆好きにはたまらない。

きょうの料理のサイトにレシピが上がっているので是非お試しを。

f:id:hideack:20140105185955p:plain

レシピは発酵学でお馴染みの小泉武夫先生。

食(く)あれば楽あり (日経ビジネス人文庫)

食(く)あれば楽あり (日経ビジネス人文庫)

node.jsのプロジェクトのパッケージ管理用のファイル

2度調べたので記録。

node.jsではパッケージ管理にnpmがあって、更に package.json というjsonファイルがあるとそこに定義してあるパッケージ依存関係に基いてパッケージのインストールがされる*1 のですが、これそもそもどうやって作るの?と思って調べたのでメモ。

$ npm init

これでOKだった。 これで package.json が作成される。

で続けて、プロジェクトに必要なパッケージをインストールする場合は、

$ npm install (パッケージの名前) --save-dev

とすれば、自動的に package.json に必要なパッケージが追記された上でプロジェクトディレクトリに node_modules というディレクトリが作成されてインストールが行われます。

*1:RubyのGemfileの様に

ストーリーボードに機能追加のお知らせ

Markdownでプレゼンテーションが作れる「ストーリーボード」に新年早々機能が追加されましたよ。のお知らせ。

スマートフォンビュー対応

いままでストリーボードのスライドをスマートフォンで開くとPC版の縮尺まま表示されていたので、twitter等で拡散されたものをスマートフォンから開いた際に表示が崩れたりしていたのですが、いい塩梅に縮尺されて表示される様になりました。

f:id:hideack:20140103143832j:plain

ソーシャル拡散ボタン追加

スライドを閲覧した最後にソーシャルで共有するためのボタンが表示される様になりました。

f:id:hideack:20140103143731p:plain


何故かREMPチームは年末年始に必死に開発する傾向がある。去年はfacebookページをこしらえていた記憶が...。

でも、こうやって今年も年初から取り組めるものを運営できているのは幸せなことですね。

謹賀新年

今年もよろしくお願い致します。