Még kisebb adatforgalom a menetrendek frissítésekor

Egy frissen bevezetett fejlesztésnek köszönhetően a mai naptól körülbelül 20%-al csökkent a menetrendek frissítéséhez szükséges adatforgalom, így a budapesti menetrendi adatok frissítése alkalmanként már csak kb. 750 kB, a vidéki menetrendek frissítése pedig városonként 25-75 kB adat letöltésével jár majd.

Budapesten átlagosan 2 naponta változik valami menetrendekben, így a sűrű frissítések elengedhetetlenek a megbízható működés érdekében. A kezdetektől fogva kiemelt célunk volt, hogy ez minél kisebb adatforgalommal valósuljon meg, a mostani fejlesztés pedig egy újabb lépés ebbe az irányba.

A fentiek működéséhez az app viszonylag új verziója szükséges, így ha még nem tetted, frissítsd a Google Play-ről vagy az App Gallery-ből. Ha a technikai részletekre is kíváncsi vagy, görgess lentebb.

Technikai részletek

A menetrendek offline tárolására a legtöbb hasonló alkalmazással ellentétben egy teljesen egyedi formátumot használunk, melyet kifejezetten a gyors működés és a kis méret érdekében fejlesztettünk ki, még 2012 végén. Az így készült adatbázis mérete Budapesten tömörítés nélkül mindössze 2 MB körül mozog, ez tartalmaz minden adatot, ami a menetrendek megjelenítéséhez és az offline útvonaltervezéshez szükséges. (Összehasonlításul a BKK aktuális GTFS adatbázisa, amelyből dolgozunk, 48 MB-ot foglal tömörítve, és 365 MB kibontva – ehhez hozzáadódnak még a MÁV elővárosi menetrendjei is, tehát optimalizálás nélkül közel 500 MB-nyi adatról lenne szó).

A menetrendek frissítése a kezdetek óta tömörítve történik, melyhez a jó fájlméret/sebesség arány miatt GZIP tömörítést használtunk. A tömörített adatbázis mérete így nem sokkal 1 MB alatt volt, majd a Zopfli tömörítőre történő átállással ez további 3-4%-al csökkent. Így alakult ki az eddigi kb. 950 kB-os fájlméret, amely évek óta a legkisebb volt a hasonló alkalmazások között.

A mostani fejlesztéssel a Brotli tömörítésre tértünk át, amely elődjénél lényegesen jobban tömörít, hasonló kibontási idők mellett. Esetünkben ez további kb. 20%-os méretcsökkenést eredményezett, így egy átlagos budapesti menetrendi adatbázis mérete becsomagolva most már 750 kB körül mozog. A fejlesztés nem csak a felhasználók számára jelent kevesebb adatforgalmat, de számunkra is segítség: a menetrendi frissítések havonta kb. 2 TB adatforgalmat generálnak, így a fejlesztéssel minden hónapban több száz gigabájtot takarítunk majd meg.

Az új tömörítést az app a 3.0-s verziótól kezdődően támogatja, amely május közepén jelent meg. A korábbi verziók továbbra is a régi megoldással tömörített adatokat fogadják majd, így érdemes frissíteni.