Domino 9 und frühere Versionen > ND6: Entwicklung

Anhänge in DB's auslagern

(1/2) > >>

w3dev:
Hallo liebe Leute,

hat sich von euch schon mal jemand Gedanken um die Auslagerung von Anhängen in andere DB's gemacht?

Ich steh momentan vor der Aufgabe Anhänge aus einer DB, die so langsam die 64GB grenze erreicht, in kleinere DB's (4GB, damit sie auch auf ne CD passen) auszulagern. Ein Konzept für die Funktionalität des Auslagerns und Erstellens der Auslagerungs-DBs, sowie die Synkronisierung der Zugriffsrechte hab ich bereits gemacht.

Grobe Konzeptbeschreibung:

Agent auf Server (Neue und gespeicherte Dokumente, läuft auf allen Repliken):
Nimmt Anhänge (Typ und mind. Größe wählbar) aus Dokumenten und kopiert jeden in ein eigenes Dokument in einer Auslagerungs-DB. Replik-ID und UNID speichert er gemeinsam mit dem Namen des Anhangs in einem Feld im Original Dokument. Im RT-Feld wird der Original Anhang entfernt und eine Dokumentverknüpfung mit dem Namen des Anhangs an diese Stelle gesetzt (so lässt sich später wieder eine Verbindung von Position im RT und Anhang herstellen). Die Auslagerungs-DBs werden mit auf alle Server repliziert, sodass immer Zugriff besteht.
Ausserdem Synkronisiert er bei erneut gespeicherten Dokumenten mit ausgelagerten Anhängen die Zugriffsrechte zu den Anhangsdokumenten.

Für Gleiche ACLs wird gesorgt.


Jetzt stellt sich bei mir die Frage nach Gefahren durch die Replizierkonflikte oder
vielleicht hat ja jemand von euch andere Ansätze oder sieht andere Gefahren, die ich noch nicht sehe.

Bin für alle Anregungen dankbar. Merci


Ronny

koehlerbv:
Was mir jetzt spontan einfällt: Speichere unbedingt einen eindeutigen Key in beiden Dokumenten (Haupt-DB, Auslagerungs-DB). Falls es mal die Auslagerungs-DB reisst und nur noch eine neue Kopie hilft, kannst Du dann die ganzen Links rekonstruieren.

Bernhard

w3dev:
Stimmt, Sicher is sicher  ;D

koehlerbv:
Eben. Für mich ist Murphy's law oberste Regel. Damit bin ich - auch wenn das manchmal einen ordentlichen Aufwand bedeutet, der einem aber wieder entschädigt wird! - bisher immer bestens gefahren. Meine Kunden natürlich auch  ;)
Ich glaube, mein Rekordhalter ist ein Agent, der nach knapp 500 Zeilen Code erst anfängt, seinen eigentlichen Job zu tun. Vorher wird alles mögliche abgeprüft, damit dabei auch ja nichts schief geht.

Bernhard

w3dev:
In diese Richtung (Sicherheit) geht auch meine Arbeitsweise. Meine Bedenken bei dieser ganzen Funktionalität sind einfach Replizierkonflikte mit Clients, die ein neues Dokument erstellen, was nach dem Replizieren auf dem Server vom agenten bearbeitet wird und bevor der Client erneut repliziert nochmals dort geändert wird.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln