Đang lật trang.
Đang mở chương tiếp theo…
Này… tạo phong cách đọc riêng nhé.
Phông chữ và chủ đề nằm trong Giao diện. Hãy chọn điều dễ chịu cho mắt.
Đang mở chương tiếp theo…
A replicated data structure designed so concurrent changes can converge under specified merge or delivery rules, without coordinating every update.
Đang kiểm tra khả năng đọc thành tiếng của trình duyệt…
Bài đọc này hiện có bằng tiếng Anh. Giao diện sử dụng ngôn ngữ bạn đã chọn.
Đọc bản gốc tiếng Anh →The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski. Development was initially motivated by collaborative text editing and mobile computing. CRDTs have also been used in online chat systems, online gambling, and in the SoundCloud audio distribution platform. The NoSQL distributed databases Redis, Riak and Cosmos DB have CRDT data types.
Concurrent updates to multiple replicas of the same data, without coordination between the computers hosting the replicas, can result in inconsistencies between the replicas, which in the general case may not be resolvable. Restoring consistency and data integrity when there are conflicts between updates may require some or all of the updates to be entirely or partially dropped.
Accordingly, much of distributed computing focuses on the problem of how to prevent concurrent updates to replicated data. But another possible approach is optimistic replication, where all concurrent updates are allowed to go through, with inconsistencies possibly created, and the results are merged or "resolved" later. In this approach, consistency between the replicas is eventually re-established via "merges" of differing replicas.
While optimistic replication might not work in the general case, there is a significant and practically useful class of data structures, CRDTs, where it does work — where it is always possible to merge or resolve concurrent updates on different replicas of the data structure without conflicts. This makes CRDTs ideal for optimistic replication.
As an example, a one-way boolean event flag is a trivial CRDT: one bit, with a value of true or false. True means some particular event has occurred at least once. False means the event has not occurred. Once set to true, the flag cannot be set back to false (an event having occurred cannot un-occur). The resolution method is "true wins": when merging a replica where the flag is true (that replica has observed the event), and another one where the flag is false (that replica hasn't observed the event), the resolved result is true — the event has been observed.
There are two approaches to CRDTs, both of which can provide strong eventual consistency: state-based CRDTs and operation-based CRDTs.
Được chọn lọc và định dạng lại từ Conflict-free replicated data type, do các cộng tác viên biên soạn, theo CC BY-SA 4.0. Bản sửa đổi 1375433297. Các phần và định dạng đã được rút gọn; bản sửa đổi được liên kết cung cấp bối cảnh đầy đủ và lịch sử đóng góp. Nội dung tham khảo này giữ nguyên giấy phép. Các liên kết trích dẫn bổ sung được nhập từ bản sửa đổi đó và chưa được kiểm tra độc lập tại đây.