

Just-In-Time Scalability - eries
http://startuplessonslearned.blogspot.com/2008/09/just-in-time-scalability.html

======
jacobscott
Interesting slides, I like the rocket ship/driving analogy. A few
quibbles/clarifications:

From slide 13: "Learning: cross shard joins & transactions aren’t required"

Do you mean that there was never a time where you had to do a join or
transaction between shards? Would this in turn imply that your data was
embarrassingly parallel?

Also, just-in-time here seem like it refers to rapid architecture iterations.
I was expecting something ec2/appengine-ish, maybe this is just a problem of
terminology overloading.

~~~
eries
I'm not sure who would be embarrassed if our data did turn out to be that
parallel :).

IMVU has a pretty typical data profile for a social network + IM site. We
worried all the time that we would have to build a really fancy distributed
transaction engine. We started by just doing all of those transactions on the
centralized master database. Since we were incrementally moving load off the
master as-needed, we just did those tables last.

Turns out, that approach lasted more than three years, much longer than we
ever anticipated given the rapid growth we experienced over that period. Of
course, we did eventually have to tackle it, which we did by building a
"durable message-passing" system.

As for terminology, you're completely right. We started using this term a few
years ago, so it wasn't quite as overloaded as it is today. I am sometimes
surprised how much more time and energy seems to be given over to thinking
about the hardware, as opposed to the architectural, aspects of scaling.

~~~
furiouslol
How did you handle the autoincrement id problem with distributed databases?
Did you replace them with hashes?

~~~
eries
When absolutely necessary, we would solve this by keeping global (centralized)
ID's in an autoincrement table either on the master or on a vertical shard. It
didn't come up that often, because most tables (in our app) are really
dedicated to one specific entity (ie a customer's inventory items).

------
furiouslol
I really like the solutions that you guys come up with. Instead of complex
enterprisey solutions, you came up with simple, smart hacks like adding
executable logic as SQL comment.

------
eries
Good point. Sorry about that. I just posted a PDF version, let me know if it
works for you:

[http://www.speakeasy.org/~ericries/Just-In-
Time%20Scalabilit...](http://www.speakeasy.org/~ericries/Just-In-
Time%20Scalability_%20Agile%20Methods%20to%20Support%20Massive%20Growth%20Presentation.pdf)

~~~
cte
Sweet! Thanks.

------
cte
PPT makes me sad :( I want to read about your JIT scalability, but I'm a lazy
linux user!

------
furiouslol
Upload it to slideshare.com

