| Termin | Definicja |
|---|---|
| Konflikt wersji danych | Konflikt wersji danych to rozbieżność powstająca, gdy ten sam rekord zostaje zmodyfikowany w kilku replikach jednocześnie. Na czym polega konflikt wersji danychKonflikt wersji danych powstaje wtedy, gdy ten sam rekord lub plik zostaje zmieniony w więcej niż jednej kopii, zanim system zdąży przekazać jedną zmianę do pozostałych replik. Replika jest niezależną kopią danych utrzymywaną na innym urządzeniu, w procesie albo węźle systemu. Przykładowo jeden użytkownik może zmienić numer telefonu w rekordzie kontaktu na laptopie, a drugi w tym samym czasie poprawić nazwę firmy w kopii zapisanej na innym komputerze. Jeżeli obie kopie mają jeszcze poprzednią wersję danych, późniejsza synchronizacja wykrywa, że nie istnieje jedna bezsporna kolejność modyfikacji. Konflikt wersji nie oznacza automatycznie uszkodzenia nośnika ani fizycznej utraty pliku. Jest przede wszystkim problemem spójności logicznej: system musi rozstrzygnąć, która zmiana ma zostać zachowana, czy obie zmiany można połączyć, czy też należy pozostawić użytkownikowi wybór. Do wykrywania takich sytuacji stosuje się między innymi znaczniki czasu, numery wersji, liczniki zmian, identyfikatory operacji albo wektory wersji. Sam aktualny czas urządzenia nie zawsze wystarcza, ponieważ zegary różnych komputerów mogą być ustawione z różnym przesunięciem. Wykrywanie rozbieżnych kopii rekorduSystem synchronizacji może oznaczyć konflikt, gdy numer wersji zapisany przy rekordzie nie odpowiada numerowi, którego oczekuje serwer lub inna replika. Typowy mechanizm kontroli współbieżności polega na odczytaniu rekordu razem z jego wersją, a następnie przesłaniu aktualizacji z warunkiem: zmiana jest dopuszczalna tylko wtedy, gdy wersja nadal ma odczytaną wcześniej wartość. Jeżeli w międzyczasie inna replika zapisała nową wersję, warunek przestaje być spełniony. Dzięki temu późniejsza operacja nie nadpisuje bez ostrzeżenia wcześniej zapisanych danych. W bardziej rozproszonych systemach relacja między wersjami może być opisywana przez wektor wersji. Taki wektor przechowuje informację o liczbie zmian wykonanych przez poszczególne repliki. Jeżeli jedna wersja zawiera wszystkie zmiany drugiej i dodatkowo własną modyfikację, można uznać ją za nowszą w sensie zależności przyczynowej. Jeżeli natomiast żadna z wersji nie obejmuje drugiej, system ma do czynienia z równoległymi zmianami. Wtedy potrzebna jest procedura scalania, wybór jednej wartości albo zapis kilku wersji do dalszego rozpatrzenia. Ważne jest także rozróżnienie między konfliktem a zwykłym opóźnieniem synchronizacji: nie każda różnica między kopiami oznacza konflikt, jeżeli można jednoznacznie ustalić kolejność operacji. Scalanie zmian i ryzyko utraty informacjiRozwiązanie konfliktu zależy od rodzaju danych. W prostym rekordzie z pojedynczym polem system może zastosować regułę „wygrywa wersja nowsza”, lecz taka metoda wymaga wiarygodnego mechanizmu ustalania kolejności i może usunąć wcześniejszą, nadal potrzebną wartość. Przy rekordzie z wieloma polami możliwe jest scalanie częściowe: zmiana nazwy może zostać połączona ze zmianą numeru telefonu, o ile modyfikacje dotyczyły różnych pól i nie naruszały wzajemnie zależności. Nie wolno jednak zakładać, że mechaniczne połączenie zawsze zachowuje poprawność całego rekordu. Dla dokumentów tekstowych stosuje się czasem porównanie różnic między wersjami, natomiast dla danych strukturalnych potrzebna jest reguła właściwa dla modelu danych. W systemach wykorzystujących operacje zapisywane jako zdarzenia można przechować obie modyfikacje i odtworzyć stan na podstawie ich kolejności lub zależności. W niektórych rozwiązaniach dane są projektowane tak, aby operacje były możliwie bezkonfliktowe; przykładem może być osobny zapis elementów kolekcji zamiast nadpisywania całej kolekcji jednym rekordem. Każde automatyczne rozstrzygnięcie powinno pozostawiać ślad w historii zmian, ponieważ bez informacji o źródłowych wersjach trudno ustalić, dlaczego określona wartość znalazła się w końcowym rekordzie. Objawy na urządzeniu i zakres czynności serwisowychNa laptopie lub komputerze PC konflikt wersji może być widoczny jako komunikat o nieudanej synchronizacji, powielony plik, przywrócona starsza treść dokumentu albo prośba o wybranie wersji do zachowania. Przyczyną bywa równoczesna edycja, praca bez połączenia z siecią, nagłe zamknięcie programu podczas zapisu lub uruchomienie kilku klientów synchronizacji korzystających z tego samego katalogu. Przed usunięciem kopii należy zachować pliki konfliktowe i sprawdzić ich daty modyfikacji, rozmiary oraz historię wersji w używanym programie. Samo skasowanie duplikatu nie rozwiązuje problemu, jeżeli druga kopia nadal czeka na wysłanie albo lokalny klient ponownie odtworzy ją podczas następnej synchronizacji. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z lokalnym oprogramowaniem, plikami użytkownika oraz działaniem klienta synchronizacji. W ramach analizy można sprawdzić, czy przyczyną jest błąd programu, nieprawidłowa konfiguracja profilu, brak miejsca na dysku, uszkodzenie systemu plików lub niestabilne połączenie urządzenia z usługą synchronizacji. Ocena danych wymaga ostrożności: przed zmianami należy wykonać kopię dostępnych wersji, ustalić, które informacje są aktualne, i dopiero potem uporządkować lokalne pliki lub ustawienia aplikacji. Konflikt wersji dotyczący zawartości przechowywanej poza komputerem może wymagać również użycia historii zmian i narzędzi udostępnianych przez konkretną usługę, ponieważ sam system operacyjny nie zna reguł rozstrzygania danych zastosowanych przez zewnętrzny program. |