Hacker News new | past | comments | ask | show | jobs | submit login

In 2003, I was working for a startup in India doing GPS/GSM based vehicle tracking system for fleets of trucks. The trucks would have our unit installed in them, and they would use GPS to get the location and send it to our server via GSM text message. Back then, GSM coverage not good, and trucks would go out of coverage for days. To further complicate matters, our firmware used to crash and the unit would stop sending updates.

To help us troubleshoot this, my boss asked me to program the unit to give a missed call to the server every hour. If we got a missed call, we knew that unit was still working. In countries like India, giving a missed call is a zero cost way to communicate. For example: You would pull up in front of a friend's place and give them a "missed call" to let them know that you are waiting outside etc.

Anyway, I implemented the logic and we sent off our field techs to intercept trucks at highways and update the firmware.

The way I implemented the logic was the unit was to call our server's modem number every hour at the top of the hour. No random delay nothing. So, soon after that, around 50 units tried to call our server at the same time. Remember the clocks in the units are being run off GPS and they are super accurate. This caused our telecom company's cell tower BTS to crash. Cell service in my office area, a busy part of Bangalore, was down for a whole 2 hours.

I was called into the telecom company's head office for their postmortem. They didn't yell at me or anything. They were super nice. In fact, when I finished explaining my side of the story, one of their engineers opened his wallet and gave a hundred rupees to another guy. Guess they were betting on the root cause. From what I understand, they escalated the bug to Ericsson who manufactured the BTS and got it fixed. For my part, I added a random delay and eventually removed that feature.




I've heard similar story about a DNS server: 100 processes would startup at same time, do DNS query, DNS server crashes. 100 processes then retry automatically... exactly 1 minute later. Another crash :) Repeat until human intervenes.



Cool story. While not the same thing, the last line reminds me of exponential backoff.

BTW, the term "missed call" may not be familiar to people outside India. For those not familiar, it's ringing a number and them disconnecting before they pick up. Serves to notify them that you called :)


I would assume the term "missed call" is both obvious and universally implemented (as in phones show the message) but I could be wrong on that last part for a few places I guess.


True, I did think that - since it is a pretty obvious idea that anyone can think of - to use it as a signal to the called party, but was thinking more in terms of India being a less rich country (broadly), so more people may do it here to save money :), since, though it's only a little each time, it can add up if one calls people a lot. On the other hand, India nowadays has very cheap mobile rates compared to many other countries, I've read.


We call it 'ringing' in Hungary and it's a pretty common practice.


"Perdida" (from "llamada perdida") or "toque" (slang) in Spain.


In the (U.S.) amateur radio world, this has been referred to as a "one-ringer" for at least 25 years.


Interesting ...


squillo in italy ;)




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: