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

メモリデータベースでコスト削減 74

ストーリー by mhatta
結局ボトルネックは… 部門より

あるAnonymous Coward曰く、"カブドットコム証券のプレスリリースによると、メモリRDBMSの導入により約20倍の高速化および約25%の負荷軽減を実現した、とのことです。
タレコミ者は今まで存在を知らなかったのですが、磁気ディスクではなくメモリ上にデータベースを展開するメモリRDBMSが以前から存在し、 主にバッチ処理の高速化に利用されてきたものをカスタマイズしてオンライン業務に利用できるようにしたようです。
このことによりデータベース処理の負荷が軽減され、最終的にシステムコストの削減になったとのことです。

ただ、これが東証のシステムの崩壊につながらなければいいのですが・・・"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2006年02月22日 10時45分 (#887946)
    「基幹系を含めた全体の98%以上がWindows Server」らしいです

    http://itpro.nikkeibp.co.jp/article/Windows/20060111/227109/
    http://www.microsoft.com/japan/communities/mvp/mvpinsider/mvpins200509.mspx
  • by n68 (18156) on 2006年02月22日 11時25分 (#887970)
    >メモリ上にデータベースを展開するメモリRDBMS
    普通のDBMSでもデータを置く場所をRAMディスクに変えれば同じことだと思うのですが、一体何が違うんです?

    # 不揮発性のディスクにデータを退避するとか、
    # そういう細かい点は無視するとして。
    • by 1024 (15403) on 2006年02月22日 11時50分 (#887989)
      disk I/O を最適化させるための仕組みが必要無くなるので色々オーバーヘッドを省けます…ということで、In-Memory DBとしては Kairos に先行していた(と思う)TimesTen という製品の資料が参考になるかと思います。
      TimesTenアーキテクチャー詳細 [tel.co.jp] (TimesTen 総代理店であった東京エレクトロンのページです)
      今のところ Kairos のページ [science-arts.com] よりも充実しています。

      因みに、この TimesTen は「Oracle より 10倍速い!」という意味を込めて名付けられた名称です。
      と言ってたら、Oracle に買収されてしまいました。 [oracle.co.jp]
      まぁ、TimesTen は Oracle の置き換えを狙っていたのではなく併用によるスループット向上を謳っていたので、この買収は恐らく双方にとってプラスだとは思いますが。
      カブドットコム証券での Kairos 導入も、SQL Server との併用が前提と想像しています。プレスリリースの図だと完全置き換えにも見えますが。
      親コメント
    • by cljack (22418) on 2006年02月22日 11時34分 (#887979)
      「普通のDBMS」がデータをディスクに保存することを前提として設計されたものをさすと考えて.
      データを置く場所をディスクからRAMディスクへ単純に変更した場合,RAMディスクのキャッシュにRAMを使うことになりそう.

      他にも書き込み順の最適化とか,インデックスの形式とかオーバーヘッドになりそうな部分がいくつかあります.
      親コメント
    • by hyoshiok (10034) on 2006年02月23日 6時39分 (#888424)
      通常のRDBMSはIOが非常に遅いと言う前提で実装されています。例えばB-treeなんかはDiskIOを最小化するような工夫がありますし、OptimizerもDiskIOを最小化するようにプランします。メモリ常駐型RDBMSはそのような仮定を置かないです。 DiskIOとメモリアクセスは数1000倍コストが違いますが、メモリ常駐型RDBMSと通常のRDBMSでそんなに性能差がでないのは、RDBMSのメモリ管理が非常によくできているからともいえます。
      親コメント
  • by Anonymous Coward on 2006年02月23日 1時21分 (#888373)
    仕事柄調べた事があるので投稿。
    主なオンメモリデータベースは大体こんな感じでした。

    Oracle TimesTen In-Memory Database
    MySQL
    Kairos
    FSSQL
    DBISAM
    p*time

    eXtremeDB
    DayDa.Laboo
    Caché

    データベースの定義が曖昧でメモリ上にデータを持てば
    「オンメモリデータベース」と主張する製品も
    いくつか見受けられます。

    SQLが使えないデータベースと聞いたら
    多くの方は失笑されるかもしれませんが
    中にはSQLが使えない製品もあったりします。
    (この場合独自APIでデータ処理を行います)

    RDB(リレーショナル・データベース)とは言ってないので
    間違いではないのですが、一般的な認知からは外れるでしょう。

    ##
    思いっきり関係者なのでac
  • RDBMS (スコア:3, 興味深い)

    by 2nd.cc (28719) on 2006年02月22日 10時48分 (#887949) ホームページ 日記
    OracleやMySQLはメモリDB構築できますね。
    SQLserverはどうなんでしょうか?
    試された方います?
  • by Anonymous Coward on 2006年02月22日 10時55分 (#887952)
    勿論、うまいことやってると思うのですが。

    メモリに展開されたデータに障害が出た場合って、
    ちゃんとリカバリできるんですかね?
    • by bayside (23181) on 2006年02月22日 11時41分 (#887984) ホームページ 日記
      SQL互換性向上で浮上するオンメモリーDB [nikkeibp.co.jp] より。

      ただし、トランザクション・ログはディスクで管理し、万一の際のデータの消失を防ぐ。

      ということなので、参照系は大幅スピードアップでしょうが、登録系は参照系ほどは早くならないでしょう。

      親コメント
      • by 1024 (15403) on 2006年02月22日 12時03分 (#888001)
        In-Memory DB では、確かに更新系よりも参照系の方が享受する恩恵が大きいですよね。
        上記記事でも、参照系に注力する In-Memory DB メーカーのことが挙げられていますし。

        とはいえ、通常の DBMS(メモリ上の更新データをディスク上のデータファイルの該当箇所に書き込んでいかなければならず、バッファ管理やディスクシークのオーバーヘッドが発生する)に比べれば、トランザクション・ログをシーケンシャルに書き込んでいくだけで良い In-Memory DB の方が「更新系でも有利」と言えるかと。
        親コメント
        • by nim (10479) on 2006年02月23日 10時09分 (#888458)
          付け加えるなら、トランザクションログはリカバリ用にしか使用しないわけですから、(リカバリの際の手間は増えますが)データをディスパッチして複数のディスクにラウンドロビンで振り分けて書き込んでいくようにすればかなり性能は稼げますね。
          親コメント
    • by SteppingWind (2654) on 2006年02月22日 11時46分 (#887987)

      リカバリを考慮せずにすむ記憶領域専用と考えた方が良いでしょう. 例えばread onlyなマスタデータとか, あるいは索引領域みたいなものが対象ってことで. そうでなければトランザクションを不揮発記憶に書き込むことが必要になり, メモリを使う旨味が無くなりますから.

      と言うか, 最近の大規模OSとかRDBMSではメモリとディスクを一体的に管理するのが普通ですから, 大抵の場合は単純にメモリやバッファ領域を増やすだけで効果が出る場合がほとんどです. メモリRDBMSと言っても効果がある場合は

      • データ入出力の統計を完全に把握した上での自動化できない部分のチューニング
      • 32bitプログラムのRDBMSがOSの機能を使って2GB以上の主記憶を有効活用

      ぐらいでしょうか. 前者は継続的な運用を考えるとあまり勧められませんし(もちろん最後の手段としてはありですが), 後者はIA32のアーキテクチャとメモリ容量のバランスが崩れた現在に限った一過性のものだと思います.

      親コメント
      • by ginga (20279) on 2006年02月22日 14時01分 (#888078)
        それこそ巨大キャッシュ + Battery Backup Unit(BBU; 停止時にキャッシュメモリの記憶保持する)な RAID ディスク上に DB 作るってのではダメなんでしょうか?

        cache の BBU を信用して良いなら,書き込みキャッシュも write back で有効に すれば読みだけでなく書出しも高速化できそうですけど. それとも disk I/O インタフェースが遅くて memory I/O のバンド幅じゃないと対応出来ない? (そこまでは行かないですよね?)
        親コメント
        • 確かに磁気ディスクの転送速度がコンピュータ内のバスに追随できないくらいバスの方が速くなっていますから、一つの解ではあると思います。
          しかし、RAM上に大規模なデータを長時間置くというのは信頼性としてはあまりいい部類では無いし、バッテリーバックアップも高が知れているので、当然別のストレージにも並行してバックアップをしていかないといけないでしょうね。

          どっちかというと、BBUと磁気ディスクのRAIDアレイでRAID1作るとか、磁気ディスクの方と同期を頻繁に取るとか普通よりも多い頻度で磁気ディスクなどにバックアップするとか、安全策はとらないとまずいかと…
          親コメント
    • by Anonymous Coward on 2006年02月22日 11時57分 (#887996)
      たれ込みのリンク先に

      「カブボード ® 」、「個別銘柄詳細(四季報)」等の、銘柄情報、時価情報を従来のデータベースからメモリアクセスに変更する事により、従来と比較し約20倍の高速化および約25%の負荷軽減を実現。

      とありますんで、カブドットコム証券としてはリカバリの必要の無いデータに適用しているんじゃないですかね。
      親コメント
    • by rootbear (25827) on 2006年02月22日 17時22分 (#888130)
      大事なデータを扱う場合には、CPUもサーバもネットワークも電源もみんな冗長化して、データセンターが爆撃でもされない限りシステム全体が死なないような構成にしているはずです。 # それでもバックアップはきちんと取りましょう。
      親コメント
    • メモリなので、電源が供給されなくなったらあぼーんでしょうね。
  • by Anonymous Coward on 2006年02月22日 11時06分 (#887961)
    カブドットコム証券の処理量が増加→東証のシステム負担拡大→あぼーんってこと?

    東証の処理システム強化にメモリDB導入→メモリDB独特のトラブル発生→東証炎上ってこと?

    タレコミ末尾の「東証のシステムの崩壊につながらなければいいのですが…」の意味するとこがよく分からんですな。
  • 技術者として (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2006年02月22日 15時04分 (#888094)
    こういうことが発案できて、提案できて、実行できる技術者に私はなりたい
  • by Anonymous Coward on 2006年02月22日 22時29分 (#888277)
    もちろん証券会社が中心的な部分で採用したってことで
    注目を集めているんですけども、インメモリって、たと
    えばPure JavaのRDBMSで有名なHSQLDBは、特にメモリー
    モードで起動するとすごい爆速ということで有名だったり
    しますよね。

    いまはHSQLDBだけじゃなく、もとのHypersonicの後継で
    あるH2なんてのもあったりする。
  • IMS (スコア:1, 参考になる)

    by Anonymous Coward on 2006年02月22日 10時56分 (#887954)
    IMSだとMSDBってのもあります。
  • ハードディスクはメモリに比べて激遅いので高負荷なシステムを
    管理している管理者の多くはI/O処理の効率化に頭を悩ませていると思います。

    メモリベースという事を考えると激的な処理能力向上は納得ですが
    停電時のデータ保全は大丈夫?なのか心配になっみたり。
    消えても問題ないデータが入っている場所に使っているのかな?謎々。。。
  • オンメモリDB (スコア:1, 参考になる)

    by Anonymous Coward on 2006年02月22日 19時29分 (#888169)
    オンメモリなDBといえば、富士通BSCも売ってますね。
    これからトレンドになっていったりするのかな?

    富士通BSCのプレスリリース(2005/7/27) [fujitsu.com]
  • by yellow tadpole (7084) on 2006年02月23日 4時38分 (#888409) 日記
    このDTS MCell シリーズ [plathome.co.jp]を使えば、既存のシステムがすぐに使えて楽チンだと思うんだけど。
    停電時のバックアップ時間60秒が短いのなら、こいつの電源専用UPSを入れれば安心なんじゃないかなあ。
    --
    〜◍
  • by Formula (6605) on 2006年02月22日 11時18分 (#887965)
    「東証のシステムの崩壊につながらなければいいのですが…」

    なぜ東証に飛び火するんでしょうか?

    カブドットコムがトラブル見舞われても、東証は問題ないですよね。
    また処理速度があがっても、カブドットコム経由の注文数が増えるわけでもないですよね。

    誤発注に対するフェイルセーフがなされていない、というようなシステムの不備が市場混乱に繋がる例はわかりますが、市場が混乱するのであってシステムが崩壊するわけではないですよね。

    どゆこと?
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...