You are designing the storage architecture for a global multiplayer online game. The solution must store player profiles and dynamic inventories, and also provide access to large game asset files, such as character textures and game replays. The solution must meet the following requirements:
* Player profiles and inventories: Must support sub-10ms write latency for active players in East US, West Europe, and East Asia, and must prevent hot partition bottlenecks when players gather for large in-game events.
* Game asset files: Must be secured using time-constrained, revocable tokens.
* High Availability: The storage of game assets must survive a regional datacenter outage with zero data loss.
Which database and storage configuration should you recommend?
- Use Azure Cosmos DB for NoSQL with multi-region writes enabled across all three regions, partitioning the player container by `playerId`. For game assets, use Azure Blob Storage with Geo-Redundant Storage (GRS) and generate Shared Access Signatures (SAS) associated with a stored access policy.Answer
- BUse Azure Cosmos DB for NoSQL with multi-region writes enabled across all three regions, partitioning the player container by `guildId`. For game assets, use Azure Blob Storage with Geo-Redundant Storage (GRS) and generate Shared Access Signatures (SAS) associated with a stored access policy.
- CUse Azure Cosmos DB for NoSQL with multi-region writes enabled across all three regions, partitioning the player container by `playerId`. For game assets, use Azure Blob Storage with Locally Redundant Storage (LRS) to optimize costs, and generate Shared Access Signatures (SAS) associated with a stored access policy.
- DUse Azure Cosmos DB for NoSQL with multi-region writes enabled across all three regions, partitioning the player container by `playerId`. For game assets, use Azure Blob Storage with Geo-Redundant Storage (GRS) and generate long-lived ad-hoc Shared Access Signatures (SAS) with a lifetime of one year directly on the URI.