Sep 15, 2009

How to minimize the number of logging data

In the last week, I proposed an idea to my boss about minimizing logging data.

The idea is simple. Assume that we have a deterministic system. We want to debug the system, so we need some logging data to analyze the problem. Since the system is deterministic, if we give it the same input, it will respond the same output. So we only need to log the data coming into the system. If we made the system deterministic, we could avoid logging in the internal of the system. It can save a lot of logging bandwidth.

However, my boss thought it is impossible. He said, "It's impossible to log all incoming data of the system, because we cannot log all incoming electromagnetic waves. We can only log the data like the XOR of the electromagnetic waves." I tried to explain to him that we only care about digital systems, therefore we can focus on 0's and 1's, but he still very persisted that electromagnetic waves are impossible to log. It's near the lunch time, so I quickly ended this unpleasant conversation and went for my lunch.

After few days, I started to wonder "what is the XOR of electromagnetic waves?". XOR is a Boolean operation, how to apply it to continuous signals? Another thing I wondered is "what is the maximum input of a 3.5G mobile phone system ?" I thought the answer should be below 15Mb/s, because the maximum data rate of HSDPA is 7.2Mb/s. The HSDPA protocol overhead should not exceed the amount of data. If our system were deterministic, the minimum number of logging data rate should be below 15Mb/s. As a result, the data rate is ok to transfer by merely an USB cable, am I correct?


dilorenzo1987 said...

Your blog really rocks! Your article "How to self sign 64 bit driver on Vista 64 for driver testing" helped me to repackage a unsigned driver for Windows Vista/7. Thank you.

Owen said...

A great idea.

(Assume that you are talking about logging and debugging the modem subsystem)

I believe there's timing issues to consider: When you re-play the logged incoming data on the system, you have to make sure that the timing is exactly the same as that of the original scenario. This may be hard to achieve on a real (and mature) system if the re-playing mechanism is not considered in the very beginning.