3

今後の大規模なオンライン ゲームの情報を収集しています。私は MEGA MASSIVE ファームのようなゲーム (数百万 dau) の経験があり、SQL データベースは優れたソリューションでした。また、NoSQL db が使用された大規模なオンライン ゲームでも作業しましたが、この特定の db (Mongo) は最適ではありませんでした。多数の接続と多数の同時書き込みが行われている場合は問題です。

最新の大規模オンライン ゲームに関する事実、ベンチマーク、プレゼンテーション、およびバックエンド インフラストラクチャ、特にデータベースに関する技術的な詳細を探しています。

たとえば、私は次のことに興味があります。

  • 何千もの接続を管理できますか? 一部の外部ツールが役立つ場合があります (postgres の pgbouncer など)。
  • 何万もの同時読み取り/書き込みを管理できますか?
  • ディスク領域の断片化についてはどうですか? データベースを停止せずに最適化できますか?
  • スマート レプリケーションについてはどうでしょうか。マスターに障害が発生した場合、レプリカから一部のデータが欠落していることがわかりますか? スレーブをマスターに安全に伝搬し、欠落しているデータを正確に把握して適切に動作させることはできますか?
  • 優雅に失敗できますか?(例のpostgresのように)
  • 生産での使用からの良いレビュー
4

2 に答える 2

0

NoSQLを検討しましたか?

NoSQLデータベースシステムは、多くの場合、取得および追加操作用に高度に最適化されており、レコードストレージ以外の機能(キー値ストアなど)をほとんど提供していません。完全なSQLシステムと比較して実行時の柔軟性が低下していることは、特定のデータモデルのスケーラビリティとパフォーマンスが大幅に向上することで補われます。

つまり、NoSQLデータベース管理システムは、データの性質上リレーショナルモデルを必要としない場合に、大量のデータを処理するときに役立ちます。データは構造化できますが、要素間の関係ではなく、大量のデータを格納および取得する機能が本当に重要な場合は、NoSQLが使用されます。使用例としては、数百万のキーと値のペアを1つまたはいくつかの連想配列に格納したり、数百万のデータレコードを格納したりする場合があります。この組織は、増え続ける要素のリスト(Twitterの投稿や大規模なユーザーグループからのインターネットサーバーログなど)の統計的またはリアルタイムの分析に特に役立ちます。

レプリケーションサポートが組み込まれているCrouchDBなどの高レベルのNoSQLソリューションがあります。

于 2013-01-06T21:39:12.407 に答える
0

ハード クラッシュは非常にまれであり、ハード クラッシュが発生しても、一部の情報が失われるという悲劇にはならないという前提から始めてください。

データベースの使用は、ゲームの日常的な管理と強く結び付けるべきではありません。定期的なイベントは、より一時的なストレージを通じて管理する必要があります。一部の二次プロセスでは、一時的なイベントを整理して、最終的にデータベースに保存する必要があります。

極端に言えば、セッションごとに文字ごとに 1 回のデータベース読み取りと 1 回のデータベース書き込みしかないと想像できます。

于 2013-01-06T21:24:29.457 に答える