Mit dem heutigen Update verbessern wir die Lade- und Berechnungs-Geschwindigkeit überall dort, wo mit Geo-Daten gearbeitet wird. Also z. B. im Umlauf-Editor, in der Zeitleisten-Ansicht und wann immer eine Adresse geocodiert werden muss. Die Verbesserungen sind teils gravierend und deutlich spürbar.
Das sind natürlich gute Nachrichten für alle Anwender:innen, allerdings ist von unserer Seite auch etwas Demut gefragt. Die „Langsamkeit“ der nun verbesserten Funktionen, basierte nämlich leider nicht (nur) auf den teils komplexen Berechnungen im Hintergrund und der Latenz zwischen Ihrem Browser und unseren Servern. Sie entstand auch, weil eine Funktion die eigentlich alles schneller machen sollte, nicht richtig funktionierte. Und behoben wurde das lange nicht, weil diese Funktion bei uns selbst in Tests deaktiviert war.
Aber der Reihe nach.
Zunächst die Theorie
Das Optimieren und Berechnen von Routen aber auch das Geocodieren von Adressen, sind aufwändige Prozeduren. Im Hintergrund laufen mehrere Algorithmen und es werden mehrere Services auf unseren Servern aufgerufen. Jedes Mal von Neuem. Das kostet nicht nur Zeit, sondern uns auch Geld.
Um zu vermeiden, dass nun diese Kette von Prozeduren jedes Mal ausgeführt wird, obwohl wir vielleicht schon einen Umlauf berechnet haben oder eine Adresse geocodiert wurde, speichern wir die Ergebnisse in die Datenbanken der Kunden. Wann immer ein Umlauf geladen wird, der in der identischen Form schon einmal berechnet wurde, wird nicht mehr auf den beschriebenen rechenintensiven Prozess zugegriffen, sondern es werden die vorher schon gespeicherten Ergebnisse wiederverwendet. Dieses Verfahren nennt man Caching.
Der Cache kann die Ladezeiten in VIA halbieren.
Das ist das Problem
Der Cache umfasst bei manchen Kunden mittlerweile mehrere hunderttausend Einträge. Das ist eine enorme Datenmenge. Eigentlich ist das ein echter „Schatz“, weil wir so sehr viel Zeit und Kosten sparen können.
Nun haben wir aber festgestellt, dass bei manchen Kunden das Durchsuchen des Caches mittlerweile deutlich länger dauert, als die tatsächliche Rechenoperation über die angesprochenen Prozeduren.
Mit anderen Worten: wenn wir den Cache deaktivieren wird VIA bei einigen Kunden schneller, obwohl eigentlich der Cache für Geschwindigkeit sorgen soll.
Dass ein Cache ein Programm langsamer machen kann, ist (leider) gar nicht so selten. Wie oft haben wir alle in unseren Browsern den Cache schon löschen müssen, weil es irgendwelche Probleme gab. Das Betriebssystem Windows wird seit Generationen auf magische Weise schneller, wenn man es neu installiert (und dabei den Cache löscht). Beispiele dafür gibt es also viele dafür.
Warum ist das nicht aufgefallen?
Warum uns das bisher nicht aufgefallen ist hat folgenden Grund:
Wenn wir uns als SLN bei den jeweiligen Kunden anmelden und auch wenn wir VIA hier intern testen, ist der Cache bei uns deaktiviert. Ergebnisse, die VIA uns zeigt, sind also immer „frisch“ berechnet. Der Cache sorgt nämlich auch dafür, dass wir Änderungen an den Algorithmen nicht testen können (die werden dann ja gar nicht erst verwendet) wodurch wir eventuelle Fehler nicht finden könnten.
Darum haben wir VIA so eingerichtet, dass der Cache für SLN gar nicht erst verwendet wird, wodurch aber auch Probleme, die mit dem Cache in Verbindung stehen könnten, bei uns nicht auftreten. Gleichzeitig haben wir auch gar nicht darüber nachgedacht, dass genau die Funktion, die alles schneller machen soll, zum Flaschenhals werden könnte.
Was ist jetzt geändert?
Wir wollen den Cache nicht deaktivieren, auch zurücksetzen ist für uns keine gute Alternative. Wir mussten also einen Weg finden, wie wir den bestehenden Cache weiter nutzen können, aber das Durchsuchen dessen deutlich verbessern.
Ich will Sie hier jetzt nicht mit technischen Details überfordern, nur so viel: das ist uns gelungen. Der Cache in Ihren jeweiligen Datenbanken wird nun mittels eines anderen Algorithmus durchsucht. Wir können so den bei Ihnen individuell aufgebauten Cache weiter nutzen und gleichzeitig so schnell machen, dass es wieder Geschwindigkeitsvorteile gegenüber den „echten“ Prozeduren hat.
Die entsprechenden Änderungen sind bereits umgesetzt.
Fazit
Wir lernen noch immer jeden Tag dazu.
Mir ist es wichtig, ehrlich mit Ihnen umzugehen. Wir hätten jetzt schreiben können „VIA ist jetzt viel schneller“ und die wahren Gründe wären verschleiert. Stattdessen finde ich es aber fairer die wahren Gründe zu kommunizieren: wir hatten hier einen blinden Fleck, der dazu geführt hat, dass VIA nicht die Nutzungserfahrung bringt, die Sie erwarten können und die wir bereit stellen wollen.
Wir haben das behoben und sogar noch verbessert und hoffen, dass es sich bei Ihnen spürbar auswirkt.