2017-11-16 2 views
0

Ich möchte Realm verwenden und ich muss Daten aus verschiedenen Threads schreiben. Ich habe Post über Realm gelesen. Realm ist ähnlich wie Git. Kannst du erklären, wie die Zusammenführung von Daten mit Konflikten in Realm funktioniert? DankeRealm - schreibe aus verschiedenen Threads - RxJava

Antwort

1

Können Sie erklären, wie die Zusammenführung von Daten mit Konflikten in Realm funktioniert?

Wenn wir über die Realm lokale Datenbank (Realm Mobile-Datenbank) sprechen, und NICHT über das Realm Mobile Platform:

  • Transaktionen über Threads und Prozesse blockieren, so kann es nur sein, eine Schreibtransaktion zu einer Zeit. Wenn das also geschieht, wird das die neue Version werden. Zusammenführungsszenario ist unmöglich. Wenn eine Schreibtransaktion geöffnet ist, wird in der Transaktion immer der letzte Status der Datenbank angezeigt, und es ist nicht möglich, eine ältere Version zu sehen.

Wenn wir über die Realm-Mobile-Plattform sprechen:

  • Wenn mehrere Offline-Transaktionen auf den gleichen Daten auftreten, wo sie erst später synchronisiert wurde, ist nun mal die conflict resolution auf Regeln der operativen Basis verwandeln:

    • löscht immer gewinnen: wenn eine Seite ein Objekt gelöscht wird es immer gelöscht bleiben, auch wenn die andere Seite Änderungen daran später gemacht hat.

    • Letztes Update gewinnt. Wenn zwei Seiten dieselbe Eigenschaft aktualisieren, wird der Wert als der letzte aktualisiert.

    • Inserts in Listen sind nach Zeit sortiert. Wenn zwei Elemente an der gleichen Position eingefügt werden, wird das Objekt, das zuerst eingefügt wurde, vor dem anderen Element angezeigt.

Verwandte Themen