MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

GridFS có đủ nhanh và đáng tin cậy để sản xuất không?

Tôi sử dụng gridfs tại nơi làm việc trên một trong những máy chủ của chúng tôi, một phần của trang web so sánh giá với số liệu thống kê về lưu lượng truy cập đáng nể (khoảng 25 nghìn khách truy cập mỗi ngày). Máy chủ không có nhiều ram, 2gigs và thậm chí là cpu không thực sự nhanh (Core 2 duo 1.8Ghz) nhưng máy chủ có nhiều dung lượng lưu trữ:10Tb (sata) trong cấu hình đột kích 0. Công việc mà máy chủ đang thực hiện rất đơn giản:

Mỗi sản phẩm trên công cụ so sánh giá của chúng tôi đều có một hình ảnh (có khoảng 10 triệu sản phẩm theo db sản phẩm của chúng tôi) và công việc của máy chủ là tải hình ảnh xuống, thay đổi kích thước, lưu trữ hình ảnh trên gridfs và cung cấp cho trình duyệt của khách truy cập. .. nếu nó không có trong lưới ... hoặc ... gửi nó đến trình duyệt của khách truy cập nếu nó đã được lưu trong lưới. Vì vậy, đây có thể được gọi là 'lược đồ cdn truyền thống'.

Chúng tôi đã lưu trữ và xử lý 4 triệu hình ảnh trên máy chủ này kể từ khi nó hoạt động. Việc thay đổi kích thước và lưu trữ nội dung được thực hiện bằng một tập lệnh php đơn giản ... nhưng chắc chắn, tập lệnh python hoặc thứ gì đó như java có thể nhanh hơn.

Kích thước dữ liệu hiện tại:11,23g

Kích thước lưu trữ hiện tại:12,5g

Chỉ số:5

Kích thước chỉ số:849,65m

Về độ tin cậy:Điều này rất đáng tin cậy. Máy chủ không tải, kích thước chỉ mục ổn, truy vấn nhanh

Về tốc độ:Chắc chắn, nó không nhanh bằng lưu trữ tệp cục bộ, có thể chậm hơn 10%, nhưng đủ nhanh để sử dụng trong thời gian thực ngay cả khi hình ảnh cần được xử lý, điều này phụ thuộc rất nhiều vào php trong trường hợp của chúng tôi. Thời gian bảo trì và phát triển cũng đã được giảm bớt:việc xóa một hoặc nhiều hình ảnh trở nên quá đơn giản:chỉ cần truy vấn db bằng một lệnh xóa đơn giản. Một điều thú vị khác:khi chúng tôi khởi động lại máy chủ cũ của mình, với bộ lưu trữ tệp cục bộ (hàng triệu tệp trong hàng nghìn thư mục), đôi khi nó bị treo hàng giờ khiến hệ thống thực hiện kiểm tra tính toàn vẹn của tệp (việc này thực sự mất hàng giờ đồng hồ ...). Chúng tôi không gặp vấn đề này nữa với gridfs, hình ảnh của chúng tôi hiện được lưu trữ trong các khối mongodb lớn (tệp 2gb)

Vì vậy ... theo suy nghĩ của tôi ... Vâng, gridfs đủ nhanh và đáng tin cậy để được sử dụng cho sản xuất.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để thực hiện addToSet bằng cách sử dụng trình điều khiển chính thức của Go?

  2. Lưu trữ ngày trong MongoDB mà không cần xem xét múi giờ

  3. Cách kết nối mongodb từ xa với pymongo

  4. Chỉ mục MongoDB trên các loại khác nhau

  5. Hướng dẫn cấu hình bộ cân bằng tải trong cụm phân chia MongoDB