I'm also wondering why this kind of intervention is necessary at all. The NoSQL solution we use at work has load based automatic splitting, and I'd have thought (though I haven't confirmed) that this would be an obvious feature to include.
I would speculate that it's a poorly-chosen shard key. MongoDB's built-in sharding uses range-based indexing. If you choose user_id as your shard key, and those are autoincrementing integers, then you're screwed if newer users tend to be more active on average than older ones.
Where I work (Etsy) we keep an index server that maps each user to a shard on an individual basis. There are a number of advantages to it. For example, if one user generated a ton of activity they could in theory be moved to their own server. Approximately random works for the initial assignment.
Flickr works the same way (not by coincidence, since we have several former Flickr engineers on staff).
Sounds like a good system. I've noticed that people tend to do things like shard based on even/odd, and then they realize that they need three databases.
I've never had either problem though... but if I ever need to shard I plan on doing it based on object ID. Then one request can be handled by multiple databases, "for free", increasing both throughput and response time.
Actually for anonymous sharding (without a central index) a consistent hash is about the closest you can get to ideal distribution and flexibility. I haven't looked but I presume that's what mongo uses under the hood for their auto-sharding, too.
Perhaps you're right regarding what the comparison is inviting. It might not be suggesting cross-country comparisons, but it's still making a normative statement concerning the ideal. My contention is that it should not do that; it should only focus on the decreased probability of death by reducing speed. Weighting the trade-offs is too objective.
A Canadian paper on US data, not enough people actually live in Canada for cars to approach each other on average. (I'm Canadian, but also making fun of the abuse of averages to describe this data).
My thing is, whatever happened to Google just launching things without announcing them? They still do it for features, but no longer for products. Maybe it's something you can't do with physical products because consumers might postpone their buying decisions for competitors until after the launch. Still, it leaves a bad taste in my mouth when I see us announcing things that are not even nearly done yet.
> Still, it leaves a bad taste in my mouth when I see us announcing things that are not even nearly done yet.
What? The blog post explains that devices running Google TV will go on sale this month. That is, within the next 27 days you will be able to buy a Google TV.
How is that "not even nearly done yet"? Dude, the product goes on sale in less than 27 days. It's probably done.
It was announced many months ago. I'm using this opportunity to talk about how unfortunate it is that we announced it so long ago and are only launching it now. I'm not saying this current announcement itself is a fail. :)
I'm not sure that's true (I'm not sure its not either) but in this case Google hasn't been very open to outside developers.
They have solutions for "optimizing your website for TV" but nothing on the dev page for developers but a coming soon. That and the fact that Android apps won't be available until 2011
They said it would be available in September. Now they say it will be available in October. To me this seems like vaporware, specifically to keep people from buying AppleTV. They still don't have any content deals setup. I haven't heard any big players other than Netflix, which is already available on any Bluray player made (practically).
Where is Hulu? Where is ESPN? These are the networks they need to beat Apple in this market, and they're conspicuously absent. Even Youtube is supposed to have TV rentals "really soon now," but I haven't heard much about that recently.
Why does it seem that the only thing Google can do now is say "me too" whenever Apple releases a new product?
Um, wasn't GoogleTV announced at Google I/O in may, way before AppleTV2 was announced? How do you introduce vaporware to block the sale of something that didn't exist yet?
1. Physical products probably do need early announcements. The new AppleTV launched recently. Knowing GoogleTV is on the way, I'm definitely going to wait and compare.
2. Control the announcement. Since they had to tell developers anyway (to get apps and websites optimized), it's better to announce it then leave to techcrunch, gizmodo, and all the other rumor mills.
I can understand that but in this case its just a timing thing. If this was a July launch they'd probably be more under wraps until closer to launch. But with the X-mas buying season coming up quick they need to get it onto consumer's radars earlier.
Meh, I have trouble believing that spammers cannot experiment to find this number out themselves. The binary search on rate would require only a handful of IPs before you acquire it to a sufficient resolution for working purposes.
That is extraordinarily unlikely. I can't think of more than one or two big products that have ever been totally shut down as a result of patent infringement. It simply is not done.
I always thought so too, but it was surprisingly much less than this at my local Fry's. I didn't opt to buy, but these services ran in the $200-400 range there, IIRC.
> Why can't we get interfaces right? We have all this processing speed available and yet our computers are slow.
My computer is not slow. I rarely see issues like a cursor that is delayed with respect to my typing. What kind of device do you have? Have you actually tried doing any performance analysis to see why it is slow? Did you buy your computer based on it not being slow, or, to put it another way, give an economic incentive to the outcome you want? (Clearly not, based on your post.) Or was there something else you opted to prioritize over that quickness you say you want so much?
I've had cursor-delay happen on every OS I've tried, in nearly every application, unless I was using Vim / the CLI. Except for Windows' CLI - that gets more worthless the more I use it, and is significantly slower than many other Windows tools.
Yeah, what's up with that? NetBeans is great in theory, but I type half a word and have to wait for a second for it to show me completions I don't even want... I've switched to vim completely now, not for any conscious reason, but just for the fact that I found running it to quickly edit a file and then staying there for hours.
It's a Core 2 Quad with 4 GB ram and an Intel X-25M SSD...
I think it's not that your computer is fast, it's that you are slower than your computer. Which do you use more frequently for navigation, the mouse or the keyboard?
On the contrary, almost all of Facebook's data is stored in SQL systems. Cassandra and such were developed as ephemeral stores for certain types of data, like lists of people who "Like" certain things, but ultimately even that data is backed by SQL. (As far as I understand from my friends who work there.)
Maybe. On the other hand, people do things every day for the love of it that get little traction in the market place. It seems more likely this confluence is just a coincidence.
Malcolm Gladwell writes books about "success" where he uses many anecdotal (albeit fascinating) stories to come to a very vague conclusion of how people can be "successful". GP was referring to "qualities of success" (passion, writing something for yourself), which don't necessarily cause success.
Not just coincidence. I've bought quite a lot of indie games the last few years but Minecraft is one of the few I recommend, no, urge my friends to buy.