タグ

ブックマーク / fallabs.com (6)

  • 開発メモ: memcachedプロトコルでメッセージキューを実現する

    前回の記事にて、Kyoto Tycoonでメッセージキューを実現する方法について述べた。今回は、それを実運用にて使いやすくするための諸機能について説明する。みんな大好きなmemcachedプロトコルでメッセージキューを実現してみよう。 ジョブキューとメッセージキュー どうでもいい話ではあるが、ジョブキューおよびメッセージキューという用語はよく混同して使ってしまう。俺定義では、ジョブキューは「ジョブ管理機能」という目的をたまたまキュー構造に基づいて実装しているものであり、メッセージキューはキュー構造に基づく非同期メッセージング機構であって用途は特に限定しない。つまりメッセージキューをジョブキューを実装するのに使うこともあるが、それ以外の用途にもメッセージキューは使われる。またジョブキューをメッセージキューに基づかないで同期的に実装することもできる。 きっと偉い学者さんがどこかでちゃんとした定

  • 開発メモ: KVSとシグナル機構でジョブキューを実現する

    いわゆるkey-value storeを使っている際に、レコードの挿入もしくは更新を検知して即座に何らかの処理を行いたくなることはないだろうか。俺はあんまりないけど、結構そういう質問が来るので、きっと巷にはそういう要求があるのだろう。Kyoto Cabinetでそれを実現してみた。 ジョブキュー もうちょい具体的な例を挙げると、ジョブキューである。ここで、「foo」という名前のタスクを考えてみる。読み出し側(ワーカ)は、適当な名前をつけた条件変数を常に監視していて、そこにシグナルが飛んできたら即座にレコードを取得して処理を行いたい。しかし、「一定の間隔毎にレコードの検索を繰返して発見したら処理を行う」というポーリングスタイルにはしたくない。操作にどうしてもタイムラグが出るし、ポーリングのための無駄なトラフィックが発生するからだ。 シグナル待機処理と該当レコードの取得処理を行う擬似コードは以

  • Technical Memo: Numeric Operations in Kyoto Products

  • Technical Memo: Auto Snapshot for On-memory Databases

  • Technical Memo: Replication with Background Snapshot of On-memory Database

  • 開発メモ: 使ってみようTokyo Cabinet

    この記事は、Software Design2010年2月号の特集「ほんとうに知りたいあなたのためのkey-valueストア講座」に寄稿した記事の校正前の版です。 DBMとは PerlRubyPHPなどのスクリプト言語が世の中に多数存在しますが、どの言語にも必ず連想配列もしくはハッシュと呼ばれる機構があります。これは、キーと値という二つのオブジェクトを関連付けて記憶しておき、キーに一致する値を効率的に取得するための機構です。プログラマの皆さんは日々当たり前のように使っている機能ですよね。 スクリプト言語組み込みの連想配列はメインメモリ上にデータを記録するので、プロセスが終了したらデータが消えてしまいますし、メインメモリの容量以上のデータが扱えないという問題があります。それを解決するのがDBM(DataBase Manager)です。DBMは連想配列をファイル上で実現したものですので、プロ

  • 1