Also, financial systems are designed bottom up with integrity as well as scalability in mind, by experts for high-volume transactional systems.
That is probably not how Waze started. I would not be surprised if Waze started as a single CPU, that got replaced with a handfull of CPUs as the load got too high, then ever growing organically, somehow just coping with the need.
This can work only as long as growth in users and in CPUs needed is somehow lineairly correlated which means that 3 times the number of users need 3 times the number of servers. Probably this is not the case with Waze; there are many effects in a complex system like this that make that correlation NONlinear. For instance: the closer Wazers are on the map, the bigger the chance that an event reported by one Wazer forces rerouting by whole hordes of Wazers nearby. Routing that takes place in a map that gets ever more detailed over time (anyone *reduced* the number of streets in his area, lately?), that needs ever more time and power to maintain indexed, to create ever more square km of tiles. So - if the number of Wazers doubles, the number of servers may have to triple, or quadruple. You can tweak a system like that forever, adding an index here, an extra table there, but to make a significant gain in performance that way you will make the system more complex and prone to failure.
From what I gather, Waze has made architectural changes in the past. Currently the architecture is allowing it to maintain serverfarms in Amazone, thus keeping pace with a lineair growth. Technically, they may order a bunch of servers today and have them operational tomorrow - as long as there is a budget for that. You could create clones of machines, basically reducing the chance that one of them breaking can stop the whole system. Perfect. But there is a tradeoff; every machine you add into this can either create extra capacity, or extra redundancy - but not both. This is where the strategic decisions work out - going for more users, or for a reliable service. You will end up with more servers than google yet loosing out in reliability, as the more components a system has the more vulnerable it gets. So, you really should have double everything to be safe. Imagine the budget it takes!
Waze may go for capacity, but when lightning strikes we are left in the dark. 1 flashstorm at the wrong place and you are game.
When growth of users gets *exponential*, doubling every few month or so, there is no way the need for "Wazepower" can be satisfied with an exponential growth in serverhardware. It is very clear that something has to be done.
Personally, I think that Waze should take the crowdsourcing-concept to the next level. Imagine that Waze could go the SETI way and have its most calculation-intensive functions running on *YOUR* hardware. No, not in your iPhone, but on your PC. A screensaver that connects itself with Waze HQ for instructions on what to do, in the background, every time you leave your PC unattended for a few minutes. Waze could reduce its infrastructure to a central database for the map of the world (at several physical locations please) and the distribution of maptiles from the PCs to the clients, and hundreds? thousands? of PCs could do the hard work. If bandwidth is a problem, a peer2peer-style (think torrent) layer could take that worry away. Hey, you could earn Wazepoints with running that screensaver (or a daemon/service/whatever) based on the thruput of your machine. It is enough if a small percentage of Wazers participated in this scheme as 1 could calculate hundreds of rides over a day. There is your scalability!
That would really look like Waze 3.0. I would not mind waiting half a year or longer for a solution like that.
Last edited by fvwazing
on Fri Oct 28, 2011 11:31 pm, edited 2 times in total.
AM for some 25.000 km² around Maastricht, the Netherlands
iPhone 3Gs / iOS 6.0.1