Ich habs schon eingesetzt. Allerdings durfte es dann wirklich nur e.i.n.e. Replik geben, wo alle Leute reinschrieben. Geht dann z.B. nicht, dass sich Notes.PowerUser mal eben eine lokale Replik ziehen, um so schneller arbeiten zu können.
Das Verhindern von gleichzeitigen Schreiboperationen auf verteilte Systeme ist ein grundsätzliches Problem, v.a. wenn sich die Systeme auf unterschiedlichen Servern befinden.
Der Mechanismus bei Notes dagegen heisst Speicher-und-Replizierkonflikt. Für alles darüber hinaus ist Notes nicht gebaut.
Speicherkonflikt: gleiche Replik, verschiedene User
Replizierkonflikt: unterschiedliche Replik, verschiedene User.
<out_of_topic>
(falls folgende das jemand diskutieren will, bitte in einem separaten Thread)
In Relationalen Datenbanken ist es möglich, die Schreibzugriffe voneinander zu isolieren.
Aber auch hier wird sich oft mit Tricks geholfen, da nämlich sonst das System einfach zu langsam wird. Risiken von gleichzeitigen Zugriffen werden auch hier teilweise bewußt in Kauf genommen (aus Performance-Gründen). Jedoch kann man das verhindern, wenn man muß und die Tricks sind auch ziemlich gut.
Die Read- und Write logs, die von der RDBMS gesetzt werden sind im Grunde sehr ähnlich, was man dafür in Notes programmieren würde (nur ist das schon bei der RDBMS dabei).
Noch einmal komplizierter wird es bei sogenannten verteilten Transaktionen wo das Schreiben in unterschiedliche Backend-Systeme synchronisiert wird (die auch noch auf unterschiedlichen Servern liegen--> wie Replizierte Notes-DB).
Der dafür benötigte Transaktionsmanager ist quasi das Kernstück eines J2EE Servers. Die Kommunikation dieses Transaktionsmanager mit den eingebundenen Backendsystemen funktioniert mit dem 2phase-commit Protokoll. Sehr, sehr komplex, wenn man wirklich drüber nachdenkt und auch nicht komplett störungsfrei. Hoffentlich zeitweilige Fehler in der Konsistenz tragen dort den schönen und vielsagenden Namen heuristic decision (haha).
Jedenfalls sind das Dinge, die auf IBM CICS beruhen und da arbeitet IBM seit den 60ern dran.
Die Real existierenden Komplexitäten von verteilten Clustern und verteilten Caches werden durch die gleichen ursächlichen Kräfte verursacht.
</out_of_topic>