Nhảy tới nội dung

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:

Luồng đồng bộ

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ộ.