パスワードを忘れた? アカウント作成
5134 story

グリッドを使った100万人用のゲームサーバ 40

ストーリー by Oliver
PS3先取り 部門より

otiak曰く、"PCwatchによると米IBM米Butterfly.netSCEIPS2向けのツールとミドルウェアに関する契約を締結したそうだ。 IBMのニュースリリースによると、Dual-Xeonのブレードサーバを14枚搭載し、グリッドシステムによって100万人以上の同時プレーヤーをサポートするそうだ。 サーバを動的に再構成することによって負荷を分散したり、ゲームを中断せずにメンテナンスをおこなったりできるとのことなので、 「サーバが重い」「メンテナンスの時間が苦痛だ」などど思うヘビーゲーマーにが 朗報ではないだろうか。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • よーし (スコア:2, おもしろおかしい)

    by take0m (4948) on 2003年03月02日 15時02分 (#270904) 日記
    動的にってことなら、LISPで書きますか!
    オブジェクトも動的だから、稼働しながらメンテできちゃいますよ。
    まさにゲーム向け?
    • by bushidoh (12670) on 2003年03月03日 0時43分 (#271271)
      LISP には参照渡しがあるんですよねえ。
      親コメント
    • by Anonymous Coward
      そこまでいかんでも…(笑

      Java とかでも十分動的再構成出来ますがな。C でもプロセスをうまく分けとけばいけそう。
      • by G7 (3009) on 2003年03月02日 23時47分 (#271238)
        まま、そうおっしゃらず、普通のやつらの上を行きましょう(^^; [dreamhost.com]

        志を低く持てば、Javaでも出来るぞCでも出来るぞという議論も可能ですが、
        どうせならもっと気前よく行きましょう。他にも色々メリット有るんだから。

        ただまあ、Lispそのものが最高の解なのかどうかは俺は何とも言いませんが。候補の無い昔はともかく今ならrubyやsmalltalkでも良いのでは?ってのも有るんで。
        うーん。やっぱり動的度の高い言語のほうが色々ゴリヤクが多いような気がする。CやJavaは足回りにだけご登場願うっつーことで。
        親コメント
        • Java は動的度が低い、とも取れる発言をされては黙ってはおられん!(笑

          LISP、はよく分からんですが、例えば ruby や Smalltalk、これらは確かに高い動的度を持っておるでしょう。しかし、それは他のものを犠牲にして得られたものではあるまいか?

          例えば ruby の thread は、(native 化しようという動きはあれど) 基本的にユーザランドスレッドであり、お手軽な反面、より高機能なハードウェア (マルチプロセッサな環境など) をうまく利用することが出来ないでしょう。Smalltalk や LISP の現存する処理系も、多かれ少なかれそういう面を抱えているのではないですか?

          「普通のやつらの上を行け」、確かにおっしゃることはごもっともな面もありますが、プログラミング言語というのは、その「言語」としてのポテンシャル以外に、どのような「実装」が現存するのか、というのも重要な判断基準でありましょう。どんなに優れた言語であっても、優れた実装が提供されない限り、宝の持ち腐れではないですか?

          「言語」の持つポテンシャルと、現存する「実装」のクオリティ、それらが高いレベルでバランスしているプログラミング言語こそ、「最もパワフル」と呼ばれるに相応しい言語であると、僕は思います。

          で、すなわちそれは Java であると!

          // …あ、石投げないで~。

          ところで Java は動的度高いと思いますよ。VM 動作させたままクラス定義入れ換えられるし。インターフェイス合わせとけば新旧のクラスが混在するような環境でも問題ナシです。ポイントはクラスローダですな。
          --
          Only Jav^Hpanese available :-)
          親コメント
          • by kusanagi (3927) on 2003年03月03日 2時00分 (#271309)
            いや、LISPはデータとプログラムが等価なんですよ。
            データの再編成を行うように自分自身のロジックをロジックで再編成できると。
            …でよかったよね?>LISPのえらいひと

            Javaは…早くテンプレート実装してください~
            あ、あとVMのvesionがほんの少しでも変わるとがらりとガベージコレクタの挙動が
            変わっちゃうのも大変かもしれない。
            C++使いには「自分で解放するから手を出すなっ」と叫びたくなることもたま~にあるが(笑
            でも、言語的にはおもしろいですよ。
            --
            kusanagi shin
            親コメント
            • > LISPはデータとプログラムが等価なんですよ。

              今のノイマン型コンピュータではどんな言語を使おうがプログラムとデータは等価なのではあるまいか?…なんて原則論をゆってもしょうがないっすね。確かに LISP のその特徴はシンプル、かつ非常に強力な点でありますな。設定ファイルを LISP で書ける環境だと、値を設定すべきところに式が書けたりしてめちゃめちゃ便利ですよねぇ。

              > Javaは…早くテンプレート実装してください~

              なんでも次のバージョンでは実装される予定だそうで。僕自身は全然必要性を感じていないんですけど、Java でも便利ですかね?異なるクラスに対して同一の操作を行うような method を作りたければ、共通の親クラスを用いて多態させればいいように思うんですが、Java にはプリミティブ型、という鬼っ子もいるわけで、もっぱらこちらのために使うことになるのかしら?しかし複数のプリミティブ型に対して同一の処理を行う method を書きたい、という局面は非常に限定的な気もしますが…。

              > あ、あとVMのvesionがほんの少しでも変わるとがらりとガベージコレクタの挙動が
              > 変わっちゃうのも大変かもしれない。

              むぅ。僕自身かなり VM をいじめてきたつもりだったんですが、この「ほんの少しでも変わるとがらり」に相当するような挙動は見たことがないです。今後の参考のためにどんな変化だったのか教えていただけたりしませんか?ダメ?

              > C++使いには「自分で解放するから手を出すなっ」と叫びたくなることもたま~にあるが(笑

              参照が残ってる限り GC は手を出さないと思うんですが…って、そんな基本的なことじゃない?あこりゃ失礼しました~。
              --
              Only Jav^Hpanese available :-)
              親コメント
              • >> Javaは…早くテンプレート実装してください~
                > なんでも次のバージョンでは実装される予定だそうで。僕自身は全然必要性を感じていないん
                > ですけど、Java でも便利ですかね?異なるクラスに対して同一の操作を行うような method を作
                > りたければ、共通の親クラスを用いて多態させればいいように思うんですが、Java にはプリミティ
                > ブ型、という鬼っ子もいるわけで、もっぱらこちらのために使うことになるのかしら?しかし複数
                > のプリミティブ型に対して同一の処理を行う method を書きたい、という局面は非常に限定的な
                > 気もしますが…。

                正確にはJ2SE 1.5 から入ります。
                JCP(Java の標準団体) の JSR (Javaの仕様案) では JSR 14 Generic Types [jcp.org] です。
                提唱者による実装はすでに公開 [unisa.edu.au]されています。

                Generic Type は主として、コレクションクラスの高速化と安全性のために導入されます。
                現行のコレクションクラスが Object を基底としているため、コレクションから取り出してきた値を使用する前に narrow cast を行う必要があります。これが不要になるぶん高速化されます。
                また、Object 型を基底とするコレクションクラスにはどんなオブジェクトで入れることができるという問題がありましたが、ユーザーが指定したクラス(例えば MyClass) にパラメタライズされたコレクションには、MyClass とその導出型以外のものが入りません。その分、安心して使えますし、余分なチェックが不要になります。

                あと、入れ物のクラス毎にコレクションクラスが複製されるので、JIT コンパイルが効きやすくなったり、Digitune さんが挙げているようにprimitive 型のコレクションに対するナイーブな実装ができる点が有利なポイントですね。

                > > あ、あとVMのvesionがほんの少しでも変わるとがらりとガベージコレクタの挙動が
                > > 変わっちゃうのも大変かもしれない。
                >
                > むぅ。僕自身かなり VM をいじめてきたつもりだったんですが、この「ほんの少しでも変わると
                > がらり」に相当するような挙動は見たことがないです。今後の参考のためにどんな変化だったの
                > か教えていただけたりしませんか?ダメ?

                第3者ですが。
                SUN J2SE の HotSpot VM の 1.4.0 で 1.4.1 の間でボコボコに挙動が変わっている例を一つ。
                できるだけ way 数の大きい SMP マシンで、-XX:+AggressiveHeap を付けた時の挙動を確かめてみてください。天地の差があると思います。

                細かい違いはまだまだ色々あって、困っているのですが。。。
                # 変えるなら、変えると、ちゃんと言って欲しいよ > SUN
                --
                コンタミは発見の母
                親コメント
              • by G7 (3009) on 2003年03月09日 2時43分 (#275352)
                >異なるクラスに対して同一の操作を行うような method を作りたければ、共通の親クラスを用いて多態させればいいように思うんですが

                「同一の」じゃないから厄介なんですよね。「同様の」なんです。templateなるものが欲しくなる場面ってのは。

                コンテナ型がよく引き合いに出されますね。Hoge型のデータを格納するFuga型コンテナ、みたいな。
                Fuga型の仕組みはHogeが何だろうとそうそう変わるわけじゃないけど、一方でFuga型は
                Hoge型とそれ以外とを差別化したくて、しかもHoge型に使いたい型の候補は1つじゃないと来たもんだ、
                というケースですね。「型を作る」ときに他の型(とか)で修飾(?)したくなるという状況。

                そう。「型を作る」なんですよね、問題は。
                Hogeに相当する型を取っかえひっかえして色々なFuga型ファミリーを作りたい、という。

                で、俺としては、いいかげん面倒だから、全部動的にしちゃえ、と思っているわけです(笑)。
                ただまあ、JavaのGenericの方向性は、C++みたいなドロドロしたものにはならずに済むと聞いてる
                (C++のtemplateは導入によって理解が難しくなる(笑)が、GenericなJavaはむしろすんなり理解できる)
                んで、まあ有っても良いかなとは思ってますし、必要に迫られりゃ俺も使うでしょうね。

                >この「ほんの少しでも変わるとがらり」に相当するような挙動は見たことがないです。

                出来れば(出来るだけ)、GCの「挙動」なんかに関わらずに済ませたいものです。
                親コメント
          • by G7 (3009) on 2003年03月09日 2時31分 (#275346)
            >Java は動的度が低い、とも取れる発言をされては黙ってはおられん!(笑

            低いじゃないですか。それが証拠にrubyでいうところのmethod_missingメソッドが無い(笑)。
            有るか無いか判らないメソッドを呼ぶ、ってのを、javaは普通の構文で書けないっすよね。

            動的にも出来るけど、あくまでそれは特定のクラス(要するにjava.lang.refrect.*ですが)の機能を経由して
            はじめて使えるものであって、普通のソースの記述と地続きにはならないでしょ。
            つまり動的な要素も秘めてるけどあくまで秘めているというか、静的言語の文法で拘束してしまっている。

            #method_missing使いまくりのコードをrubyからjavaに移植したが、
            #えらくみっともなくしかならなかった。鬱。

            >しかし、それは他のものを犠牲にして得られたものではあるまいか?

            >例えば ruby の thread は、(native 化しようという動きはあれど) 基本的にユーザランドスレッドであり、

            無関係です。rubyはたまたまユーザースレッドですが、別に動的言語の宿命でもなんでもなく、
            OS提供のスレッドを直接使ってる言語はいっぱいあるはず。

            とりあえず、Gauche(Schemeの実装。作者は日本人)をWin32に移植しようとしてる某氏の
            Threadまわりも含めた奮闘記は、Gauche作者氏のWikiサイト「WiLiKi」で、ただいま好評連載中(違
            つまり(?)もともとGaucheはNativeスレッド使うらしいです。

            あと…あれ?Pythonってどっちでしたっけ?

            勿論、スレッドに限らず広く一般にあらゆるものを失わずに済む、なんてなことは有り得ないでしょうね。
            でもそれを言ったらjavaだって何かを失いながら存在しているわけですから。程度問題です。

            >「普通のやつらの上を行け」、確かにおっしゃることはごもっともな面もありますが、プログラミング言語というのは、
            >その「言語」としてのポテンシャル以外に、どのような「実装」が現存するのか、というのも重要な判断基準でありましょう。
            >どんなに優れた言語であっても、優れた実装が提供されない限り、宝の持ち腐れではないですか?

            1:「現存するか」じゃなく「現存し得るか」が重要ですね。原理的に無理(&無理でないにしても超困難)かどうかが重要。そうでないなら頑張って実装すれば済むことですから。
            1.5:それどころか実在すらするわけで、そこから先は単に知識(実在を知ってるかどうかという)の問題。
            2:「言語の優れた機能」が、しもじも(笑)のOSやハードのNativeなパワーを引き出すことと、イコールとは限らないでしょう。例えばNativeスレッドを使えても本物の末尾再帰を使えなければ、そのScheme実装はSchemeとして失格(=優れてない)なわけで。

            >「言語」の持つポテンシャルと、現存する「実装」のクオリティ、それらが高いレベルでバランスしているプログラミング言語こそ

            俺的には、Javaの静的っぷりが既に、言語のポテンシャルの低さとして重大な足枷に感じられるんで…。
            なんせ最近ご執心なのはPrototypeOOPだもんな。Classすら邪魔だと感じてるところ。

            >// …あ、石投げないで~。

            意思(発言)は投げておくことにします(藁

            >ところで Java は動的度高いと思いますよ。VM 動作させたままクラス定義入れ換えられるし。インターフェイス合わせとけば新旧

            「VMは」動的度が高いかも知れませんね。俺も正しい知識はまだ仕入れてないんでよく判ってませんが、
            JVM(バイトコード)を使うJava以外の言語実装(つまりその言語のコンパイラがJavaバイトコードを吐く)
            は無数に有るようです。その中にはそれこそ動的言語もいっぱいありますから、
            きっと動的言語を作る際にも困らないだけの仕組みは持っている(あるいは邪魔物を持っていない?)のでしょう。
            で、それはJava「言語」とは別問題。むしろJava言語はJVMの機能を全て引き出していないとも言えるのかも?
            親コメント
  • by renaissa (4104) on 2003年03月01日 20時05分 (#270401)
    DRなんてのは使えた試しがない。
    --
    --rena
    • by holon (13785) on 2003年03月01日 20時24分 (#270417) ホームページ 日記
      使えた試しがないということ自体は、将来もできないという根拠にはなりえないので心配しなくてもいいかと。

        これから人的そして経済的 resourceを投入することで、使える未来が開けることでしょう。 将来的には高いレベルで必要とされる物の1つではありますし。

      # もしくは使えない未来が確定するか。

        userの needsがある程度見込めるって前提で考えれば、結構いいとこいくんじゃないかなと思います。 はやく enduserとして試せる段階に来て欲しいですね。
      親コメント
      • by renaissa (4104) on 2003年03月01日 20時53分 (#270436)
        そーあってくれると嬉しいんですけどねぇ。

        「ウチのサーバもDRできるようになりましたよ!」
        「すいません、OSのバグがありました。まだ使っちゃダメです。」

        「OSのバグが直りましたよ!」
        「すいません、USのみです。日本では保守対象外です。」

        「今度は大丈夫です!」
        「すいません、実はこれこれこういう制限がありまして。。。」

        「今度こそ使っていいですよ!」
        「すいません、DRはゴールドプラチナスペシャルメニューの
        保守加入が前提で、保守費はこれくらいになります。」

        なーんてのが繰り返されてきた過去を思い起こすと、まだこの
        技術は時間がかかりそうな気がしないでもなかったり。
        --
        --rena
        親コメント
      • by Anonymous Coward on 2003年03月02日 20時04分 (#271096)
        ./J的に書き直してみる余計なお世話


        使えた試しがないということ自体は、将来もできないという根拠にはなりえないので心配しなくてもいいかと。

        これから人的そして資金を投入することで、使える未来が開けることでしょう。 将来的には高いレベルで必要とされる物の1つではありますし。

        # もしくは使えない未来が確定するか。

        利用者需要がある程度見込めるって前提で考えれば、結構いいとこいくんじゃないかなと思います。 はやく一利用者として試せる段階に来て欲しいですね。
        親コメント
    • 必要性がひっぱってそのうちどこかでクリアしちゃうのでは?
      PS3 も DR ちっくですよねぇ。。
      • by Anonymous Coward
        >PS3 も DR ちっくですよねぇ。。

        グリッドコンピューティングだかなんだか言ってるけど、
        クタちゃんの放言をあんまり真に受けないほうがいいよ。

        PS2のときも、アナログ回線やISDNでちんたらやるつもりはない、
        2001年にはCATVベースの自前ブロードバンド網を構築する、
        とかぶちあげておきながら、その後音沙汰なし。
        気づいてみれば世の中ADSLブロードバンド真っ盛りで、
  • by picard (4667) on 2003年03月01日 20時18分 (#270412) 日記
    つい先日会社で IBM のブレードサーバを導入したのですが、 Hyper Threading が有効になっていて、何と /proc/cpuinfo が 4CPU で認識されていました。グリッドそのものからは オフトピですが、 Hyper Threading がこうしたアプリケーション に対しどれだけ有効に作用するのか興味です。

    # でも、音うるさい ...

    • by tomatsu (2545) on 2003年03月01日 21時46分 (#270463)
      HTに気付かなくて「2CPUのはずが4CPUと出てるよー」と小躍りした事があります。
      OSの誤認識? 発注ミス? とりあえず、中を確認してみよう。と発注担当の人と一緒に開けてみて、謎が解けました(^^;)。
      親コメント
  • メンテナンスに強いシステムなのはいいけど、ユーザ数の見込みとサーバの規模を読み違えたら、結局重くなると思うんだが?

    無限大の処理能力と帯域幅なんぞ有りはしないのだから

    ま、メンテ落ちがなくなるのはいいことだが
    • 最近 CPU そのものは余分搭載しておいて、オンラインで有効化するだけでアップグレード、なんて売り方してるし、更に進んでグリッドが売り文句通りに動くような時代になればオンラインで CPU リソースを一時的に買い足して、なんてことが可能かも。 そういうことが可能な実装にしておくのは意味が大きいかなぁとか。

      また、需要が読み難いシステムこそグリッドコンピューティングが効いて来るのを考えると、ネットゲームに適用するって良い選択だろうと思うのです。

      --
      親コメント
      • いあ、動的メンテナンスが出来るのは有効なんでしょうけど、それと軽くなるのは別問題の様な?

        動的メンテナンスを用いて、軽くなるかどうかはひとえに運営のやり方次第ですね
        親コメント
        • 例えば、とにかくできる限り最大限に装備したものをリリースしておいて、契約で一部しか使えないようにしておき、必要になったらオンラインで使ってない部分を有効にする。

          こんな感じなら多少読み違えても重くはならないってことでないかな。

          もちろん、全てのリソースがこういうわけにはいかないので「運営のやり方」も重要だとは思いますが。
          親コメント
          • いや、いっそのこと、、、

            「今後、IBMが提供するマシンはすべてセル対応になります。また、追加契約により、
            お客様が当座は御使用にならない分のCPUパワーをセルのノードとして利用させていた
            だき、必要な電力・通信費を基本使用量より差し引くことが可能になります」

            とか、こういう方向性ならば、おもしろそうですが。

            #通信帯域に問題なければ、皆契約せんかな?
            親コメント
    • >ユーザ数の見込みとサーバの規模を読み違えたら
      その為のグリッドでしょう。

      ユーザ一万人を見込んでサーバを立てました。
      ユーザが二万人でした。
      メンテナンス無しに、サーバを動的に再構成して処理能力を倍にしました。

      これが可能になる。と言ってるのでは?
      親コメント
      • 動的に再構成しても、マシンの上限値をオーバーしちゃったら、結局重くなる罠

        それに動的っても、稼動中のメンテナンスが可能ってだけで、自己増殖の機械生物じゃないんだから(んなもんあるわけないが)、上限を超えたら結局アウトっしょ

        別に動的再構成を否定なんかしてません

        動的再構成=軽いってのが、楽観的意見だって書いてるだけですが?、重くなったら増やそうが無限大に続くわけないと思うんですが?
        親コメント
        • 動的に再構成しても、マシンの上限値をオーバーしちゃったら

          だから上限を越えないようにするために再構成や負荷分散をするんでしょうが。無茶苦茶言ってるなぁ。

          重くなったら増やそうが無限大に続くわけないと思うんですが?

          「無限大に続く」なん

          • 一理ある事はあるんですよ。先の例では一万→二万の時で、
            マシンパワーを二倍になるように構成すればまだなんとかなるんじゃないか?
            とも思えるんですが、これがたとえば、一万のユーザを見込んで、
            十万のユーザが押しかけたら、動的に構成しなおして十倍の処理能力を持たせればいいか?
            と言うとちょっと違う。ただ、そんな的外れな予想をする運営は問題が多そうですけどね。
            親コメント
    • そんな特定のユーザ数だけでうまく動くしろものを作ってどうする?ある程度の幅で speedup や efficiency などのスケーラビリティを確保するのは当然でしょうが。
      無限大の処理能力と帯域幅なんぞ有りはしないのだから
      誰もそんなもの要求してませんが?
  • TheWorld も夢じゃない・・・・ってか。(笑)
  • by sigetti (10345) on 2003年03月02日 3時50分 (#270724)
    大規模サーバも良いですが、それよりなにより初期投資の大きさ
    はなんとかなりませんかね~PS2ネトゲ。
    • そんなに高いっすか?

      PS2 本体が3万円、BBUnit が1万8千円っすから、合計4万8千円でとりあえず OK、後 FFXI するためにはキーボードがほぼ必須であることを考えるとそれを加えても5万円ちょっとでネトゲ環境が整うっすよね。

      // プロバイダは対応したとこに
      • by deki (5563) on 2003年03月02日 15時21分 (#270917)
        SCE,5月からPSBB Unit店頭販売を開始!
        http://www.zdnet.co.jp/games/gsnews/0302/19/news10.html

        なので対応プロバイダに加入しなくても良くなります。
        尚、FF11そのものは対応プロバイダは関係ありません。
        現状では、BBUを買うためにプロバイダに加入する必要があります。
        親コメント
  • by deki (5563) on 2003年03月02日 14時49分 (#270898)
    どうなんでしょう?
    http://www.playonline.com/polnews/ffxi/list_mnt.shtml
    障害復旧には使えないんですよね?

    さらに、月1のペースでVerUpがあり、
    メンテナンスもその時にやるようです。
    バージョンの整合性が取れなくなりそうですし、
    整合性を取るのにも費用かかるでしょう。

    上のURIで見ると障害多いようですが、サーバのハード的限界ではなく、
    VerUp時のバグのようです。
    方向性としては「サーバを動的に再構成」とかそういう方向ではなく、
    いかにバグを減らすか?にかかってるようです。
    • by Anonymous Coward on 2003年03月02日 20時07分 (#271100)
      FFXI でも結構あったつまんないバグに伴うサーバ停止メンテナンス (定期メンテの翌日4時間、とか) がなくなるだけでも結構嬉しいんじゃないでしょうか?

      サーバ運営側の立場から言えば定期メンテナンスは必須、という認識が一般化してくれると嬉しいなぁ。ソコ以外は絶対止めないように頑張るからさ。
      親コメント
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...