This release brings a lot of improvements related to Timeline generation, Import process and new UI pages.
Improvements
- Timeline Generation Performance: The memory usage during timeline generation has been significantly reduced by streaming GPS points from the database instead of loading them all at once. Now the system loads 10K points, processes them via Timeline generation algorithm, loads another 10K points and so on. I tested on 4.1 million GPS points - additional memory consumption was +30MB. On my laptop whole process took about 5 minutes. Thanks to Timeline job page (see Features above) you can clearly see the progress.
New Features
- Places Page: A new page has been added to view detailed information about a specific place, including statistics
and a history of visits. You can access this page from the timeline by right-clicking on a stay and selecting "View all visits to this place" or from the Geocoding Management page or from the Favorites Management Page.
The page looks like this:
- Favorites Management Page: A new page has been added to manage your favorite locations. You can now view, add,
edit, and delete your favorite locations from a map-based interface. Available from menu "Favorites Management" or by direct url/app/favorites-management - Timeline Tracking Job: A new feature has been added to track the real-time progress of timeline generation jobs.
You can now see the different stages of a job (loading and processing GPS points, resolve Geocoding data, etc). Every time a new Timeline generation job is created you can see inline detailed progress - what exactly the job is doing. New Timeline generation job is created when you import data from Import page, when you add or delete Favorite Location, when you change parameters on the "Preference" page (timeline related settings) or when you forcefully click on "Regenerate timeline". You can always view current Timeline Generation job via url/app/timeline/jobsor from thePreferencespage (button "View Active job").
Timeline jobs are persisted in memory only for 12 hours, they are not stored in the database.
This is how inline status looks like:
Detailed job (when you navigate to job details):
During Import you can also see what Timeline job is doing:
Bugfixes
- Concurrent Timeline Jobs: Validations have been added to prevent multiple timeline generation jobs from running
simultaneously for the same user. This improves the stability and reliability of the timeline generation feature.- High Memory Usage: The high memory usage during timeline generation has been fixed by changing the way how data is loaded and stored during this process.
- Frontend Performance: The frontend performance has been improved by fetching GPS points for a trip on demand when
the user opens the trip details dialog.