Rinda: Answering the RubyConf and RubyKaigi (関 将俊)

スピーカー
関 将俊 - druby.org
プロフィール
プログラマ。幸福の王子本こと「dRubyによる分散・Webプログラミング」は今ならまだ初版が買えます。
講演時間
17:00〜17:30
講演者による資料
http://www.druby.org/RK07.pdf

開始前のスライド笑えた。

第4回とちぎRubyの勉強会
6/23 西那須野公民館
基調講演:arton
豪華レギュラー
rubykaigi_some6.jpg

重要なことを先に

今日は個人的な言い訳をします。で始まりました。

dRuby本
  • '05夏リリース
  • まだかえます

buy now!!!

私について

  • Agileとか
  • やっとRuby

Product

  • ERB
  • dRuby
  • Rinda

ユーザー数

  • ERBがほとんど
  • ego-searchではdRubyが

作者の愛はdRubyなのに報われない愛

愛の反対は無関心
ERBは愛していないわけではないけど

今日はRinda

  • いくつかの発表についていいわけします
  • 言い訳駆動

去年の発表から

dRuby, Again

去年の発表そのままですw

dRubyのやること

  • メッセージングを拡張
  • オブジェクトの交換

プロセスを超えるとはの説明など

実験

飛ばされたー><

そのほかスライドを飛ばしてとばして

オブジェクトの交換について

  • 参照渡すかとか自動的に判定してやる
  • dumpable, can't dump を自動的に判別しているから知らないうちにイテレータとか動いている
  • Threadは参照渡し
  • 値渡しはコピー
    • コピー渡しなので破壊型のメソッドを呼んでも、そのままという例

dRubyを何に使うの?

  • 配置と寿命
  • オブジェクトはプロセスに在る
  • 住まいが異なる=寿命が異なる

寿命といえば永続化

  • 永遠の永続化
  • 比較的な短い永続化

Rinda

Linda

並列処理の糊言語 タプルとタプルスペース

Lindaの協調

  • out
  • inとrd
  • 参加者はタプルスペースだけを知っている

かっこいい並列処理

Rinda

  • RubyによるLindaの実装
  • dRubyを意識してくれる
  • タプルをArrayで表現

writeとtakeの例

待ち合わせ
takeを先にすると、writeされるまで待ち合わせる

Answering

  • Tupleの設計はプロトコルの設計

Tupleで表現するもの

  • RPCの要求とその返信

テンプレート

  • Tupleをパターンで指定
  • read,take
  • ===で比較

RPCなTuple

メッセージ識別子具/データ
  • 値で指定
  • ワイルドカードはまずない
:snapshot12345"http://foo/bar",320,240
:snapshotnilnil, nil, nil
:snapshot_done12345"img_320_240_12345.jpg"
:snapshot_done12345nil

O(N)

  • メッセージだけで探す
  • 要求がたまってるとき、すぐマッチ
  • まあまあO(1)

不公平な検索

  • 事前にメッセージごとに分類
  • 先頭の要素がSymbolのばあいのみ
  • StringやIntegerは===の扱いがむずかしい

tuple[0]はシンボルにしておくと効率がよい

Rinda遅いんですけど

さっきロビーで(ry

考えた

さっきの状態で生き返るTupleSpace

永続化
タプルの内部表現の状態を外部に記録
PTupleSpace
永続版TupleSpace

TupleStore

  • Tupleの情報をメモしておく
  • ログファイルのTupleStoreLog
  • HashのTupleStoreSimple
書くだけ
落ちたときにログから生き返る
再起動の通知は
Ringが使えるかも
TupleStoreの配置は
dRubyで好きなところに

不揮発性のオブジェクトID

  • 不揮発な参照
  • object_idはそのプロセスだけで有効
  • 再起動時に困る

ログのIDを用いた特別な参照を作る

2004年から開発が止まってる

変えたよ!

まとめ

関心を持ってくれたみなさまに感謝

それから

たまにはERBの言い訳をしたい

  • なぜ行に分割をするのか
  • メソッド化

質疑応答

ごめんなさい。最初の二つの質疑を落としました。

Q
仕事でつかってます。ptuplespadeメーリングサーバーに使ってほしい
A
使えると思うのでそのまま使ってください

全体的に早いペースの発表だったのでログもついていけませんでした。ごめんなさい。

(ロガー:よう)

Last modified:2007/06/16 15:40:37
Keyword(s):
References:[RubyKaigi2007速報ログ]

Login