3 ms·
It is possible to fix the max latency problem. If you have K distinct queries, just make sure that each such query is answered by N servers. If you do this you
by strictfp 15y ago
It is possible to fix the max latency problem. If you have K distinct queries, just make sure that each such query is answered by N servers. If you do this you go from worst latency amongst all servers to worst latency amongst all N-tuples. Overall latency will then approach average of the slowest distinct query as N increases.
- jamesaguilar 15y agoBut then you have to write the data N times, and writes are expensive too, especially to flash, as someone else pointed out in this thread.
- strictfp 15y agoTo me the main argument was that the algorithms don't scale, and not even SSDs can help to alleviate that. This is true since you are always bound to the worst time. By spreading the load as described, you aren't anymore, so the problem which the SSDs were supposed to solve simply isn't there anymore. And even if you would like to avoid those SSD latency spikes, said algorithm would work wonders (given that blocking due to erase occurr randomly). You can then wait for first successful write for example.
- mvgoogler 15y agoSure. It's trivial to arbitrarily reduce the probability of this one issue by throwing N times the hardware at it. Now you have to deal with the problems of: 1) Buying, powering, managing, etc N times the hardware. When you buy hardware by the warehouse, this will be a big bill :-) 2) Since you are now increasing your network traffic, power, etc. by at least N times, it is very likely you will hit another problem that produces latency spikes. Or, as Chris Colohan likes to say: "If you think solving problems is massively parallel computing systems is easy, please come join my team" :-)
- strictfp 15y agoI'm not saying that its easy, but the problem formulation in the article is simplified enough to be solved by this method. So I guess that my major objection is how the problem is stated. Also in practice you don't really need N times the hardware. You pick out the queries with the worst jitter and either solve it or install two or three of these services, and you are good to go. To summarize, I agree with you in principle, but would like to add that the method still is sound, but perhaps not in its most extreme form.