2016-03-30 16 views
6

Tôi đang nghĩ về việc sử dụng BoltDB như một backend chính DB và có vài câu hỏi với mã Go tôi; cũng cần ý kiến ​​của bạn về việc sử dụng BoltDB như một DB phụ trợ chính.BoltDB hiệu suất như một DB backend

  1. Tôi đang sử dụng mạng của Go/http và sử dụng boltDb làm biến toàn cục.
  2. Khi chương trình bắt đầu, nó sẽ đọc BoltDB và tập tin được mở cho đến khi chương trình kết thúc.
  3. Khi yêu cầu (http) được gửi đến chương trình, nó sẽ truy cập BoltDB. (HandleFunc)
  4. Tôi không sử dụng bất kỳ kênh nào.

Q1. Câu hỏi quan trọng nhất, là BoltDB có khả năng sản xuất với 1000 kết nối đồng thời không? Q2. Nếu có các truy vấn viết đồng thời, thì BoltDB sẽ tự động xử lý từng câu một?

Cảm ơn bạn rất nhiều. Tôi mới đến Go và BoltDB và tôi tự hỏi nếu tôi đang sử dụng DB phải với đúng cách.

Trả lời

6

A1. Có, chúng tôi sử dụng nó theo cách hơn 1000 kết nối đồng thời.

A2. Có, bolt là thread an toàn, khi bạn gọi db.Update, nó sẽ khóa cơ sở dữ liệu, vì vậy bạn biết rằng dữ liệu của bạn sẽ luôn nhất quán.

Ngoài ra một gợi ý, không bao giờ thực hiện bất kỳ việc nâng hạng nặng nào bên trong bản cập nhật func.

+0

Cảm ơn bạn rất nhiều! – Gon

+1

Bạn có thể muốn thêm biến * bolt.DB vào triển khai http.Handler thay vì biến toàn cục để bạn có thể thử nghiệm nó dễ dàng hơn (và song song). –

+1

Ngoài ra, nó có thể xử lý cao song song đọc đồng thời tuyệt vời nhưng viết sẽ được đăng. Miễn là 1000 yêu cầu của bạn không phải là tất cả viết (hoặc họ đang viết nhỏ), bạn nên được tốt. –

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