Hood-Bildung - Gemeindegrenzen

Steffen Winkler freifunk at steffen-winkler.de
Do Sep 20 07:59:14 CEST 2018


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/35c6bfb2/attachment.html>


Mehr Informationen über die Mailingliste franken