タグ

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

  • 開発メモ: KCのRubyバインディングの並列化

    Kyoto CabinetRubyバインディングの使い方については以前の記事で説明してあるが、今回はそこで触れていた並列化をやってみたという話。 Ruby 1.9のスレッドモデル Ruby 1.9のマニュアルには以下のように書いてある。 ネイティブスレッドを用いて実装されていますが、現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行されるネイティブスレッドは常にひとつです。ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には GVL を解放します。その場合にはスレッドは同時に実行され得ます。また拡張ライブラリから GVL を操作できるので、複数のスレッドを同時に実行するような拡張ライブラリは作成可能です。 ということは、DBMの操作をGVLを外してから行ってあげれば、DBMの操作同士およびDBMの操作とRubyコードの

  • Crawler Guide of Hyper Estraier Version 1 (Japanese)

    目次 はじめに チュートリアル クローラコマンド Web検索エンジンの実現 はじめに このガイドでは、Hyper EstraierのWebクローラの詳細な使い方を説明します。ユーザガイドとP2Pガイドをまだお読みでない場合は先にそちらに目を通しておいてください。 estcmdだとローカルのファイルシステム上にある文書(ファイル)を対象としたインデクシングしかできません。NFSやSMB等を用いてファイルシステムをリモートマウントすれば別のマシンにある文書をインデクシングすることもできますが、不特定対数のWebサイトの文書を扱おうとするとそうもいきません。wgetなどのクローラで文書を集めて来てローカルに保存してからインデクシングすることも考えられますが、ディスク容量の問題や更新頻度の問題などがあります。 Web上のリンクを辿って文書を収集することをWebクローリングと言い、そのプログラムをW

  • 1