Tôi tò mò về cách tính năng stale=update_after
của API xem CouchDB hoạt động.Hiệu năng của CouchDB's stale = update_after là gì?
tôi có thể thấy here rằng nó sẽ trả về kết quả cũ và sau đó cập nhật xem:
Nếu cũ = ok được thiết lập, CouchDB sẽ không làm mới quan điểm ngay cả khi nó là cũ, lợi ích là một một được cải thiện độ trễ truy vấn. Nếu stale = update_after được thiết lập, CouchDB sẽ cập nhật khung nhìn sau khi kết quả cũ được trả về. update_after được thêm vào trong phiên bản 1.1.0.
Giả sử rằng tôi đã chèn một số lượng lớn tài liệu - đủ để yêu cầu vài phút để cập nhật chỉ mục chế độ xem - và sau đó tôi truy vấn chế độ xem hai lần liên tiếp nhanh chóng với stale=update_after
. Truy vấn đầu tiên sẽ trở lại rất nhanh; đó là toàn bộ điểm của update_after
.
Câu hỏi của tôi là, truy vấn thứ 2 cũng sẽ trả lại kết quả cũ nhanh chóng hay nó sẽ chờ xem để hoàn tất cập nhật?
Bạn có thể hòa giải yêu cầu của bạn với tuyên bố này: "Điều này cập nhật các chỉ số sau khi kết quả được trả về, nhưng cũng có thể làm chậm các truy vấn được thực hiện bởi các khách hàng khác đến khi cập nhật điểm đã được hoàn thành" (http://blog.safaribooksonline.com/2012/03/14/improving-couchdb-performance/) –
Xin lỗi vì trả lời muộn: stale = update_after ALWAYS trả về ngay lập tức. Nếu "các khách hàng khác" không sử dụng cũ = update_after, truy vấn của họ bị trì hoãn. Nhưng điều này là một chút sai lầm, bởi vì các truy vấn của họ sẽ bị trì hoãn anyway. –
cảm ơn bạn đã phản hồi lại điều này một lần nữa Bernhard. Biết điều này sẽ trở lại luôn luôn giúp tôi rất nhiều. – Christian