Synchronizing logs on multiple servers

Unfortunately there is no limit to the number of things that you could not anticipate and that go wrong while designing and running an experiment with human subject. I have to admit that this bug i found in my current design could have been anticipated with some more test. However that was not the case, so I found myself trying to re-synchronize the logs of each experiments which are stored on multiple machines, with their relative a-synchronized clock.

One of the limit of using 2 eye trackers is that if you need to confront the data you must have extremely well synchronized clocks, in the order of 50 milliseconds. Windows has a systematic lack of support for this kind of precision so I had to find other solutions, like using an atomic clock synchronizer. But even with that, the golden rule is: trying to keep the least number of machine involved in the data collection.

In my case I have three: two eye-trackers (windows) and a server which handles the messaging system (linux-box). After realizing that the clocks of the three machines have variables delays that change over time, I elaborated a strategy to re-sync the logs. It consists in watching the videos sampled on each eye-tracker at 15 frames per second and look for a specific event that appears almost at the same time in the two machines, like a message being posted on the server. Then I have a common event on the three machines that, besides network and processing delays, happened in the same ‘absolute’ moment. From there is just a question of doing the math.

Experiment Re-Synch

The silly thing is that is not possible to automate this algorithm with a script, so I had to watch all the movies for extracting the relevant info. It turned out that also doing the math was somehow brain consuming, so I ended up offloading progressively my cognitive charge in favor of a paper based grid.

Paper Grid Synchronization

Here some more about my experiment.

Tags: , ,

Leave a Reply