RaceTools v2.77 – Faster session restore, easier updating.

For the first 8 years of RaceTools, the focus was on new features as the feedback and suggestions from dozens of race engineers and strategists made their way into the software. The focus for the last couple of years has been ease of use; trying to corral all of the features and options into something more manageable. Some new features were added but most of the work was in refining existing features and making them work more consistently across the software. The configuration window helped consolidate many of the options into one location and the addition of tabs helped manage the many popup reports that have been added to the software.

During this off-season, the priority was solidifying the interface and optimizing some of the slower operations. This involved reworking the logic behind some of the slower reports, speeding up replay files, jump to replay files to start a replay at a certain point and adding the ability to save and restore the data of a session in native format to cut session load time from minutes to seconds. This last feature also changed my approach to address the issue of starting or restarting software mid-session. Instead of replaying an archive of the session or loading a database snapshot of the session, the software can now save/load the memory block of data. Combined with the Relay Server feature (which distributes the incoming data stream to other instances of RaceTools), one can now get a snapshot of the session up from another instance of RaceTools within seconds. The limiting factor is usually the network speed. Compressing the data (the data compressed by 7-8 times) shaved more time off the process, especially over a slower network. The result is that you can now start/restart an instance of RaceTools and get all of the session’s data within seconds. A 10 hour race restored in less than 3 seconds over a slow LAN (20-30mbps) and less than 1 second from a file.

In our continuing efforts to make the software easier to use, and because the software is updated frequently, I’ve added a Check Update and Install Update feature to allow you to quickly check for new versions of the software, and if you choose, to download and install the software all from within the application. I know that you might not want to update your software frequently, but if you do, I’m trying to make it easier.

Versions prior to 2.77 expires on December 31, 2015 so if you are renewing your software license, you will need to update to this version to continue using it in the new year.

What’s next is largely dependent on you. If there are things that need to be fixed or features added, please let me know so that I can prioritize it. If you’ve told me before, tell me again. Sometimes I forget.

New Features since the end of the season:

Save/Load Session Stream
From the first release of RaceTools there were two ways to load or restore a session. One was to do a replay. This is still the most reliable way and is completely backwards compatible from version to version. The second was to load the data from the session database that it updates with the live data. This was usually effective but often slower than doing a replay on a long (over 1 hour) session. The two uses of restoring a session are to be able to pull up reports after a session or to resume a session if a machine crashed or was started after a session started. In the latter case, there is no time to lose so I did some research on how to save and restore the program state and the session data in the most efficient method. The new Save/Load Session (stream) is the result of this work and now you can load a session in seconds (often less than 1 second) and have all of the data for a session available. This involved reworking some of the reports to use memory objects instead of the database, but that also had the effect of speeding up the reports so it was a win-win situation.

The main caveat is that the session data is not saved in real time. It is only saved when the session goes COLD, when you exit the software or manually with the Save Session menu option. The Load Session process is the same but by using the ‘*.bin’ file instead of the ‘*.abs’ file, you can reduce the load time from minutes to milliseconds with typical load times of less than 1 second. The software still generates the .ABS files and you can still load data from the database, but it’s use may be deprecated in the future. Most reports no longer use it.

2015-12-05_10h53_03

Relay Server w/Get Session feature

The Relay Server was added mid-season to address the per connection pricing of the WEC/Al Kamel timing and scoring feed. By enabling the Relay Server, other instances of the RaceTools software can get a copy of the data stream so each instance of RaceTools can become a data distribution point. I recommend only using one or two per it stand so that it doesn’t complicate things. One issue was what to do about machines that connect after the initial machine had connected to the server. The initial burst of data might not be repeated so I planned on caching and resending this data. With the implementation of the Session Stream feature, I was able to save and restore a whole session’s worth of data in seconds so the need for replaying the data stream or sending a cache of data to connected clients became a moot point. It would be more useful and faster for the client to just request the session data from the Relay Server.

The new Relay Server feature now supports requests for the session stream snapshot from clients. To get a snapshot of the session, issue the ‘Get Session’ command from the main File menu and RaceTools will connect to the Relay Server and get a copy of the session data. This typically takes 2-3 seconds on a LAN and less than a minute over a reasonable Internet connection. With the compressed stream format, the (shortened) Petit Le Mans race data fits in 3.8 MB.

2015-12-05_10h52_20  2015-12-05_11h05_59 2015-12-05_11h06_11

If you want to try this feature, you can issue a GET SESSION request to Server: livetiming.net Port: 9000. The data is from an IMSA race, but the concept is the same regardless of the version.

About w/Update
The About window has been made easier to read and added the option to Check Update, Download (update) and Install Update.

RaceTools is update frequently, probably too frequently for many of you. To help you keep up to date with the latest version, I’ve integrated the Update function into the software so that you don’t have to leave the software to check and get the latest version. The About window is also more descriptive and readable. To get the latest version of the software, click on Check Update, Download, then Install Update. The software will take care of the details and replace the current copy with the updated version.

2015-12-05_11h07_11

I hope you like the new enhancements. As always, please send me your suggestions, feedback and bug reports so that I can make RaceTools better.