Synchronizacja osobistej chmury nadal wymaga określenia właściciela konfliktu, ponieważ oprogramowanie może zachować konkurujące wersje bez wiedzy o tym, którą zawartość gospodarstwo domowe uznaje za wiążącą.
NAS, laptop, telefon, tablet i usługa chmurowa mogą przechowywać prawidłowe kopie, gdy urządzenia pracują offline lub aktualizacje docierają w różnej kolejności. Gdy dwie strony modyfikują tę samą ścieżkę, silnik synchronizacji może wybrać zwycięzcę, zachować obie wersje albo wstrzymać działanie, ale nie jest w stanie wywnioskować, czy najnowszy znacznik czasu zawiera właściwe decyzje projektowe, rodzinne poprawki czy celowe usunięcie. Właściciel określa, kto analizuje dowody i zatwierdza zaakceptowany stan. Poniższe sekcje oddzielają zbieżność replik od wiarygodności zawartości i odzyskiwania danych.
Synchronizacja utrzymuje repliki, a nie niezależne źródło prawdy
Synchronizacja dwukierunkowa ma sprawić, że wybrane foldery będą miały spójną zawartość. Rozpowszechnia prawidłowe edycje, ale może również propagować przypadkowe usunięcie, uszkodzenie, zmiany wprowadzone przez ransomware lub niekompletny stan z jednego urządzenia.
Rozróżnienie między synchronizacją a kopią zapasową wyjaśnione przez ZimaSpace pokazuje, dlaczego kolejna zapisywalna replika nie jest automatycznie niezależną kopią odzyskiwania danych. Określenie właściciela konfliktu jest potrzebne wewnątrz relacji synchronizacji, podczas gdy migawki i kopie zapasowe zapewniają możliwość wycofania zmian poza nią.
Źródłem prawdy może być NAS, urządzenie wyznaczonego redaktora, aplikacja współpracy lub proces weryfikacji. Nie powinno nim być urządzenie, które akurat jako ostatnie przesłało dane.
Jednoczesne edycje tworzą dwie prawidłowe historie
Konflikt występuje, gdy dwa urządzenia edytują ten sam logiczny plik, zanim którekolwiek z nich otrzyma zmianę z drugiego urządzenia. Każda edycja może być wewnętrznie prawidłowa i oparta na ostatniej wersji widocznej na danym urządzeniu.
Synology wyjaśnia, że jednoczesne zmiany pliku mogą doprowadzić do utworzenia przemianowanej kopii konfliktowej. Klient synchronizacji zapobiega cichemu nadpisaniu, ale nie decyduje, które akapity, komórki arkusza kalkulacyjnego lub metadane powinny zostać zachowane.
Tylko osoba znająca dokument lub reguła scalania właściwa dla danej aplikacji może określić, czy jedna wersja ma wygrać, czy też należy połączyć obie.
Właściciela konfliktu należy wyznaczyć przed rozpoczęciem porządkowania, szczególnie w przypadku współdzielonych folderów rodzinnych, w których żadne pojedyncze urządzenie nie jest zawsze dostępne online.
Najnowszy znacznik czasu nie dowodzi wiarygodności zawartości
Reguły „wygrywa ostatni zapis” są proste, ale zegary urządzeń mogą się rozregulować, a późniejszy zapis może zawierać starszą zawartość. Otwarcie i ponowne zapisanie nieaktualnej repliki może nadać jej najnowszy czas modyfikacji.
FreeFileSync opisuje sytuację, w której zmieniły się obie kopie, jako przypadek, którego narzędzie nie może rozwiązać bez wiedzy o tym, którą kopię użytkownik chce zachować. Rozmiar pliku i znacznik czasu pomagają wykryć różnice, ale nie potwierdzają poprawności semantycznej.
Korzystaj z historii wersji, informacji o autorze edycji, danych o rewizjach aplikacji oraz porównania zawartości. W przypadku strukturalnych baz danych lub systemów notatek korzystaj z procesu scalania danej aplikacji, zamiast ręcznie zastępować pliki wewnętrzne.
Kopie konfliktowe zachowują dowody, ale nie kończą scalania
Utworzenie drugiego pliku jest zachowawczą reakcją, ponieważ pozwala uniknąć zniszczenia którejkolwiek z edycji. Pozostawia jednak zduplikowane ścieżki, które mogą ponownie się rozbiec, zostać zaindeksowane dwukrotnie lub być niezależnie edytowane przez innego użytkownika.
Sync.com opisuje konfliktową kopię pliku jako mechanizm zachowywania niezależnie zapisanych wersji. Właściciel musi porównać obie wersje, scalić je lub wybrać jedną, zapisać jeden wiążący plik, a następnie usunąć zbędny duplikat dopiero po weryfikacji.
Automatyczne usuwanie duplikatów jest niebezpieczne, ponieważ identyczne nazwy lub podobna zawartość nie dowodzą, że jedna gałąź nadaje się do usunięcia.
Usunięcia wymagają określenia właściciela, ponieważ urządzenia offline mogą ponownie wprowadzić wcześniejszy stan
Systemy synchronizacji przedstawiają usunięcie jako zdarzenie lub znacznik usunięcia, który musi dotrzeć do każdej repliki. Urządzenie pozostające długo offline może powrócić ze starszym plikiem, nieprzetworzonym usunięciem lub lokalnymi edycjami opartymi na zawartości, którą inny użytkownik celowo usunął.
Dyskusje Syncthing opisują równoległe historie jako coś odrębnego od zwykłego odtwarzania starego stanu. Właściciel decyduje, czy ponownie pojawiający się plik jest prawidłową niesynchronizowaną edycją, niepożądanym odtworzeniem czy dowodem potrzebnym do odzyskiwania danych.
Wstrzymaj synchronizację przed rozwiązywaniem dużej liczby usunięć lub nagłego wzrostu liczby konfliktów. Wyeksportuj spisy plików i odzyskaj wersje, zanim ponownie pozwolisz, aby jedna niekompletna strona propagowała swoje zmiany.
Przechowuj historię usunięć wystarczająco długo, aby obejmowała maksymalny przewidywany okres pracy urządzeń domowych offline.
Polityka własności określa przebieg rozwiązywania konfliktów
Przypisz właściciela do folderu, projektu lub typu pliku. Może nim być jeden z członków rodziny, osoba, która rozpoczęła projekt, administrator współdzielonych archiwów lub aplikacja zapewniająca kontrolowany model współpracy.
Wskazówki OpenCloud dotyczące rozwiązywania konfliktów wymagają od użytkowników, aby porównali i scalili oryginalną oraz konfliktową kopię przed usunięciem dodatkowego pliku. Ustal formalną kolejność działań: wstrzymaj synchronizację, zachowaj obie wersje, porównaj zawartość i pochodzenie, wybierz wersję lub je scal, opublikuj wiążącą kopię, a następnie wznów synchronizację i sprawdź zbieżność.
W przypadku ważnego pliku zapisz, dlaczego wygrała jedna gałąź. Taki rejestr decyzji zapobiega późniejszemu przywróceniu odrzuconej wersji przez właściciela innego urządzenia.
Celem nie jest wyeliminowanie plików konfliktowych. Chodzi o przewidywalny proces, który zachowuje każdą istotną edycję do czasu, aż osoba posiadająca odpowiednie uprawnienia zdecyduje o ostatecznym stanie gospodarstwa domowego.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Stan bieżący a stan trwały w Home Assistant: co musi przetrwać ponowne uruchomienie?
Home Assistant nie zachowuje trwale każdej bieżącej wartości; konfiguracja, rejestry, wybrane przywracane stany, historia i dane wdrożeniowe pełnią różne funkcje podczas ponownego uruchamiania.

Jak Home Assistant uwierzytelnia sesje lokalne i zdalne?
Lokalne i zdalne sesje Home Assistant korzystają z tego samego modelu tożsamości po stronie serwera; zdalny dostęp zmienia trasę i granicę TLS, ale nie...

Dlaczego zapytania do historii Home Assistant mogą zwalniać w miarę przyrostu danych rejestratora?
Wzrost liczby rekordów może zwiększyć koszt zapytań do historii, gdy żądany zakres obejmuje więcej wierszy, rośnie liczba chybień pamięci podręcznej lub operacje na pamięci...

