e2nIEE / pandahub

A data hub for pandapower and pandapipes networks based on MongoDB.
Other
12 stars 12 forks source link

Develop #21

Closed ascheidl closed 1 year ago

ascheidl commented 1 year ago

netze laden sollte um jetzt einiges schneller gehen

es werden nun die Indizes nur dann erzeugt wenn zum ersten mal auf eine Collection geschrieben wird (damit nicht bei jedem Schreibvorgang der Aufruf stattfindet - Performance)

das bedeutet aber, dass existierende DBs nicht automatisch die Indizes bekommen

lthurner commented 1 year ago

es werden nun die Indizes nur dann erzeugt wenn zum ersten mal auf eine Collection geschrieben wird (damit nicht bei jedem Schreibvorgang der Aufruf stattfindet - Performance)

Hast du es mal getestet ob es tatsächlich ein Performance-Problem ist? Laut MongoDB Doku sollte das eigentlich kein Problem sein: "If you call db.collection.createIndex() for an index that already exists, MongoDB does not recreate the index." https://www.mongodb.com/docs/manual/reference/method/db.collection.createIndex/#recreating-an-existing-index

Ignore Elements: Man könnte es auch umdrehen und by default nur die core-pandahub tabellen laden, mit additional_elements wenn zusätzliche Tabellen geladen werden sollen - expliziter? Kann ich nicht so richtig einschätzen was besser ist

Fände ich auch besser es so rum zu machen

jthurner commented 1 year ago

Laut MongoDB Doku sollte das eigentlich kein Problem sein

Auch wenn es am Ende eine NOOP ist bleibt es ein zusätzlicher überflüssiger Datenbank-Call, das alternativ jedes mal beim schreiben zu machen ist ziehmlich ineffizient. Wir können create-index aber auch über settings abschlatbar machen falls jemand die Indexe lieber selber managen will.

ascheidl commented 1 year ago

also ich hatte 1,2ms für ein einzelnen Index gemessen (den es schon gibt) ... macht dann 25+ ms für ein Netz. Fand ich signifikant.

lthurner commented 1 year ago

Ja die Masse macht es dann wohl. Dann belassen wir es beim schreiben. Sollten wir dann noch überlegen auch Geo-Indizes für geo-queries beim schreiben zu setzen (auf die geo spalte, falls vorhanden)?