Logging as TSDB for long time data

Hi,

We’ve been working a project for a while. We are using MongoDB as a primary database for our project. We’ve searched another solution for logs but we’ve decided to use MongoDB for logging as well.

About Project
It’s an online game project which aims to have 25 million players in next 5 years. The type of the game is MMORPG(Massive Multiplayer Online Role-Playing Game). Since it’s a MMORPG game, we’re looking for database solutions for a while.

What We Need
As I mention it above, we are currently using MongoDB as a primary database and we’re really happy to use MongoDB for our project. Because of we liked MongoDB, we’d like to use it for loggins as well. For that purpose, we need to ask some questions;

  1. We’re planning to log almost everything except application logs(big text files, console logs) and metrics(CPU usage, memory, dedicated server status etc.). We also collect logs with timestamps, basically TSD(Time Series Data). Is MongoDB work well for that purpose?
  2. Since we are planning to have millions of player/user, we need to store a lot of logs. Is there any limitation for that? (Database, collection size etc.)
  3. We love to analyze and see metrics from past. Therefore, we must store logs as long as possible, we don’t like retentions or TTL for logs at all. After logs size grow up, can we add more memory(SSD, HDD) to database to handle more logs over time? Or can we move our logs database to HDD since we don’t need to get them frequently, we just want to store and use it when we need.

Example Schemes (It’s just an example to show you what kind of things we’re planning to log.)

Scheme 1

Collection: transcation

timestamp: (Millisecond)
user-id: (UUID)
product-id: 1
amount: 5
price: 1500
seller: (UUID)

Scheme 2

Collection: action

timestamp: (Millisecond)
user-id: (UUID)
category: FRIEND
action: REQUEST
friend-id: (UUID)

Scheme 3

Collection: action

timestamp: (Millisecond)
user-id: (UUID)
category: FRIEND
action: ADD
friend-id: (UUID)

Feel free to ask me anything. Thanks in advance!