ma_code
Dieses Repo beinhaltet den Code und die Datasets zur Masterarbeit "..." von Sven-Ove Hänsel.
Troubleshooting
Gleiche Datenmenge in DB bekommen
Publisher Script angepasst. Es gibt im Publisher die Möglichkeit die Anzahl an Zeilen pro Datei zu bestimmen. Für alle auf z.B. 5000. Führt dazu, dass an jeden Subscriber die gleiche Anzahl an Zeilen gesendet wird.
Bei einfachem Stoppen nach einer Minute sind unterschiedliche viele Daten in den DBs. -> Grund ist, dass wenn der Publisher fertig mit Übertragung ist, dass der SUbscriber die Connection zum Broker löscht -> Fix durch keepalive im Connect zum Broker von XYZ (4) Stunden. -> führte bei 100000 eingefügten Zeilen in Postgres dazu, dass keine Daten fehlen.
Das Problem das ich unterschiedlich viele Daten in den DBs hatte lag:
-
an der Größe der Message Queue. Die war zu gering und dadurch wurden Nachrichten gedroppt. Ist mir erst aufgefallen, als ich die Ergebnisse mal in Excel gegenüber gestellt habe und das Diff ermittelt habe. Es gab tatäschlich Lücken zwischen dem Cadets Datensatz und dem was eingefügt wurde. Das Log vom Broker war der erste Anhaltspunkt wo man mal früher hatte reingucken müssen. -> Jetzt ist die Queue so lange wie der Datensatz selbst... sollte für meine kleinen Versuche reichen. Bei 100.000 Nachrichten wird jedenfalls nichts mehr gedroppt und der RAM vom Broker war etwa 250 MB von 9 GB. Der gesamte Datensatz sind knapp 40.000.000 Zeilen/Nachrichten. Da ich eh nur ein Experiment erstmal für zwei Stunden laufen lasse müsste das reichen.
-
die Subscriber haben sich vom Broker disconnected, weil ich keine "keep-alive" Zeit eingerichtet habe, wenn der Publisher nicht mehr sendet. Da der Publisher so viel früher fertig war, kam es dazu, das sich die Subscriber ebenfalls disconnecten (weil keine neuen Nachrichten durch Publisher bekommen), obwohl noch Nachrichten zu inserten sind. -> keepalive Zeit ist nun 4 Stunden... also Open End um die Experimente durchlaufen zu lassen
-
fehlten in Postgres noch Kanten. Hab die nicht eingefügt, wodurch die Pfad Query nicht funktionieren konnte. Jetzt bekomme ich auch für die Pfad-Query ein Ergebnis in Postgres bzw das gleiche Ergebnis wie in den GraphDB.
Wie groß ist der Diff zwischen der Zeit, wenn alle Daten in DB?