relational for what? [was: Design Principles Behind Smalltalk, Revisited]

Joshua Gargus schwa at fastmail.us
Tue Jan 2 23:21:48 UTC 2007


(I see that the conversation has moved along since the time that I  
started to draft this, but here goes...)


On Jan 2, 2007, at 11:10 AM, J J wrote:
> Sanity check:  google is trying to keep a current snapshot of all  
> websites and run it on commodity hardware.  You could do exactly  
> the same thing with a lot less CPU's using a highly tuned,  
> distributed RDBMS.  They chose to hand tune code instead of an RDBMS.

What, really?  There are many possible reasons that Google don't use  
an RDBMS to index the web: stupidity, arrogance, excessive cost of an  
RDBMS, sound engineering decisions, or a combination of these.

According to the computer systems research community, Google has  
sound engineering reasons for its architecture; they have published  
papers at top conferences such as OSDI and SOSP.  See http:// 
labs.google.com/papers ("The Google File System" and "BigTable..."  
might be the most relevant to this conversation).

That's not rule out the possibility of stupidity, arrogance,  
excessive cost, etc..  But it does cast doubt on the unsubstantiated  
claim that Google could "do exactly the same thing with a lot less  
CPUs".

>
>> Finally, in world with great distributed computing power, is  
>> centralized transaction processing really a superior model?
>
> Some people seem to think so:
> http://lambda-the-ultimate.org/node/463
>
> And there is more then that.  I believe in that paper (dont have  
> time to verify) they mention that hardware manufacturers are also  
> starting to take this approach as well because fine grain locking  
> is so bad.

As you mentioned in a follow-up email, this wasn't the paper you  
meant.  Although it has nothing whatsoever to do with RDBMSes, I  
would recommend anyone who has enough free time to learn enough  
Haskell to read that paper.

Did you happen to find the intended link?

>
>> - Working with other applications that are designed to use RDB's?  
>> Maybe, but that's a tautology, no?
>
> Again, one has to work in a large company to appreciate the nature  
> of enterprise application development.

I have no doubt that you're right, but it doesn't answer the  
question: what is it that RDBs *fundamentally* get correct?  It's  
quite like the easy but unsatisfying answer to "why is Smalltalk so  
great?"... "well, you can't appreciate it unless you've grokked  
Smalltalk".

Certainly RDBs are essential to the operations of the modern  
enterprise, but how much of this is because RDBs are really the best  
imaginable approach to this sort of thing, and how much is due to a  
complicated process of co-evolution that has resulted in the current  
enterprise software ecosystem?

Josh




More information about the Squeak-dev mailing list