Vereinfachte Struktur von dem, was ich habe, ist:Root, Kinder und mehrere Schlösser
- einige einzelne Wurzeln
- jede Wurzel hat viele (zB 100s) von Kindern
Nutzer kann die Wurzel aktualisieren Informationen, und keine andere Operation an Kindern sollte erlaubt sein (weil Root-Änderung alle betreffen kann).
Benutzer können auch mit Kindern arbeiten (wenn root nicht verwendet wird). Zum Beispiel kann der Benutzer 2 Kinder gleichzeitig ändern, und dies ist erlaubt, da jedes Kind unabhängig ist.
Ich brauche Schlösser in dieser Struktur, um sicher zu sein, gibt es keine Verfälschungen:
- , wenn Kinder in Gebrauch ist, sperren die Kinder. Dies ermöglicht nicht zwei Operationen für dieselben Kinder gleichzeitig.
- Wenn Root verwendet wird, sperren Sie Stamm und alle die Kinder. Dies verbietet die Operationen auf irgendwelchen Kindern, während root aktualisiert wird.
Was mich hier stört, ist die Notwendigkeit alle die Kinder zu sperren - in einem verteilten System, das auf verteilte Sperre, dass viele Anfragen Mittel sendet.
Gibt es eine bessere Lösung, die ich nicht sehe?