2012-10-19 14 views
13

In che modo Trello memorizza i dati (schede) in MongoDB?In che modo Trello memorizza i dati in MongoDB? (Collezione per scheda?)

Ho letto (How does Trello show history so quickly?) che la raccolta di Azioni è la più grande. Quindi presumo che non memorizzino tutte le carte in una gigantesca collezione.

L'unica altra soluzione logica sembra una raccolta per scheda o per utente. Ma hanno un sacco di utenti e ho letto (http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections) che c'è un limite al numero di collezioni e alcuni sconsigliano l'uso di molte collezioni.

Spero che qualcuno del team Trello risponda a questo E spero di avere qualche idea su come risolvere questo tipo di problema anche dalla comunità generale.

+2

Perché non lo memorizzano tutto in una raccolta e fanno lo shard su ciò che interrogano in questo modo in modo efficace interrogano un solo computer alla volta rendendo la query più veloce di una piccola raccolta, aggiungono che probabilmente eseguono il ping dati anche ad altre regioni in modo che i tempi di risposta siano coerenti e in poco tempo hai ottenuto una raccolta completamente scalabile in miliardi di righe. Devi anche ricordare che il blocco è di livello db, quindi se usassero multipli di qualcosa, renderebbe snese l'uso di più di DB, se non del tutto. – Sammaye

+0

@Sammaye Non capisco la parte "shard on what they query". Puoi vedere tutte le carte in una bacheca, cercare in tutte le schede per nome della carta, ... Capisco il principio di base della sharding, ma non capisco come si possa realizzare quello che stai dicendo. Potresti spiegarcelo un po 'di più. – Ben

+4

Ok, ho usato Trello da solo 10 minuti e già vedo che se stavo progettando questo sito avrei tre raccolte: 'user',' board', 'card'. Analizzerei 'board_id' per' board' dato che una scheda deve essere accessibile a molti utenti. In questo modo quando esegui una query per l'utente (che è "shar" su "{_id, username, email}") e poi ottieni tutte le loro schede che scalerebbero. Gli elenchi di una scheda verrebbero inseriti nella riga delle schede ma non nelle carte. Probabilmente le carte sarebbero state tagliate su board_id e timestamp e forse user_id. Questa è la mia prima occhiata di 10 minuti – Sammaye

risposta

13

Trello memorizza tutte le carte in una raccolta. La collezione è tagliata sull'id della scheda della carta.

+0

Sai a che punto sarebbe necessario sharding? Sono relativamente nuovo a MongoDB e sto creando un'app che potrebbe dover essere ridimensionata. – MadPhysicist

Problemi correlati