Irrespective of the FB part, the article made me hypothesize about the actual algorithmic changes that caused this problem.
My first hypothesis was to think, Ok, the old algorithm had a hard limit on (no of re-calculations/executions of the calculating function) and with the new algorithm that was removed..
Almost immediately, i realized that’s the brute force first idea, but not likely to be true. An organization as big as NASDAQ, grew up that big with having some set of processes. There ought to have been atleast 2 stages(code review and/or pre-prod testing(i don’t really buy that it’s hard to simulate these conditions excuse in this case. The algorithm was designed to calculate pre-IPO prices based on bids by traders. I might buy there was a Fermi estimate on the max. load (while simulation) which was exceeded by facebook IPO)) which noticed that simple a blunder.
The more likely change would have been than that the developer wrote a different termination condition and managed to convince everyone involved and the process that the new termination condition is better and does ensure termination. Now this is where my lack of knowledge of the actual algorithm/code hinders any progress. The article doesn’t say but implies it was written in java and run on a jvm. But that doesn’t help much, given i really haven’t worked on java for a long time.
I would love to know, what/how it went, but have no way of finding out. So am just calling out to people who have better knowledge of the jvm to expand on the more likely change.
Please comment your ideas/suggestions.