Hood-Bildung - Gemeindegrenzen

Steffen Winkler freifunk at steffen-winkler.de
Do Sep 20 08:06:12 CEST 2018


Ääää, ich meine, nach jeder Berechnung löschst Du alle, die älter als 4 
stunden sind. brauchst dann nicht mal einen cronjob.

Steffen

Am 20.09.2018 um 07:59 schrieb Steffen Winkler:
> Ja Christian,
>
> Genau so habe ich es gemeint. Der Cache ist dazu da, um die 
> Berechnungszeit zu verkürzen, um die Last zu reduzieren, für sonst 
> nichts. Die Berechnung ist ein Service. In der DB Tabelle steht lat, 
> lon, das Ergebnis Hood und ein timestamp für created. Ein Job, z.b 
> alle 4 Stunden schaut nach, was älter ist und wirft die weg, damit 
> sich die Tabelle wieder aufräumt. Dann musst du nur die neue 
> Berechnung machen und dann ziehen die Router systematisch in die neue 
> Hood um oder lösen sich von der alten.
>
> Grüße von Steffen
>
> Am 20. September 2018 07:28:52 MESZ schrieb Christian Dresel 
> <fff at chrisi01.de>:
>
>     Hi Adrian
>
>     On 20.09.2018 00:24, mail at adrianschmutzler.de wrote:
>
>         Genau das möchte ich vermeiden, dann haben wir durch das
>         Caching noch eine zusätzliche Schicht, die alles komplizierter
>         macht. Da muss man dann wieder prüfen, ob und welche Einträge
>         man in der Datenbank aktualisieren muss und welche zu dem
>         Geo-System gehören und welche zu den normalen Hoods. Das muss
>         man dann umbuchen usw., und irgendwann blickt keiner mehr
>         durch, was an welcher Stelle passiert. 
>
>
>
>     ich hätte das ganze etwa so umgesetzt:
>
>     Wir legen im keyxchange eine weitere Tabelle an, wo wir die GeoDaten zu
>     jeder Polygon-Hood abspeichern. Jeder GeoDatensatz verweist dann zu
>     einer HoodID die wir ganz normal in die bereits vorhandene Hood Tabelle
>     speichern.
>     Die Hoodtabelle braucht dann noch ein Flag PolygonHood oder voronoiHood
>     so das bei der voronoi Berechnung die PolygonHood nicht getestet wird.
>
>     Das hat auch den Vorteil, das mehrere Polygone auf eine Hood verweisen
>     können (Schnaittach, Simmelsdorf und noch irgendwas verweist alles auf
>     die Hood Schnaittach)
>
>     Im Cache würde ich dann "nur" noch lat, lon und HoodID abspeichern, der
>     Cache muss gar nicht wissen ob es eine voronoi oder PolygonHood ist, die
>     HoodID reicht.
>
>     Sobald man 1x irgendwas an irgendeiner Hood ändern, muss der Cache
>     natürlich komplett geleert werden und wieder frisch aufgebaut werden.
>     Das kann man wunderbar vor, bzw nach den ganzen Berechnung machen. Bevor
>     man mit den Berechnen anfängt, fragt man die lat/lon die der Router
>     gesendet hat im Cache ab, gibt es die hat man direkt die HoodID und kann
>     die Hood den Router geben. Gibt es die nicht, führt man die komplette
>     Berechnung durch und speichert am Ende in den Cache lat, lon und HoodID
>     ab damit sie für den nächsten durchlauf zur Verfügung stehen.
>
>     Ja es ist ein zusätzlicher Fehler aber ich seh das nicht als kritisch
>     an, wenn man den Cache leert falls man eine Hood anlegt oder ändert
>     sollte eigentlich nichts passieren. Aktualisieren oder so muss man nie
>     was, auch ist es egal zu welchen System der Cache gehört, nur eben den
>     Cache komplett leeren (man könnte natürlich auch nur den Bereich leeren
>     um den es sich handelt aber da wäre mir das Fehlerrisiko zu hoch, 1x den
>     Cache komplett neu aufbauen geht schon) wenn man was an den Hoods ändert.
>
>     mfg
>
>     Christian
>
>         Ich habe im Monitoring ein paar solche Stellen, weil ich durch
>         die Rückwärtskompatibilität in bestimmten Situationen viele
>         verschiedene "Systeme" parallel abdecken muss. Das ist der
>         Tod! Ich bin daher grundsätzlich gegen ein System am
>         KeyXchange, bei dem man Daten der Router cachen muss. Beim
>         Cachen von Hood-Daten bin ich noch am überlegen, aber auch da
>         gibt es dann ähnliche Probleme bei Hoodwechsel etc., wo immer
>         der Cache ein zusätzliches Problem darstellt. Wenn das so
>         kompliziert ist, dass es ohne Caching nicht geht, und wir
>         jetzt ein System haben, dass wunderbar blitzschnell problemlos
>         funktioniert, dann spricht das nicht für das System. Grüße Adrian
>
>             -----Original Message----- From: franken
>             [mailto:franken-bounces at freifunk.net] On Behalf Of
>             fff at mm.franken.de Sent: Mittwoch, 19. September 2018 23:45
>             To: franken at freifunk.net Subject: Re: Hood-Bildung -
>             Gemeindegrenzen Hallo Fabian,
>
>                 Zwar sendet jeder Router nur einen Koordinatensatz, im
>                 worst-case müssen aber alle n Polygon-Hoods geprüft
>                 werden, bevor ein match gefunden wird 
>
>             Wenn man das nicht in "Echtzeit" prüfen will (z.B. mit
>             PostGIS), könnte man einfach mal von allen Routern die
>             Koordinate auslesen, für jede Koordinate prüfen, in
>             welcher Hood der Router liegt, und die Zuordnung in eine
>             Tabelle schreiben. Dann bräuchte man bei Anfragen nur in
>             der Tabelle nachschauen. Das bedeutet, dass man bei jedem
>             neuen Router (bzw. bei jeder Koordinaten-Änderung) auch
>             die Hood neu bestimmen und in der Tabelle ergänzen müsste.
>             Dann wäre die Tabelle immer bis auf wenige Minuten
>             aktuell. Mit herzlichem Gruss, Markus 
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/mailman/private/franken-freifunk.net/attachments/20180920/80e4553c/attachment.html>


Mehr Informationen über die Mailingliste franken