Thực tế có rất nhiều trong số họ.
SparkleShare (deps: git / subversion, mono, python) tại
phần mềm đồng bộ hóa dựa trên GUI của github .
a. Phiên bản: thông qua hệ thống kiểm soát nguồn, do đó, nó dựa trên máy chủ trung tâm thông qua số phiên bản.
b. Nhà nước: đang phát triển
c. Ưu điểm: OSS, dựa trên đơn sắc nên có thể sửa đổi dễ dàng, Nhược điểm: quy trình cấp độ người dùng, phụ thuộc vào GC, giao thức chia sẻ không hiệu quả theo các đơn đặt hàng cường độ vì git chủ yếu dành cho các tệp văn bản nhỏ, khá khó biên dịch (tôi đã thử). Sử dụng các công cụ cấp cao.
lipync (deps: Unison, rsync) Phần mềm dựa trên dịch vụ dòng lệnh.
a. Phiên bản: thông qua algoritm rsync . Tôi giả sử lập trình viên phải chọn giải quyết xung đột.
b. Bang: Tôi không thể tìm thấy mã nguồn của nó, vì vậy tôi không biết. Điều duy nhất trong repo git của anh ta là nhị phân.
c. Ưu điểm: thiết lập đẹp, sử dụng các công cụ trung cấp.
iFolder - Dropbox của Novell. Tôi chưa nghiên cứu nguồn của nó. Tôi chỉ muốn chỉnh sửa nó và nếu mọi người quan tâm tôi sẽ thêm nhiều hơn nữa.
a. Phiên bản:
b. Trạng thái: Có vấn đề khiến nó thậm chí biên dịch trên Ubuntu, chứ chưa nói đến các gói. Dưới đây là hướng dẫn cài đặt chi tiết .
c. Ưu điểm: Máy khách Windows X64, trưởng thành, tích hợp AD với ACL, các tính năng không có dự án nào khác bắt đầu thực hiện. Tôi nghĩ rằng đây có thể là một điểm khởi đầu tốt. Nhược điểm: Novell có thể không sử dụng repo svn công khai của nó làm repo chính và chỉ thực hiện giảm mã. Tôi không biết chính xác về điều này mặc dù. Có thể quá ghép nối với openSUSE để dễ dàng cài đặt trên Ubuntu. Để kiểm tra các thuật toán của nó.
scp / RCp - không dùng nữa cho rsync
DRDB - chặn các công cụ phản chiếu thiết bị cho RAID-1 phân tán, tức là biến thể máy chủ của dropbox. Tôi chưa kiểm tra mã nguồn của nó, nhưng nó chỉ là linux. Thuật toán thực tế có thể dễ dàng kết hợp với mã nguồn trong phần suy nghĩ của tôi bên dưới danh sách phần mềm này.
a. Phiên bản: định dạng tin nhắn nội bộ qua LAN / WAN
b. Bang: có vẻ đủ trưởng thành
c. Ưu điểm: đủ ổn định cho linux, Nhược điểm: không có hệ điều hành nào khác được hỗ trợ
Ngay bây giờ tôi đang nghiên cứu cải thiện thời gian biên dịch trên Windows 7 ảo hóa, trong đó thời gian biên dịch trên Windows 7 trên kim loại là 40 giây, nhưng ảo hóa khoảng 3m 20 giây. Tôi đang nghĩ đến việc viết trình điều khiển ioctl là bộ đệm ghi thông tin trông giống như một đĩa ram cho các thư mục được chọn trên NTFS.
Sử dụng phần mềm trên, tôi nghĩ rằng việc phát triển toàn thời gian 2-3 người trong một tuần sẽ tạo ra một Alpha có thể sử dụng mà không làm mất các tệp của bạn bằng cách kết hợp các phần mềm trên.
Trên hệ thống của tôi sau đó, ý tưởng chung sẽ là;
Gắn ổ đĩa ảo \? {GUID}, đó là đĩa ram và bộ đệm RW. Phần mềm tạo ổ đĩa ảo này có hai tham số đầu vào (rất quan trọng):
a. Thư mục đích; đây là thư mục SMB, vì vậy tôi sẽ để ngăn xếp mạng của hệ điều hành xử lý IO thực tế. Trong trường hợp của tôi, đây là lần lượt thư mục ảo VMWare, bản thân nó đã là mục tiêu trên ổ đĩa ext4, nhưng nó có thể dễ dàng trở thành máy chủ tệp của bạn bằng SAMBA / SMB.
b. Đường dẫn của thư mục sẽ được gắn kết, ví dụ: C: \ ramdisk
Mã này để tạo khối lượng ảo được lấy từ mã của TrueCrypt , trong /Driver/DriverFilter.c (trong số các tệp khác)
Ổ đĩa sử dụng giao thức SMB / VMWare / mạng để tìm nạp dữ liệu khi khởi động; nó tìm nạp với mức độ ưu tiên tác vụ thấp, không đồng bộ từ mạng và lấp đầy bộ đệm của nó. Nó có thể sử dụng thuật toán nén đơn giản và có 1 luồng sử dụng chuyển tiếp kiểu hộp thông báo để có hiệu năng tuyệt vời. Trên Windows, nó có thể sử dụng các cuộc gọi IO async bình thường và trên linux, nó có thể sử dụng triển khai epoll / inotify và lấy mã từ nginx .
Dịch vụ của tôi đó là đĩa ram gắn ổ đĩa ramdisk không tên dưới dạng thư mục NTFS. Tất cả các chương trình có thể tiếp tục viết thư cho C: \ ramdisk hoặc bất cứ điều gì tôi gọi nó.
Async sao chép từ mạng vẫn đang diễn ra. Với tốc độ đọc xấp xỉ 100 MiB / s và 2 GiB ramdisk, sẽ là 20,5 giây để đọc tất cả dữ liệu.
Mỗi lệnh gọi để đọc sẽ thực hiện tính toán trong CPU của chỉ mục thành một mảng có kích thước tối đa n: ulong GiB. Nó sẽ yêu cầu giải quyết xung đột mặc dù hoặc khóa đọc-ghi. Nếu chúng tôi thực hiện một algoritm giải quyết xung đột như những thứ có sẵn thông qua Microsoft Sync, chúng tôi có thể chuyển từng đoạn xung đột dưới dạng tin nhắn sang một quy trình giải quyết xung đột khác. Dropbox giải quyết nó bằng cách tạo một tệp mới và đặt tên là "Bản sao mâu thuẫn của tên người dùng PrevFileName (yyyy-MM-dd) .ext". Có lẽ điều này có thể được thay đổi thông qua một tiện ích nhỏ, nếu một người đang biên dịch theo nguồn đơn đó - tiện ích sẽ phát hiện các thay đổi nổi bật dưới dạng tin nhắn / sự kiện và chọn giao thức giải quyết xung đột. Như vậy, khi lập trình dựa vào thư mục ở chế độ độc quyền, Windows VM có thể đặt tiện ích thành 'độc quyền'.
Điều này sẽ có những PRO
- Nó sẽ không chặn / không đồng bộ
- Nó sẽ đưa ra giả định nhưng không yêu cầu một máy tính sẽ ghi phần lớn vào các tệp.
- Nó sẽ làm việc cho các tệp lớn tùy ý
- Nó sẽ hoạt động trên * nix và Windows bằng cách liên kết các dự án được đề cập.
- Nó sẽ hoạt động khi cần hiệu suất đọc cao (tức là các tệp được đặt trên đĩa)
- Khi đạt được các sự kiện xung đột, người ta có thể cung cấp một ứng dụng giao diện người dùng cho phép người dùng viết / tải xuống các plugin hoạt động hoàn toàn cho các loại sự kiện khác nhau - tức là các loại tệp khác nhau. Ví dụ: một tệp văn bản có thể được đưa lên bằng Kompare / WinDiff, trong khi tệp nhị phân sẽ được sao chép và lưu dưới dạng tệp khác.