2008-09-23 22 views

Trả lời

26

CouchDB thực hiện tạo lại chế độ xem khi cập nhật, nhưng chỉ trên những gì đã thay đổi kể từ lần truy cập đọc cuối cùng vào chế độ xem. Giả sử khối lượng đọc của bạn lớn hơn đáng kể khối lượng ghi của bạn, điều này không phải là một vấn đề.

Khi bạn thay đổi số lượng lớn tài liệu cùng một lúc, điều này có thể dẫn đến khả năng yêu cầu đọc đầu tiên mất một lượng thời gian đáng chú ý. Để giảm bớt một vài khả năng khác nhau đã được đề xuất. Hầu hết dựa vào việc đăng ký với các thông báo cập nhật của CouchDB và kích hoạt tự động đọc.

Một tập lệnh mẫu để thực hiện chính xác có sẵn trên wiki CouchDB tại [1].

[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate

+0

Có cách nào để truyền bá tính chỉ số trên nhiều máy tính hoặc là nó thực hiện tự động khi một bản sao được thiết lập? –

+0

@ThomasFankhauser: sharding?xem BigCouch – OrangeDog

+0

Tôi đã tạo một tiện ích nhỏ để trợ giúp với nhiệm vụ làm mới tất cả các chế độ xem tự động: [couchdb-utils] (https://github.com/awilliams/couchdb-utils) – acw

5

Bạn không thể và cũng có thể, tại sao bạn muốn điều đó?

Hãy suy nghĩ về nó như thế:

  • Khi bạn nhập dữ liệu vào MySQL bạn có thể biến các indizes vì ​​nó đắt hơn để cập nhật các chỉ số cho mỗi dòng bạn chèn, hơn là để cập nhật các chỉ số cho 100 viết (hoặc tuy nhiên nhiều hàng bạn nhập) trong một lần chạy.
  • Đây là lý do tại sao CouchDB cập nhật chỉ mục đọc vì nó ít tốn kém hơn để tích hợp 100 thay đổi đó cùng một lúc, sau đó mỗi thay đổi khi được viết.

Đây là một trong những ưu điểm của CouchDB! :) Tôi không nói rằng đây là một tính năng chỉ CouchDB, nhưng nó chỉ là thông minh để làm điều này trên đọc.

Một điều bạn có thể làm là đọc với cập nhật = sai, đó là một đọc bẩn và có thể không trả lại những gì bạn mong đợi. Nếu bạn luôn làm điều này, bạn có thể lên lịch đọc "thông thường" thông qua cronjob và cập nhật chỉ mục của bạn với điều đó. Tôi chỉ không nghĩ rằng nó có ý nghĩa.

+0

'stale = true' và' cũ = update_after' là các tham số hiện tại cho các lần đọc dơ bẩn. Sau này cũng cập nhật chỉ mục xem sau khi trở về. – OrangeDog

9

a) "Scaling" là một thuật ngữ quá tải. Những gì "loại" của quy mô bạn đang đề cập đến? (Dù bằng cách nào, tôi không thể thấy nó ảnh hưởng tiêu cực đến bạn như thế nào).

b) Cập nhật về ghi: Chỉ cần truy vấn chế độ xem của bạn sau khi viết. Lưu ý rằng việc thêm một loạt dữ liệu vào chỉ mục sẽ thân thiện hơn (không cụ thể cho CouchDB). Vì vậy, bạn có thể muốn kích hoạt chế độ xem của bạn mỗi N ghi.

c) Đã lên lịch: Thiết lập cronjob truy vấn chế độ xem của bạn sau mỗi phút M.

d) Đợi CouchDB phát triển để cung cấp cho bạn cơ sở hạ tầng cho phép bạn thiết lập điều này với thông số cấu hình.

e) (TÙY CHỌN TỐT NHẤT). Có được bàn tay của bạn bẩn và giúp chúng tôi ra đánh bóng CouchDB! Mọi đóng góp đều được đánh giá cao.

d) RTFM (blink :)

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