vederi

În 2017, baza de date MongoDB cauza probleme semnificative de scalabilitate pentru Discord, pe măsură ce popularitatea platformei creștea. După ce au întâmpinat probleme de scalabilitate cu MongoDB, Discord a trecut la o bază de date Cassandra. De atunci, Discord a continuat să crească exponențial, ajungând la peste 140 de milioane de utilizatori în 2021, ceea ce înseamnă că a trebuit să facă actualizări și îmbunătățiri în infrastructura lor de bază de date pentru a ține pasul cu cererea în creștere a utilizatorilor.
2. Problema majoră: Cum să stochezi trilioanele de mesaje existente?
Inițial, Discord a început cu doar 12 noduri Cassandra care stocau miliarde de mesaje între ele. Cu toate acestea, până în 2021, numărul de noduri a crescut la 177, gestionând trilioane de mesaje și creând dificultăți semnificative de întreținere. Sistemul a început să se confrunte cu încetiniri severe, iar echipa de inginerie a Discord avea dificultăți în a menține baza de date operațională în permanență. Era clar că aveau nevoie de o soluție nouă și rapidă.
3. O nouă soluție: sDB (ScyllaDB)

Discord a avut în vedere o altă bază de date încă de acum câțiva ani: sDB, o bază de date NoSQL de înaltă performanță și compatibilă cu Cassandra, scrisă în C++. Una dintre cele mai bune caracteristici ale sDB este eliminarea colectorului de gunoi, deoarece nu este scris în Java, făcându-l o alegere excelentă pentru organizațiile care doresc să evite problemele de performanță cauzate de colectorul de gunoi din Java (Java garbage collector).
4. Implementarea și migrația
Echipa de inginerie a Discord a decis să migreze toate bazele de date la sDB. Acest proces a fost o adevărată provocare, întrucât trebuia să se mute trilioane de date și să se asigure că toate funcționalitățile aplicației rămân intacte. În plus, era necesar să se minimizeze timpul de întrerupere al serviciului pentru utilizatori.
Pentru a facilita migrarea, echipa a început prin a planifica și documenta fiecare etapă a procesului. Acest lucru a implicat analiza structurii actuale a bazei de date și identificarea celor mai bune metode de a migra datele către sDB fără a pierde informații și funcționalitate.
În timpul procesului de migrare, echipa de inginerie a implementat o serie de teste și verificări pentru a se asigura că datele erau corect transferate și că nu existau probleme de compatibilitate între cele două sisteme. Aceste teste au inclus verificări ale integrității datelor, verificarea performanței și teste de încărcare.
De asemenea, echipa a fost atentă să comunice în mod transparent cu utilizatorii în timpul procesului de migrare. Au anunțat planurile de migrare în avans și au ținut utilizatorii la curent cu stadiul migrării și eventualele probleme care au apărut pe parcurs.
După ce migrarea a fost finalizată, echipa de inginerie a monitorizat îndeaproape performanța și stabilitatea sDB, pentru a se asigura că nu există probleme și pentru a remedia rapid orice situație neașteptată.
Migrarea bazei de date la sDB a fost o provocare majoră pentru echipa de inginerie a Discord, dar cu planificare și execuție riguroasă, au reușit să îndeplinească această sarcină cu succes. Acest lucru a dus la o îmbunătățire semnificativă a performanței și stabilității aplicației, în beneficiul a milioane de utilizatori din întreaga lume.
Comentarii
0 comentarii