Việc bố trí tập tin và cam kết hệ thống CouchDB tính năng tất cả Durable (ACID) tính Isolated Phù hợp nguyên tử. Trên đĩa, CouchDB không bao giờ ghi đè dữ liệu cam kết hoặc các cấu trúc liên quan, đảm bảo các tập tin cơ sở dữ liệu luôn ở trong một trạng thái nhất quán. Đây là một "tai nạn chỉ" thiết kế, nơi các máy chủ CouchDB không đi qua một quá trình đóng cửa, nó chỉ đơn giản là chấm dứt.
Cập nhật tài liệu (thêm, sửa, xóa) là tuần tự, trừ các file nhị nguyên phân mà được viết đồng thời. Cơ sở dữ liệu độc giả không bao giờ bị khóa và không bao giờ phải chờ đợi nhà văn hoặc các độc giả khác. Bất kỳ số lượng khách hàng có thể đọc tài liệu mà không bị khóa hoặc bị gián đoạn bởi các cập nhật đồng thời, thậm chí trên cùng một tài liệu. CouchDB đọc các hoạt động sử dụng một (MVCC) mô hình Multi-bản cập đồng thời kiểm soát nơi mà mỗi khách hàng nhìn thấy một ảnh chụp nhất quán của cơ sở dữ liệu từ đầu đến cuối của các hoạt động đọc.
Các tài liệu được lập chỉ mục trong B-cây bằng tên của họ (docid) và một ID sequence. Mỗi cập nhật cho một trường hợp cơ sở dữ liệu tạo ra một số tuần tự mới. ID trình tự được sử dụng sau này để từng bước tìm ra những thay đổi trong cơ sở dữ liệu. Những chỉ số B-cây được cập nhật đồng thời khi tài liệu được lưu hoặc xóa. Các bản cập nhật chỉ số luôn luôn xảy ra ở phần cuối của tập tin (append chỉ cập nhật).
Tài liệu có lợi thế của dữ liệu được đã được đóng gói thuận tiện cho việc lưu trữ hơn là chia ra trên nhiều bảng và các hàng trong hầu hết các hệ thống cơ sở dữ liệu. Khi tài liệu được cam kết vào đĩa, các lĩnh vực tài liệu và siêu dữ liệu được đóng gói vào bộ đệm, tuần tự một tài liệu sau khi khác (hữu ích về sau cho xây dựng hiệu quả các quan điểm).
Khi tài liệu CouchDB được cập nhật, tất cả các dữ liệu và các chỉ số liên quan được đĩa đỏ mặt và giao dịch cam kết luôn luôn rời khỏi cơ sở dữ liệu trong một trạng thái hoàn toàn phù hợp. Cam kết xảy ra theo hai bước:
Tất cả dữ liệu tài liệu và cập nhật chỉ số liên quan đang đỏ mặt đồng bộ vào đĩa.
Các tiêu đề cơ sở dữ liệu cập nhật được viết bằng hai liên tiếp, khối giống hệt nhau để tạo nên 4k đầu tiên của tập tin, và sau đó đỏ mặt đồng bộ vào đĩa.
Trong sự kiện của một vụ tai nạn hệ điều hành hoặc mất điện trong bước 1, các bản cập nhật phần ửng đỏ chỉ đơn giản là quên khởi động lại. Nếu một sự cố như vậy xảy ra trong bước 2 (phạm header), một bản sao còn sống sót của các tiêu đề giống nhau trước đó sẽ vẫn còn, đảm bảo sự liên lạc của tất cả các dữ liệu cam kết trước đó. Trừ các khu vực tiêu đề, kiểm tra tính nhất quán hoặc sửa chữa-up sau khi một vụ tai nạn hoặc mất điện là không bao giờ cần thiết.
đang được dịch, vui lòng đợi..
