Theo như tôi hiểu, các chỉ mục CouchDB được cập nhật khi xem một truy vấn. Giả sử có nhiều lần đọc hơn viết, không phải là xấu cho việc mở rộng quy mô? Làm thế nào tôi có thể cấu hình CouchDB để cập nhật các chỉ mục viết, hay tốt hơn, trên một lịch trình?Làm thế nào để bạn lên lịch cập nhật chỉ mục trong CouchDB
Trả lời
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
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.
'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
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.
- 1. Làm thế nào để cập nhật lên Ruby 1.8.7
- 2. Làm thế nào để cập nhật lên C++ 11?
- 3. Làm thế nào để bạn chỉ cập nhật gói NuGet với một số ID nhất định?
- 4. cập nhật chỉ mục lucene
- 5. Làm thế nào để bạn đặt thời gian và chỉ thời gian trong lịch trong Java?
- 6. Làm cách nào để cập nhật nhiều mục trong ElasticSearch?
- 7. Tôi làm cách nào để cập nhật lên addEventListener?
- 8. Làm thế nào để bạn thiết lập quyền truy cập thư mục trong NSIS?
- 9. Làm thế nào để lên lịch các luồng Java
- 10. Làm thế nào để cập nhật python 2.6 lên python 2.7 trong ubuntu
- 11. Dừng cập nhật chỉ mục Maven eclipse
- 12. Xamarin.iOS UITableView, làm thế nào để bạn buộc một ô để cập nhật?
- 13. Bạn sử dụng chuỗi làm chỉ mục như thế nào?
- 14. Làm thế nào để cập nhật dữ liệu trong UITableView?
- 15. Làm thế nào để bạn kiểm tra các bản cập nhật trên nhiều bảng trong Oracle?
- 16. Làm thế nào để cập nhật counter_cache khi cập nhật một mô hình?
- 17. Trình xử lý cập nhật tài liệu CouchDB (bản cập nhật tại chỗ)
- 18. Làm thế nào để cập nhật tùy chọn tùy chỉnh của mục đặt hàng trong Magento?
- 19. Làm cách nào để cập nhật mục nhập SQLAlchemy?
- 20. Làm thế nào để bạn truy cập một mục ng-lặp lại trong phạm vi của chỉ thị?
- 21. Làm cách nào để giữ lịch sử cập nhật bản ghi trong MySQL?
- 22. Làm thế nào tôi có thể cập nhật lên jQuery 1.7+ bằng Rails 3?
- 23. Làm thế nào để cập nhật biểu đồ trong androidplot
- 24. Làm thế nào để cập nhật Mercurial client trong CentOS6?
- 25. Làm thế nào để chỉnh sửa quan điểm của bạn trong CouchDB Futon?
- 26. Làm thế nào để bạn truy cập ARGV trong Mathematica?
- 27. làm thế nào để hoàn tác cập nhật git submodule
- 28. Làm thế nào để bạn nhận được thông báo về các cập nhật của kho lưu trữ của bạn?
- 29. Làm thế nào để cập nhật Tcl/Tk bằng Python?
- 30. CouchDB cập nhật đẩy thời gian thực Ajax
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? –
@ThomasFankhauser: sharding?xem BigCouch – OrangeDog
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