タグ

ブックマーク / frsyuki.hatenablog.com (38)

  • Fluentd Casual Talks #3 - Blog by Sadayuki Furuhashi

    Fluentd Casual Talks #3 でしゃべってきました。会場提供していただいた DeNA さん、主催の@tagomorisさんありがとうございましたm(_ _)m What's new in v11 - Fluentd Casual Talks #3 #fluentdcasual from Sadayuki Furuhashi Ustreamで録画されているので、見逃した人はここで見られます: @tagomorisさん(02:03〜くらい) @sonotsさん以降(11:08〜くらい) v11 preview1リリース fluentd v11 perview1 をリリースしました。 会場でもデモしましたが、インストール方法は: gem install fluentd -v v0.11.0.preview1 です。まだαリリースな状態ですが、とりあえず起動すると何が起こるのか分

    Fluentd Casual Talks #3 - Blog by Sadayuki Furuhashi
  • データの更新履歴をRDBMSからfluentdに流すfluent-plugin-sql - Blog by Sadayuki Furuhashi

    Fluentd Advent Calendar 9日目。担当の古橋です。 Fluentd v11の情報は Fluentd Casual Talks #3 at :D でお話しすることにして、今回はFluentdの大幅な性能向上を可能にするMultiprocessプラグインを紹介…しようと思っていたら@niku4i さんに先を越されてしまったので!今回はSQL inputプラグインを紹介します。 SQL inputプラグインとは? SQL inputプラグインは、SELECT文を定期的に実行することで、RDBMSから最近更新されたレコードや最近追加されたレコードを定期的に取り出してFluentdに流すことができるプラグインです。内部では"前回読み出したレコード"を記憶しており、前回読み出したタイミングより後になって更新/追加されたレコードを定期的に読み出します。 SQL input plug

    データの更新履歴をRDBMSからfluentdに流すfluent-plugin-sql - Blog by Sadayuki Furuhashi
  • 「Metal」 based on Parsing Expression Grammar - 古橋貞之の日記

    Parsing Expression Grammar (PEG)をベースとした構文解析器を生成するパーサジェネレータMetalを作りました。Rubyで書かれており、Rubyのコードを生成します。 Metalの多くはOMeta: an Object-Oriented Language for Pattern MatchingをRubyに移植したものです。 Metalの特徴: Rubyでアクションが書ける オブジェクト指向(継承、Mix-in、委譲、オーバーライド、super) PEGの特徴はそのまま 曖昧さが無い 左再帰が書けない(いまのところ) メモ化する ソースコードはCodeRepos:/lang/ruby/metalにあるので、ガツガツいじれます。 使い方 Ruby gemsでインストールできます。 $ gem install metal 文法定義ファイルを書いて、metalコマンド

    「Metal」 based on Parsing Expression Grammar - 古橋貞之の日記
  • 「分散システムのためのメッセージ表現手法に関する研究」 - 筑波大学大学院を卒業しました - Blog by Sadayuki Furuhashi

    このたび筑波大学大学院を卒業し、修士号を取得しました。卒業にあっては当に多くの方々にご助力いただきました。この場を借りて御礼申し上げます。ありがとうございました。 現在は起業して、12月からアメリカに在住しています。新たな価値を生み出すべく "下から上まで" システムの設計と開発に携わっており、エキサイティングな毎日を送っています。 修論シーズンに日にいなかったので、修士論文はメールで送って提出し、卒業式にも出席していないというありさまなので、当に卒業できたのかどうか実感がないのですが、友人によれば「学位記はあった」らしいので、きっと大丈夫でしょう。(写真はカリフォルニア州マウンテンビューにて) さて、せっかく時間を割いて書いたので、修士論文を公開することにしました。 分散システムのためのメッセージ表現手法に関する研究と題して、バイナリ形式のシリアライズ形式である MessagePa

    「分散システムのためのメッセージ表現手法に関する研究」 - 筑波大学大学院を卒業しました - Blog by Sadayuki Furuhashi
  • イベントログ収集ツール fluent リリース! - Blog by Sadayuki Furuhashi

    こんにちは。Treasure Data の古橋です^^; 先日の Treasure Data, Inc. 壮行会 で、イベントログ収集ツール fluent をリリースしました! Fluent event collector fluent は syslogd のようなツールで、イベントログの転送や集約をするためのコンパクトなツールです。 ただ syslogd とは異なり、ログメッセージに テキストではなく JSON オブジェクト を使います。また プラグインアーキテクチャ を採用しており、ログの入力元や出力先を簡単に追加できます。 Twitterでも話題沸騰中です:イベントログ収集ツール #fluent 周りの最近の話題 背景 「ログの解析」は、Webサービスの品質向上のために非常に重要です。Apacheのアクセスログだけに限らず、アプリケーションからユーザの性別や年齢などの詳しい情報を集め

    イベントログ収集ツール fluent リリース! - Blog by Sadayuki Furuhashi
  • Webサイトをgithubで管理してpush時に自動的に同期する方法 - Blog by Sadayuki Furuhashi

    Webサーバに Subversion のサーバを立てておき、HTMLCSS を commit することでWebサイトを更新する方法は、良く知られているテクニック、らしいですね*1。更新の履歴を残すことができるし、ましてチマチマとFTPやsftpでアップロードするよりずっと簡単です。 しかし SVN の代わりに git を使おうとすると、pushしてもリポートリポジトリではファイルを更新してくれません。 また、リポジトリはWebサーバ上に作るよりも、便利な管理インタフェースがある github(や噂のgitosis)に置いておきたいところです。 そこで、github の Post-Receive Hook を使うと、リポジトリに変更を push すると同時に、Webサーバにも同期させることができます*2。 Webサーバに同期する前に、Sphinxでドキュメントを整形したり、SassをC

    Webサイトをgithubで管理してpush時に自動的に同期する方法 - Blog by Sadayuki Furuhashi
  • Amazon EC2 で手元のホストとファイルを共有する - Blog by Sadayuki Furuhashi

    Amazon EC2 はVMを好きなタイミングで好きなだけ使うことができるので、複数のサーバを使う分散システムの検証環境として非常に使いやすい*1。費用を計算してみても、自宅でクラスタを動かすことを考えれば、十分安く上がりそうである。 しかし、VMを起動するたびに環境を設定したり、新しいテストを実行するたびにファイルを配ったりするのは面倒なので、ファイルを共有したくなる。 通信の遅延がかなり大きいので、EC2上でssh越しにファイルを編集するのも少々つらい。 そこで、手元のホストとホームディレクトリを共有する。さらに、一度転送したデータはキャッシュさせる。 共有ホームディレクトリ環境の管理方法と組み合わせれば、便利に使えるに違いない。 戦略 ファイル共有には NFSv4 over ssh を使う。NFSv4はポート番号を1つしか使わない(portmapperも要らない)ので、ssh越しで使

    Amazon EC2 で手元のホストとファイルを共有する - Blog by Sadayuki Furuhashi
  • 世界の「NoSQL」開発者が東京に集結 - NOSQL afternoon in Japan - Blog by Sadayuki Furuhashi

    NoSQLと呼ばれる新型の分散データストアの開発者が一堂に会するイベント NOSQL afternoon in Japan が、2010年11月1日、楽天タワーで開かれました。 海外からは「Cassandra」のサポートを行う Riptano や、「MongoDB」を開発する 10gen、「Couch DB」の Cloudant、「Hadoop」の Cloudera のエンジニアが登壇し、日からは Hibari、Okuyama、ROMA、そして kumofs の開発者が講演しました: ContentsPresenters HibariJoe NortonGemini Mobile Technologies OkuyamaTakahiro Iwase CassandraNate McCallRiptano ROMAMuga NishizawaRakuten Mongo DBRoger Bo

  • マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi

    シングルスレッドではもう遅い。 以前にマルチコア時代の高速サーバーの実装で、「ネットワークIOはマルチスレッドで動かすが、その他の部分はシングルスレッドで動かす」というIOアーキテクチャの実装(mp::iothreads)を紹介しました。iothreadsはロジック部分をシングルスレッドで書けるため実装の手間を抑えることができ、ネットワークIOがボトルネックになるプログラムには特に適していると思われます。 しかし実際にiothreadsを使ってプログラムを書いてみると、非常に負荷が高い状況でシングルスレッドの部分の処理速度がボトルネックになってしまうことがありました。 そこでマルチコアCPUの性能を引き出すために、徹頭徹尾マルチスレッドで動かすIOアーキテクチャを実装してみました。 1つのスレッドが、ある時はepoll_wait()し、ある時はread(2)を行い、ある時はイベントを処理す

    マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi
    Naruhodius
    Naruhodius 2010/08/03
    フムン
  • WebSocketサーバライブラリ rev-websocket リリース - Blog by Sadayuki Furuhashi

    いま WebSocket がにわかに注目を集めているようです。 ブラウザとサーバの間でリアルタイムな双方向通信を実現する機能で、HTML5に追加された(される予定の)新しい仕様です。 このWebSocketを使うには、ブラウザ側のJavaScriptの記述だけでなく、サーバ側の実装も必要になります。 そこで、Rubyで使えるWebSocketのサーバライブラリ rev-websocket をリリースしました。 gemでインストールできます:gem install rev-websocket 早速、デモアプリケーションを作ってみました:シャウッたー *1 WebSocket を使ったチャットシステムに、ちょっとした演出を加えたシンプルなアプリケーションです。速くタイプするほど大きく表示されるという趣向です^^; WebSocket に対応しているブラウザは今のところ Safari と Chr

    WebSocketサーバライブラリ rev-websocket リリース - Blog by Sadayuki Furuhashi
  • 進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi

    MessagePack Project のWebサイトをリニューアルしました! 新しいURLは、http://msgpack.org/ です。 シンプルなイメージから若干趣を変え、完成度が高くてリッチな印象を重視しました ;-) 文章ではシリアライズの速度に加えて、RPCの意欲的な設計を強調しています。 なお、Twitterのハッシュタグは #msgpack です。ぜひツイートしてください^^; 実は先日、MessagePackプロジェクトについて StumbleUpon の研究開発チームの方々にプレゼンテーションしてきました。(参考:FacebookとStumbleUponの方がTwitterよりトラフィックを生んでいる) 写真を一枚^^; さらに、LuceneやHadoop開発者であり、Avroの開発者でもある Doug Cutting 氏(Wikipedia!)ともディスカッションす

    進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi
  • シリコンバレーにいます - Blog by Sadayuki Furuhashi

    6月5日から6月27日までの約3週間の間、サンフランシスコ・マウンテンビューの周辺に滞在しています。 実は日国外に脱出したのは今回が初めてで、飛行機に乗る段階から驚きの連続です^^; 滞在先のホテルから撮影した風景。眼前にはサンフランシスコの町並みと、見渡す限りの青空が広がっています。 初日にフィッシャーマンズ・ワーフでべたお昼ご飯の光景。眼前には「カラマリ」なるイカのフライと、大量のポテトが広がっています。 サンフランシスコの朝は霧が濃い。 ダウンタウン・マウンテンビュー駅。道が広い。空が広い。空気はカラっと乾いて快適。そして町中で Google Wi-Fi が使える。快適な町 Mountain View。 これまでに、Cloudera社のDoug Cutting氏や、StumbleUpon社の研究開発チームとディスカッションする機会がありました。 ちなみにStumbleUpon社は

    シリコンバレーにいます - Blog by Sadayuki Furuhashi
  • kumofs-0.4.0リリース - CAS操作をサポート - Blog by Sadayuki Furuhashi

    新たにCAS(Compare-And-Swap)をサポートした、kumofs-0.4.0をリリースしました。 memcachedのテキストプロトコルで、getsコマンドとcasコマンドを新たに使うことができます。 後方互換性は保たれています*1。新機能を利用するには、kumo-gatewayとkumo-serverを更新してください。 CASとは? CAS(Wikipedia)は Compare-And-Swap の略で、ある値を取得したあと、その値が別のプロセスから更新されていなければ(Compare)変更を適用する(Swap)という操作を、アトミックに実行することができます。 CASを利用することで、kumofs上にキューやカウンタ、連想配列、ロックなどを実装することが可能になります。 例えば kumofs でキューを実現する擬似コードは、次のようになります: KEY = "myque

    kumofs-0.4.0リリース - CAS操作をサポート - Blog by Sadayuki Furuhashi
  • The Kumofs Project - Blog by Sadayuki Furuhashi

    分散key-valueストア Kumofs のWebサイトをオープンしました! The Kumofs Project Webサイトには、LinkedIn で開発された分散Key-valueストアである Voldemort との速度比較を掲載しています。 kumofsはVoldemortと比べて、倍以上の読み込み性能を、半分以下のCPU使用率で達成できます。 kumofsは並列イベント駆動I/Oを基盤とした、マルチコアCPUに特化したスケーラブルな実装です。 ノード間の通信には、MessagePack のゼロ・コピー化されたデシリアライザを活用しています。 MessagePackのストリームデシリアライザは(kumo-gatewayのmemcachedプロトコルのパーサも)、ちょっと賢いバッファリング戦略を実装しています。 コマンドを受け取るたびに新しいバッファを確保するのではなく、複数のコ

    The Kumofs Project - Blog by Sadayuki Furuhashi
  • 並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害

    並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi
  • ニコニコ動画、分散Key-valueストア「kumofs」を導入 - Blog by Sadayuki Furuhashi

    つい先日、ニコニコ動画モバイルの一部でkumofsを導入した というお話を伺いました。 まだまだ利用は一部でしか始まっていないようですが、これからデータを取りながら運用実績を作っていきたいとのことでした。 kumofsは、バージョン0.3.3でflagsの保存に対応し、バージョン0.3.5でexpireに対応しています。バージョン0.3.4では、Javaクライアントとの互換性を改善しています。 これらの機能の改善に加えて、運用実績やノウハウの蓄積も、オープンソースソフトウェアとして重要な要素の1つと言えます。 kumofs関連資料まとめ や #kumofs@twitter にも、ぜひ注目してみてください^^; kumofsは既に、写真ストレージサービス Ficia(フィシア)での運用実績があります。(ITproニュース) ドワンゴ 研究開発ブログ 分散Key-Valueストア「kumofs

    ニコニコ動画、分散Key-valueストア「kumofs」を導入 - Blog by Sadayuki Furuhashi
  • hbstudy#10「ずばり動く!kumofs と ずばり動かないケース」 - Blog by Sadayuki Furuhashi

    ずばり動く!kumofs と ずばり動かないケース と題して、hbstudy#10 で発表してきました。 序盤の趣旨は丸レク2010と共通しながらも、別の側面とストーリーから紹介してみました。 また今回は、列指向DBなどの他の分散データストアとの違いについても紹介しました。 kumofsは Dynamo で言うところの Eventually Consistent ではないのですが、今回は Eventually Consistent でポイントとなる Vector Clock についても少し紹介しています。 kumofsは double-hash-spaceという独自のアルゴリズムを使うことで、ノード増減時の一貫性を保っています。Vector Clock で問題となる、データの新旧が「比較不能」になることがないため、アプリケーションでマージ処理を実装する必要がありません。 目次 kumofs

    hbstudy#10「ずばり動く!kumofs と ずばり動かないケース」 - Blog by Sadayuki Furuhashi
  • 丸レク2010「分散Key-valueストアkumofsの思想と設計」 - Blog by Sadayuki Furuhashi

    分散Key-valueストアkumofsの思想と設計 と題して、丸レクセミナー2010で発表してきました。 kumofs を使いたくなるユースケースの紹介を中心に、kumofs のメリットを紹介しています。 会場は楽天タワーで、何やらスゴイ数の方に聞いていただけたようです。来場者数は500名を超えたと聞いています。 ネット中継でも多くの方に視聴していただいたようで、Twitterでも多くのフィードバックをいただきました。ありがとうございます。 分散Key-valueストアkumofsの思想と設計View more presentations from frsyuki. 発表スライド(PDF) Ustream.tvの録画 あわせて読みたい 情報システムの信頼性:対策は進んだが改善の余地も 企業IT動向調査2009 kumofsから学ぶNot only SQL技術@Developers Su

    丸レク2010「分散Key-valueストアkumofsの思想と設計」 - Blog by Sadayuki Furuhashi
  • 並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です*1。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行*2で、全体の約半分を占めています。 ロジックは残りの半分*3だけで実装されています。 この実例から分かりますが、kumofsのような分散アプリケーションを開発するにはI/O周りの実装が大変で、とてつもなく大きな障壁になっています。*4 さらに今日では、性能を稼ぐためにマルチスレッド化が必須です。また、多数のクライアントを少ないリソースで効率よく相手にするには、非同期・イベント駆動型のアーキテクチャも必要になります。さらに、究極的な性能を達成すべく GC を利用しない C++ においては、実装のみならず設計も大変です。 これに加えてソケットAPIの難解な挙動に対処にしなければならないため、C言語やC++によるネットワークプログラミングは、vimの使いこなしなどと同

    並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi
  • 学士(情報工学)と筑波大学 学長表彰をいただきました - Blog by Sadayuki Furuhashi

    このたび、筑波大学第三学群情報学類を卒業し、学士(情報工学)を取得致しました。 また、光栄にも学長表彰の栄誉に浴することとなりました。 体育専門学群を有する筑波大学の学長表彰は、日を代表するオリンピック選手も歴代受賞されてきた賞であって、そのような方々と肩を並べるのは恐縮ではありますが、他方、その誇りを大変嬉しく思います。 ひとえに皆様のご支援のお陰と存じます。有難うございました。 今後ともよろしくお願い致します。 表彰の記念品には、筑波大学教授の柴田良貴先生による彫刻の作品をいただきました。この記念のために、1つ1つ作成していただいたそうです。 筑波大学のユリノキ通りは美しい。特に初夏。1学期が終了する頃、樹間のトンネルを抜けていく自転車の学生たちは生き生きと見える。 筑波の青春、その風景を彫刻とした。 柴田良貴 …嘘じゃないよ

    学士(情報工学)と筑波大学 学長表彰をいただきました - Blog by Sadayuki Furuhashi