Đồng bộ dữ liệu người dùng lên đám mây không chỉ là tải lên và tải xuống. Nó phải bảo vệ nội dung riêng tư khi truyền, giữ chi phí lưu trữ thấp, tuần tự hóa việc ghi từ nhiều thiết bị, hiểu các dạng dữ liệu khác nhau, yêu cầu xác nhận trước thao tác xóa nguy hiểm và giữ đường quay lại khi một quyết định hóa ra sai.
Orkas coi đồng bộ đám mây là một ranh giới sản phẩm, không phải tiện ích chạy nền. Hội thoại, tác tử, kỹ năng, trạng thái tác vụ, tệp tri thức và cài đặt đều cần di chuyển giữa các thiết bị trong khi vẫn giữ trách nhiệm rõ ràng: thiết bị chuẩn bị nội dung, kho lưu trữ đối tượng giữ các byte và máy chủ quản lý chỉ mục chuẩn có thẩm quyền.
Khung dưới đây là cách chúng tôi suy xét về hệ thống: luồng nội dung được mã hóa, lưu trữ định địa chỉ theo nội dung, khóa đồng bộ cấp tài khoản, chốt ghi do máy chủ quản lý, quy tắc đồng bộ xác định, xử lý xung đột có mô hình hỗ trợ, xác nhận xóa, thùng rác và dấu mốc khôi phục.
Cam kết đồng bộ
Mỗi lượt đồng bộ trả lời bốn câu hỏi về sản phẩm: nội dung nào đủ điều kiện di chuyển, nó được bảo vệ thế nào, ai được phép công bố chỉ mục đám mây mới và người dùng có thể khôi phục ra sao nếu đồng bộ quyết định sai?
Đường đi của nội dung được mã hóa
Dữ liệu người dùng được chuẩn bị trên thiết bị trước khi đến kho lưu trữ. Bộ máy đồng bộ chuẩn hóa tập dữ liệu ứng viên, tính định danh nội dung, mã hóa dữ liệu, tải lên bằng thông tin xác thực ngắn hạn và xác minh các byte tải xuống trước khi ghi lại vào thiết bị.
Lưu trữ và chỉ mục
Orkas tách các byte được lưu khỏi chỉ mục đám mây. Đối tượng nội dung chứa dữ liệu được mã hóa. Chỉ mục ghi lại những mục dữ liệu logic cần tồn tại, định danh nội dung, bộ đếm phiên bản, kích thước lưu trữ, phiên bản sửa đổi trên đám mây và trạng thái dấu xóa. Thiết bị cũng giữ trạng thái cơ sở từ lượt thành công gần nhất để phân biệt trạng thái cũ với chỉnh sửa mới.
Một lượt đồng bộ
Một lượt bắt đầu với chi phí thấp và chỉ trở nên nghiêm ngặt khi thực sự có việc cần làm. Orkas trước tiên kiểm tra xem có gì thay đổi không, rồi lấy khóa đồng bộ tài khoản, tính lại các thay đổi khi đang giữ khóa, di chuyển nội dung, yêu cầu máy chủ chốt ghi các thao tác chỉ mục và cuối cùng cập nhật trạng thái cơ sở của thiết bị.
Khóa đồng bộ và chốt ghi
Khóa đồng bộ và kiểm tra chốt ghi giải quyết các vấn đề khác nhau. Khóa đồng bộ giảm công việc đồng thời lãng phí giữa các thiết bị. Khóa phía máy chủ tuần tự hóa việc ghi chỉ mục. Kiểm tra phiên bản sửa đổi đám mây dự kiến ngăn dữ liệu đọc cũ trở thành trạng thái chuẩn tiếp theo. Kiểm tra hạn mức và lược đồ chạy trong cùng quy trình chốt ghi do máy chủ quản lý.
Quy tắc trước xung đột
Phần lớn quyết định đồng bộ không phải xung đột. Thiết bị so sánh trạng thái cơ sở, dữ liệu hiện tại trên thiết bị và chỉ mục đám mây. Nếu chỉ đám mây thay đổi, kéo về. Nếu chỉ thiết bị thay đổi, đẩy lên. Nếu cả hai thay đổi, định tuyến theo loại nội dung. Nếu thứ gì đó biến mất, đi vào quy trình bảo vệ khi xóa thay vì xóa dữ liệu ngay.
Xử lý xung đột
Khi cả hai phía thực sự thay đổi, Orkas không quy tất cả về nguyên tắc bên ghi sau cùng thắng. Nhật ký dạng ghi nối có thể hợp nhất bằng các bản ghi còn thiếu. Danh sách có thể hợp nhất theo định danh bản ghi ổn định. JSON có cấu trúc có thể dùng bộ đếm phiên bản và dấu thời gian. Tệp Markdown và nhị phân được xử lý thận trọng: nếu hệ thống không chứng minh được rằng việc hợp nhất không gây mất dữ liệu, nó giữ một bản sao đầy đủ của phiên bản không được chọn.
Với xung đột văn bản hoặc nội dung có cấu trúc chưa rõ cách xử lý, sản phẩm có thể đóng gói các phiên bản liên quan để mô hình hỗ trợ. Mô hình có thể giải thích xung đột, soạn bản hợp nhất hoặc giúp người dùng lựa chọn. Đây không phải lớp bảo vệ duy nhất: xác thực theo quy tắc xác định, lưu trữ bản gốc và khả năng khôi phục hiển thị cho người dùng vẫn nằm trong quy trình.
Xác nhận xóa
Các thao tác xóa được xử lý như những lần chuyển trạng thái. Thao tác xóa từ xa trở thành dấu xóa. Thao tác xóa trên thiết bị trở thành một thao tác chờ xét duyệt. Orkas kiểm tra các lần ghi gần đây, theo dõi những đợt xóa lớn và tạm dừng lượt đồng bộ để yêu cầu xác nhận khi lượng dữ liệu người dùng sắp biến mất có vẻ rủi ro.
Thùng rác và khôi phục
Trước khi một thao tác xóa hợp lệ loại bỏ bản sao trên thiết bị, Orkas chuyển nó vào thùng rác đồng bộ. Các phiên bản thua xung đột được lưu trữ để xem xét. Các bản tải lên đang chờ vẫn được giữ lại nếu việc ghi nhận thất bại, để lượt tiếp theo có thể tái sử dụng dữ liệu. Nếu người dùng chủ động xóa sạch dữ liệu đám mây, các thiết bị khác sẽ thấy dấu dọn dẹp và ngừng tải lên lại nội dung cũ.
Những gì chúng ta đạt được
Kết quả là một hệ thống đồng bộ có ranh giới rõ ràng. Thiết bị chuẩn bị và xác minh nội dung. Kho lưu trữ đối tượng giữ các byte đã mã hóa. Máy chủ công bố chỉ mục. Khóa đồng bộ tài khoản và khóa máy chủ giữ các lượt đồng bộ có trật tự. Các quy tắc xử lý những trường hợp phổ biến. Sự hỗ trợ của mô hình giúp giải quyết các xung đột khó phân định. Xác nhận xóa và thùng rác bảo vệ người dùng khỏi những sai lầm gây thiệt hại lớn nhất.
Đó là tiêu chuẩn Orkas cần cho đồng bộ đám mây: không phải phép màu, cũng không phải bản sao phản chiếu mù quáng, mà là một cơ chế thận trọng giúp dữ liệu người dùng di chuyển giữa các thiết bị mà vẫn mang lại cảm giác nhất quán.