title: NoSql option for MMORPGs
body: <p>I was wondering what sort of benefits a nosql option might have either in lieu of, or in conjunction with a rdbms for a typical MMORPG.  In particular, I'm curious as to how data integrity is preserved under nosql.</p>
  
  <p>I'll give a few examples where I'm kind of confused as to how server logic would operate:</p>
  
  <p>Scenario 1: Let's say player A and B attack player C at the same time.  A player_stats.kill_count is updated for whichever player kills player C.  Normally, one might handle this AttackPlayerRequest in the following way:</p>
  
  <p>Begin Transaction
  {
    attacker.health = newAttackerHealth</p>
  
  <p>defender.health = newDefenderHealth</p>
  
  <p>if defender.Health == 0
    {
      attacker.stats.kills += 1
    }
  }</p>
  
  <p>Scenario 2: Player A sells an item to an NPC vendor, and quickly attempts to drop the same item from their inventory to the ground.  (Even if you're UI disallows this, they can certainly just put the events on the wire).</p>
  
  <p>This list obviously goes on and effects just about every player-player player-world interaction.  One last piece of information is that the server is threaded as we don't want any particularly lengthy request to block other players from being able to do simple things in the game.</p>
  
  <p>I guess my big question here is, am I misunderstanding something about nosql wherein this a trivial problem?  If not, is this beyond the domain of what nosql options are meant to solve?  Under a typical MMO, where might one inject nosql options to increase server performance?</p>