Hood-Bildung - Gemeindegrenzen

Christian Dresel fff at chrisi01.de
Do Sep 20 07:28:52 CEST 2018


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
> 



Mehr Informationen über die Mailingliste franken