• ベストアンサー

超大規模システムはどのようにデータを管理?

電子マネーや家電量販店などのポイントカードはインターネットなどを通してデータがサーバで管理されていると思うのですが、1日何万何千という人が利用しその都度データが書き換えられていると思うのですが、いったいそのデータはどのように管理されているのでしょうか? たとえば単にMySQLなどのデータベース管理であれば、データ問い合わせ数があまりにも多すぎるためデータベースが壊れてしまうと思うのですが、独自時のデータベースを利用しているのでしょうか? どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keni0709
  • ベストアンサー率100% (1/1)
回答No.7

大量業務を処理したくらいでは普通MySQL自体は壊れないと思いますが、処理が間にあわなくなる/止まるという現象はありえると思います。 大規模システムの設計のポイントは処理集中部分(=ボトルネック)ができるだけ生じないようにすることです。そのためには、まずは処理が分散されるように設計を試みます。処理の分散とは具体的には「処理及びデータ格納場所(ディスクやサーバ)を分散」「処理時刻を分散(業務的にorシステム的に)」ということです。たとえば普及しているカード型の電子マネーの場合は店舗の装置とカードの間で一次的な処理は完結し、残りの処理はセンタでまとめて別の時刻に整然と処理されるように設計されているので、みんなが一度に買い物をしてもセンタ側では問題は生じません。また、銀行システムや電話料金システムは口座や電話番号をグループ化して複数のディスクやサーバに分けて、処理とデータ格納場所を分散してボトルネックが発生しないようにしています。 しかし、どうしてもボトルネックが生じてしまう業務もあります。例えば特定の株式に注文が殺到するとか、特定の列車の予約が受け付け開始直後に殺到するとかです。こういう場合は、「順番に並んでもらって処理を受け付ける」という処理をコンピュータの内部に作りこむと共に、中核処理部分はカリカリにチューニングした特殊なプログラムを作りこんだりします。 というわけで、大規模システムではシステム全体でバランスよくボトルネックを回避するしくみにします。データベースソフトに全てを丸投げするような設計にはしません。こういう設計にすれば、MySQLでも十分超大規模システムに使うことは可能です。 (ただ、それでも商用DBを使うのは、それはそれでメリットがいろいろあるからなんですが、今回の質問とは関係ないし話が長くなるので省略。)

その他の回答 (6)

  • nick9090
  • ベストアンサー率26% (102/378)
回答No.6

「スケールアウト データベース」という語句で検索してみるといいでしょう。

noname#208124
noname#208124
回答No.5

原本-地域-店舗-レジ などのようにそれぞれに階層構造のデータベースを持たせているシステムもあります 書き換えは下階層から順番に非同期で行います 参照はしたから順番にデータが有る所まで見に行き下にコピーします

noname#182251
noname#182251
回答No.4

ポイントカードぐらいだと、大規模とも云えないでしょうが。まさに「超大規模」に値するもにに関しては、下記URLなどが取り敢えず面白いです http://internet.watch.impress.co.jp/cda/event/2004/11/16/5430.html

  • saru_
  • ベストアンサー率39% (38/97)
回答No.3

MySQLなどのフリーのものではなく製品版のDBMS(DataBase Management System)を利用しているところが大半だと思います。代表的なものとしては、Oracle, SQLサーバー, DB2等が挙げられるでしょう。 独自のデータベースを利用しているところは、絶対にないと断言することはできませんが、電子マネーや家電量販店のシステムという意味では、限りなく可能性は低いでしょう。Googleなんかは超々大規模で、かつ独自のデータベースを使ってそうですが、かなり特殊な部類と言えるでしょう。

  • localica
  • ベストアンサー率52% (202/385)
回答No.2

トランザクションとかレプリケーションという言葉を調べると幸せになれるかもしれません。

noname#77845
noname#77845
回答No.1

顧客が何万人いたとしても、「同時」にアクセスする人数は何百人程度でしょう。(レジの数やポイント発行機の数は無限ではないので、その数が最大同時アクセス数でしょう。) しかも、本当の意味での「同時」にアクセスする可能性はかなり低いと思われます。(みんなで一斉にレジにいっても、対応する店員の動作が違うので、同時にはアクセスしていません。偶然いっしょになることはあるかもしれませんが、かなり数は少ないでしょうね。)