How Did Dropbox Scale To 175M Users? A Former Engineer Details The Early Days
techcrunch.com
techcrunch.com
I mean, this passage reads like timecube (up until the very end where it becomes somewhat more cogent):
Out of this came some learning such as, in terms of app
specific metrics such as ease and ‘fooplroofness’. Plus,
it emerged that “most graphs are useless”. Instead they
built dashboards to analyze the performance; they always
put lefts on values (like failed log-ins etc); and they
kept some slack such as: extra queries were memcached, and
delayed optimization of SQL queries.http://eranki.tumblr.com/post/27076431887/scaling-lessons-le...
which covers some of the points in the TC article.
My only suggestion for choosing technology would be to pick
lightweight things that are known to work and see a lot of
use outside your company, or else be prepared to become the
“primary contributor" to the project.
This should be put on a header for anyone considering the sexy new thing to come out, be it Node.js, MongoDB or the bazillion JS frameworks etc... Not saying you should avoid these altogether; just be prepared to iron your own wrinkles if you ever intend to become popular.If all of your apps save directly to Dropbox your 'hard-drive' and thumb-drive are no longer important, and in that way they are 'replacing' the hard-drive, even if not in technical terms, the sentiment is correct.
That's not possible, since your local storage will always be faster than a networked one.
Network storage has always been slower than local, and until we get 10Gb to the home, will continue to be so.
For everybody's most important app, the browser, local storage is already basically irrelevant. That's trained people to be perfectly fine with little network delays. Things like Google Apps show that data and apps can easily live elsewhere and it's basically fine.
In the long term, I think the only question is whether data+apps will live together with the app provider, like Google Docs, or whether data storage will stay generally separate, as DropBox would surely prefer.
There will still be some of us who keep big local drives because we really want to know where our files are and control their movements. But for everybody else, local storage will just be cache. Which means whether it's spinning rust vs flash vs RAM is an optimization detail. And that decision will mainly be made by hardware product designers, not users.
An interesting thing to think about in this context is how the long-term costs of storage are falling. In the last 20 years, RAM is ~4 orders of magnitude cheaper:
http://www.jcmit.com/mem2013.htm
Flash is an order of magnitude still cheaper for now. But if networks keep getting better and services like Dropbox get more solid, that may not matter. If you assume trends continue, then putting half a terabyte of RAM in a device may be cheap enough that the added complexity of flash just isn't worth it.
Yeah - this question intrigues me. I wonder how Dropbox intend to expose all the useful "filesystem meta data" to all the relevant OSs? How is Spotlight on my Mac going to work if local storage is not cannonical? How am I going to grep an entire "local" git repo if the files are mostly not local?
And I wonder if Dropbox even care about those things? Are they both indicative enough of a "power-user" and that they know the "mass market" isn't ever going to ask those questions, when presented with a "home-machine-less Dropbox" which they can access mainly on their phone/tablet, and occasionally on a shared/borrowed/rented full sized laptop/desktop machine?
You don't always (perhaps even "often") _need_ the raw speed available from locally attached storage. Sure, I'm not going to do video editing or keep my Database indexes or Photoshop scratch disk on internet-connected-storage. But there's lots of files in my homedir that could easily be relegated to "it might take a minute or two to retrieve this file's contents" grade storage…
And Dropbox _already_ has a ton of data on how people are using Dropbox on iPads and similar devices. My iPad _pretends_ to have my entire Dropbox folder locally, but doesn't really. Sometimes that means I need to wait a minute or two while a document downloads over 3G to my iPad while I'm in a café - if that means I get to spend 18 minutes working on that document instead of the whole 20mins I've got available, that's a much bigger win than me spending zero of those 20 minutes working on it.
Microsoft tried that assumption with the Xbox One, and we know how that went. :P
I honestly don't think it's that big a deal to 'scale'. Programs like early wolf3d impress me more, much much more. And of course, things like the recent quine relay leave me demoralized.
Genuine question not snarky. I have even read yahoo's fast website tricks - it's all really hacks and tricks, nothing mind blowing.
What I mean is given some extra time most people can figure things out by some googling and trial and error. This is unlike wolf 3d. Unless you spend considerable time understaning math and graphics you cannot do it.
Scaling a website with exponential growth is very difficult. Fix one problem, two more pop up. It never ends. Oops just spent 50k on SSD's to find out it was a load balancer issue.
Comparing this to wolf3d is comparing apples to oranges as scaling DropBox and implementing wolf3d are entirely different problem domains . But I would say that wolf3d is a much easier problem that's solved by just one man (John Carmack), while DropBox requires tons of resources and hundreds of people with different skill-sets.
I assume you've also got a novel new approach for naming things? (Which, presumably is too long to fit in this margin…)
"There are only two hard problems in Computer Science: cache invalidation and naming things." -- Phil Karlton
From personal experience replace "start to decline" with "not work at all." I don't have much faith in Dropbox's growth if they can't fix this.
So much for even storing my homedir in Dropbox... And they want to "replace the hard drive"? They've got a bit of work to do yet...
they always put lefts on values (like failed log-ins etc)