In message <200012260642.PAA24123 / cafe.muraoka.info.waseda.ac.jp>
shudoh / muraoka.info.waseda.ac.jp writes:

> > よかったら勉強させてください。性能?その性能は、Rubyでも効きます?
> 
> 性能は、アプリケーションの性質に依る、としか言えないと思います。
> 
> 例えば、何か巨大なデータを引数に遠隔呼び出しする場合を考えます。
> コピーを渡すとなると、呼び出しの時点で巨大データを全部転送してしまいますが、
> 参照だけ渡すなら、通信量はごく僅かで済むでしょう。
> しかし、呼び出し先でそのデータに頻繁にアクセスする場合、
> 参照しか渡していないとアクセスの度に通信が起きて、
> 性能的に悲しいことになります。

まさに,「ものによる」んですよね.

    immutable なオブジェクトならそれぞれのノードにコピーしてしまっても
    問題が起こることはないし,多くのアクセスがある場合には距離がちぢま
    るうえに帯域は広がるから性能的に有利.

というのはだいたい確かだといえる.でも,

    mutable なオブジェクトの場合,コピー同士の一貫性を保つためのコスト
    が大きくなる.....まさか,一つのメソッドコールで使われてたら他では
    一切使えない,っていう仕様にするわけにもいかないだろう.

という大問題があったりして.そもそもどれだけの一貫性を提供するのか,と
いう話もある.


書き換えるノードが一つだけだったらそこを「オーナー」として,複製を持つ
ノードに書き換えを通知してまわるのがいいかも知れない.でも書き換えをす
るノードがたくさんあったらどうしよう.一切複製を作らせないほうが簡単に
実装はできるけど,それはきっと性能を犠牲にしている.

naming/lookup,replication/caching,calling semantics と.もうちょっ
と何かあったかな.... immigration?


# Distributed Operating Systems は良い本だった.中身をほとんど覚えてな
# いのが問題なんだなぁ :-P 上のは分散共有メモリの話とプロセス/スレッド
# 関連の話が混ざってます.


-- 
柳川和久 @ 東大阪市 . 大阪府                              December 26, 2000
「なんで一本道で迷うことがある?」「人間やればなんだってできるんだ!!」