2012-10-19 32 views
13

Trello lưu trữ dữ liệu (thẻ) của họ trong MongoDB như thế nào?Làm thế nào để Trello lưu trữ dữ liệu trong MongoDB? (Bộ sưu tập trên mỗi bảng?)

Tôi đọc (How does Trello show history so quickly?) rằng bộ sưu tập Tác vụ của họ là bộ sưu tập lớn nhất. Vì vậy, tôi giả định rằng họ không lưu trữ tất cả các thẻ trong một bộ sưu tập khổng lồ.

Giải pháp logic duy nhất khác có vẻ là tập hợp trên mỗi bảng hoặc mỗi người dùng. Nhưng họ có rất nhiều người dùng và tôi đọc (http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections) rằng có giới hạn về số lượng bộ sưu tập và một số người khuyên không nên sử dụng nhiều bộ sưu tập.

Tôi hy vọng một người nào đó từ nhóm Trello sẽ trả lời câu hỏi này và tôi hy vọng sẽ có được một số ý tưởng về giải quyết loại vấn đề này cũng từ cộng đồng chung.

+2

Tại sao họ không lưu trữ tất cả trong một bộ sưu tập và phân phát những gì họ truy vấn theo cách này, bạn sẽ chỉ truy vấn một máy tính một cách hiệu quả nhanh chóng như một bộ sưu tập nhỏ. dữ liệu đến các vùng khác cũng như vậy thời gian phản hồi là nhất quán và trước khi bạn nhận được một bộ sưu tập hoàn toàn có thể mở rộng thành hàng tỷ hàng. Bạn cũng phải nhớ khóa là cấp db vì vậy nếu họ sẽ sử dụng bội số của một cái gì đó nó sẽ làm cho snese sử dụng nhiều DBs nếu ở tất cả. – Sammaye

+0

@Sammaye Tôi không hiểu phần "phân đoạn về những gì họ truy vấn". Bạn có thể xem tất cả các thẻ trong một bảng, tìm kiếm thông qua tất cả các bảng bằng tên thẻ, ... Tôi hiểu nguyên tắc cơ bản của sharding, nhưng tôi không hiểu làm thế nào người ta có thể thực hiện những gì bạn đang nói. Bạn có thể giải thích thêm một chút không. – Ben

+4

Ok Tôi chỉ đang sử dụng trello trong 10 phút và tôi đã thấy rằng nếu tôi đang thiết kế trang web này, tôi sẽ có ba bộ sưu tập: 'user',' board', 'card'. Tôi sẽ phân phát 'board_id' cho' board' từ một hội đồng quản trị cần được nhiều người dùng truy cập. Bằng cách này, khi bạn truy vấn người dùng (được phân phối trên '{_id, username, email}') và sau đó nhận tất cả các bảng của họ có thể mở rộng. Danh sách của một bảng sẽ được nhúng trong hàng của bảng chứ không phải thẻ. Các thẻ có lẽ sẽ được phân phát trên board_id và dấu thời gian và có thể user_id quá. Đó là cái nhìn đầu tiên của tôi 10 phút – Sammaye

Trả lời

13

Trello lưu trữ tất cả các thẻ trong một bộ sưu tập. Bộ sưu tập được phân phát trên id của bảng.

+0

Bạn có biết tại thời điểm đó không sẽ sharding là cần thiết? Tôi tương đối mới với MongoDB và đang tạo một ứng dụng có thể cần phải được thu nhỏ lại. – MadPhysicist

Các vấn đề liên quan