Skip to content

Commit

Permalink
Added some more info to discord stores trillions of messages
Browse files Browse the repository at this point in the history
  • Loading branch information
lahin31 committed Dec 11, 2023
1 parent b077c66 commit 86c6558
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ Discord প্রথম NoSQL MongoDB ডাটাবেস দিয়ে যা

Discord team ভেবেছিলো Database যত বড় হবে Cassendra ভালোভাবে মেইনটেইন করতে পারবে। কিন্তু দেখা গেল ডাটাবেস যত বড় হচ্ছে নতুন নতুন performance issue তৈরী হচ্ছে।

(চলমান)
🔗 [**আরও পড়ুন: কিভাবে Discord Trillions of Messages স্টোর করেছে?**](./sections/discord-stores-trillions-of-messages/README.md)

## Section 37: Resources

Expand Down
24 changes: 24 additions & 0 deletions sections/discord-stores-trillions-of-messages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Cassendra issue

Discord ২০১৭ সালে ১২ Cassandra নোড এর মধ্যে billions of messages স্টোরে করে রেখেছিলো। ২০২২ সালে নোডের সংখ্যা দাঁড়ায় ১৭৭।

<p align="center">
<img src="./images/cassendra-nodes.png" alt="cassendra-nodes">
</p>

তখন Latency খুব বেশি বেড়ে গেলো সাথে Operation maintain করাও খুব costly হয়ে গেলো।

```cql
CREATE TABLE messages (
channel_id bigint,
bucket int,
message_id bigint,
author_id bigint,
content text,
PRIMARY KEY ((channel_id, bucket), message_id)
) WITH CLUSTERING ORDER BY (message_id DESC);
```

উপরের Cassendra Query Language দিয়ে তৈরী একটি messages টেবিল, যেখানে প্রতিটি ID এর জন্য Snowflake ব্যবহার করা হয়েছে, মূলত chronologically sorting করার জন্য(যা UUID একটি limitation)। Channel ID এবং Bucket দিয়ে discord team, messages table কে পার্টিশন করেছিল। যার মানে দাঁড়ায় একটি channel এর সব মেসেজগুলোকে একসাথে স্টোরে করা হয়। তারপর ৩টি নোডে replicate করা হয়।

(চলমান)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 86c6558

Please sign in to comment.