Hi,
We've been working a project for a while. We are using MongoDB as a primary database for our project. We've been searching solution for logging for a while. For that purpose, we've found Cassandra. Befure using Cassandra, we've to know answers for some questions.
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).
What We Need
As I mentioned it above, we are currently using MongoDB as a primary database but we do not think MongoDB fits our use purpose for logging.
- 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 Cassandra work well for that purpose?
- Since we are planning to have millions of player/user, we need to store a lot of logs. Is there any limitation for that?
- 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 add more storage dedicated servers(nodes)?
Example Schemes
(It's just an example to show you what kind of things we're planning to log.)
Scheme 1
timestamp: (Millisecond) user-id: (UUID) product-id: 1 amount: 5 price: 1500 seller: (UUID)
Scheme 2
timestamp: (Millisecond) user-id: (UUID) to: (UUID) channel: message_channel_1 message: "It's a test message for logging. I can see this message whenever I want
Feel free to ask me anything. Thanks in advance!