nosqlオプションが典型的なMMORPGのrdbmsの代わりに、またはrdbmsと組み合わせて、どのような利点を持っているのか疑問に思っていました。特に、nosqlの下でデータの整合性がどのように保持されるかについては興味があります。MMORPGのNoSqlオプション
シナリオ1:のは、同時にプレイヤーAとBの攻撃プレイヤーCを言ってみましょう
は、私は、サーバーのロジックが動作する方法についての一種の混乱しているいくつかの例をあげます。プレイヤーC.通常の殺し方のプレーヤー、1は次のようにこのAttackPlayerRequestを扱う可能性があるためplayer_stats.kill_countが更新されます。
は { attacker.health = newAttackerHealth
defender.health = newDefenderHealth
トランザクションを開始します場合defender.Health == 0 {attacker.stats.kills + = 1 }}
シナリオ2:プレーヤーA SEアイテムをNPCベンダーに渡し、すぐに同じアイテムを在庫から地面に落とそうとします。 (たとえUIがこれを許可していなくても、イベントをワイヤに置くだけです)。
このリストは、明らかにすべてのプレイヤーとプレイヤーのプレイヤーと世界の相互作用に影響します。情報の最後の1つは、他のプレイヤーがゲームで簡単なことをすることを妨げるような、特に長い時間のリクエストを望まないので、サーバーがスレッド化されていることです。
私の大きな質問はここにあると思いますが、私はこの些細な問題では何かを誤解していますか?そうでない場合、これはnosqlのオプションが解決しようとしているものの範囲を超えていますか?典型的なMMOの下で、nosqlオプションを挿入してサーバのパフォーマンスを向上させる場所はどこですか?
あなたの質問はゲーム開発に関連しているので、http://gamedev.stackexchange.com/でより良い回答が得られるかもしれません。 – HoLyVieR
ほとんどのNoSQLシステムはトランザクションをサポートしていません。あなたはそれらを必要としますか? – TTT
データの完全性のための機能を持つNoSQLシステムはないと思います。これは、アプリケーションで行う必要があるものです。もちろん、NoSQLグループは非常に多様なグループなので、おそらくこの一般ルールの例外があります。 – TTT