Syncthing , công cụ đồng bộ hóa tệp mã nguồn mở phổ biến, đã phát hành phiên bản 2.0 với những thay đổi đáng kể đã gây ra các cuộc thảo luận trong cộng đồng. Mặc dù bản cập nhật mang lại những cải tiến như backend cơ sở dữ liệu SQLite mới và tính năng ghi log được nâng cao, nhưng nó cũng loại bỏ hỗ trợ cho một số nền tảng, làm dấy lên lo ngại của người dùng về hướng đi của dự án.
Việc Giảm Hỗ Trợ Nền Tảng Gây Ra Nhiều Câu Hỏi
Thay đổi gây tranh cãi nhất trong Syncthing 2.0 là việc loại bỏ các tệp nhị phân được xây dựng sẵn cho nhiều nền tảng, bao gồm DragonFly BSD , Solaris , NetBSD , và đáng chú ý là Windows ARM32 . Quyết định này xuất phát từ những phức tạp trong việc biên dịch chéo SQLite , backend cơ sở dữ liệu mới thay thế LevelDB .
Các thành viên cộng đồng đã bày tỏ sự ngạc nhiên khi ngừng hỗ trợ Windows ARM32 , đặc biệt là trong bối cảnh ngành công nghiệp đang chuyển hướng sang bộ vi xử lý ARM . Tuy nhiên, nhóm phát triển làm rõ rằng Windows ARM64 vẫn được hỗ trợ, và chính Microsoft cũng đang loại bỏ dần hỗ trợ ARM 32-bit trong các phiên bản Windows 11 tương lai.
Việc lựa chọn triển khai SQLite cũng đã thu hút sự giám sát. Người dùng đặt câu hỏi tại sao nhóm lại chọn github.com/mattn/go-sqlite3 dựa trên CGO thay vì modernc.org/sqlite thuần Go , điều này sẽ tránh được các vấn đề biên dịch chéo. Hiệu suất dường như là yếu tố quyết định, vì phiên bản CGO cung cấp tốc độ tốt hơn mặc dù có những phức tạp trong biên dịch.
Các Nền tảng Không Còn Nhận Binary Được Xây dựng Sẵn
- DragonFly BSD (amd64)
- Illumos / Solaris (amd64)
- Linux (ppc64)
- NetBSD (tất cả kiến trúc)
- OpenBSD (386 và ARM)
- Windows ( ARM 32-bit)
Lưu ý: Hỗ trợ Windows ARM64 vẫn tiếp tục
Di Chuyển Cơ Sở Dữ Liệu và Cải Thiện Hiệu Suất
Việc chuyển từ LevelDB sang SQLite đại diện cho một thay đổi cơ bản trong cách Syncthing lưu trữ dữ liệu. Người dùng báo cáo rằng quá trình di chuyển có thể kéo dài đối với các thiết lập lớn hơn, nhưng cơ sở dữ liệu mới hứa hẹn việc bảo trì dễ dàng hơn và ít lỗi hơn. Bản cập nhật cũng giới thiệu tính năng tự động dọn dẹp các tệp đã xóa sau sáu tháng, giải quyết những lo ngại lâu dài về lưu trữ.
Nhiều cải tiến hiệu suất đi kèm với việc thay đổi cơ sở dữ liệu. Việc loại bỏ phát hiện rolling hash cho dữ liệu dịch chuyển, mặc dù loại bỏ một tính năng, thực sự cải thiện hiệu quả quét và đồng bộ. Hệ thống hiện sử dụng nhiều kết nối theo mặc định giữa các thiết bị phiên bản 2, với ba kết nối xử lý các loại trao đổi dữ liệu khác nhau.
Những Thay Đổi Kỹ Thuật Chính Trong Phiên Bản 2.0
- Hệ Thống Cơ Sở Dữ Liệu: LevelDB → SQLite
- Kết Nối Mặc Định: Một kết nối → Ba kết nối (1 cho metadata, 2 cho dữ liệu)
- Lưu Trữ File Đã Xóa: Vĩnh viễn → 6 tháng (có thể cấu hình)
- Phát Hiện Rolling Hash: Đã loại bỏ để cải thiện hiệu suất
- Hệ Thống Ghi Log: Được cấu trúc lại với mức độ log theo từng gói
- Khóa Mã Hóa: Chuyển sang Ed25519 cho các kết nối đồng bộ
Hệ Sinh Thái Android Vẫn Hoạt Động Tích Cực
Mặc dù hỗ trợ Android chính thức đã kết thúc trước đó do các hạn chế nền tảng của Google , hệ sinh thái Android vẫn tiếp tục phát triển mạnh mẽ thông qua các fork cộng đồng. Fork Syncthing-Android duy trì phát triển tích cực và có sẵn thông qua cả F-Droid và Google Play Store , đảm bảo người dùng di động không bị bỏ lại phía sau.
Cân Nhắc Về Tương Thích và Di Chuyển
Phiên bản 2.0 duy trì tương thích giao thức với phiên bản 1.x, cho phép di chuyển dần dần trên các thiết bị khác nhau. Tính tương thích ngược này cung cấp cho người dùng sự linh hoạt trong việc nâng cấp các cài đặt Syncthing mà không yêu cầu cập nhật đồng thời trên tất cả các thiết bị.
Phản hồi của cộng đồng phản ánh cả sự đánh giá cao đối với việc phát triển liên tục của Syncthing và lo ngại về việc giảm hỗ trợ nền tảng. Nhiều người dùng khen ngợi độ tin cậy và cách tiếp cận tập trung vào quyền riêng tư của phần mềm, với một số báo cáo hoạt động không gặp sự cố trong nhiều năm trên nhiều thiết bị.
Syncthing 2.0 đại diện cho một sự phát triển đáng kể ưu tiên hiệu suất và khả năng bảo trì hơn là hỗ trợ nền tảng rộng rãi. Mặc dù một số người dùng có thể cần biên dịch từ mã nguồn hoặc tìm kiếm các giải pháp thay thế, những cải tiến chức năng cốt lõi cho thấy một nền tảng mạnh mẽ hơn cho việc phát triển trong tương lai.
Tham khảo: v2.0.0