Luồng đồng bộ
Đồng bộ là một cơ chế khá phức tạp trong OpenNotas. Có thể tóm tắt đơn giản lại trong sơ đồ sau:
actionObject
là một đối tượng lưu lại tất cả hành động để dẫn tới quá trình đồng bộ, ví dụ như hành vi thêm một thư mục, đổi tên thư mục, thêm ghi chú, sửa, xóa ghi chú... Tóm lại là tất cả hành động cần thiết để đồng bộ dữ liệu.
Ví dụ đơn giản về quá trình đồng bộ dữ liệu khi thêm một thư mục:
- Người dùng tạo một thư mục
- Một sự kiện thêm thư mục được thêm vào
actionObject
- Khi đến thời điểm đồng bộ kích hoạt, một tiến trình đồng bộ được khởi tạo:
- Đầu tiên pull dữ liệu mới từ máy chủ về và lưu vào cơ sở dữ liệu.
- Nếu d ữ liệu từ máy chủ xung đột với dữ liệu máy khách, tiến hành giải quyết xung đột bằng cách merge hai dữ liệu này lại với nhau, đồng thời đánh dấu vào
actionObject
. - Push dữ liệu lần lượt lên máy chủ đồng bộ bằng cách đọc theo thứ tự dữ liệu có trong
actionObject
.
- Kết thúc một vòng đồng bộ.