This article is more than 1 year old

XML daddy eyes code riding storage metal

The 'stressed stack' future

QCon 2009 Tim Bray, co-inventor of XML and Sun Microsystems’ Director of Web Technologies, found himself manning “the hangover slot” to give the morning keynote at day two of the Qcon developer conference in San Francisco on Thursday.

“And dear god, I’m going to be talking to you about storage,” he said to his limp-but-game audience. “Congratulations for having the fortitude to come out for this.”

A lot of the storage ground rules are changing, Bray said. The buzz is around the evolution of the metal: “spinning rust” versus “volatile silicon,” hard drives versus solid-state drives (SSDs). But it is new approaches to the “stressed stack” of software riding on that metal that developers should be watching: the app code, the object-relational mapping (ORM) layer, the DB engine, the OS and file systems, the underlying caches. Some version of this stack exists behind most big Web sites today, he said. “Unfortunately, a lot of this stuff sucks,” he said. “It’s painful and difficult and we need to find better ways. Fortunately, there are better things on the horizon.”

Bray gave attendees a look at some of the changes he sees “out there in the discipline” manifesting in some tools, trends, and technologies that should be on their radar. Among them:

  • Memcached: a high-performance, distributed memory object caching system designed to speed up dynamic web applications by alleviating database load. Danga Interactive developed memcached to enhance the speed of its LiveJournal.com. The site reports 20 million-plus dynamic page views per day for a million users. “This is not theory, but practice,” he said. “A large portion of the world’s highest performing Web sites are running this thing. And there are lots of competitors out there, too.”
  • ActiveRecord: A Ruby library delivered as part of the Rails framework. It allows Rails to interact with a database without the need for database-table-to-object mapping. ORM, which really sucks, is based on decades-old thinking, Bray said. “Up until four or five years ago, there were many people, myself among them, who started to think that OR mapping was a bad idea,” he said. “Then ActiveRecord came along and changed a lot of minds. It got a lot of things right and allowed people to deal with things in a more idiomatic way.”
  • Drizzle: A new, light-weight derivative of MySQL that relies on best-of-breed internal libraries and eliminates support for obsolete platforms. The project is lead by Brian Aker, a principal engineer for MySQL at Sun, who forked the popular open source DB to create a database optimized for cloud and web applications. Bray called Drizzle “the most interesting database project going right now.”
  • The Apache CouchDB Project: Written in Erlang, it’s a distributed, document-oriented DB accessible through a RESTful HTTP/JSON API. It features robust, incremental replication with bi-directional conflict detection and resolution. And it’s queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language. “After a while, we started to think, maybe the database doesn’t have to be 100 percent relational,” Bray said. “And that’s why we’re seeing a big splash with these kinds of document-oriented databases. The notion of having views expressed in Java rather than SQL is compelling. I’m infatuated with it. Other grizzled geeks are infatuated with it.”
  • Gemstone’s Maglev: Bray called it “Ruby that scales.” It’s an implementation of Ruby that sits on top of the company’s Smalltalk engine. “Those Gemstone guys are making a fairly heroic run with this thing,” Bray said. “They want to get Ruby on their Smalltalk VM and make Rails run a hundred times faster, simply by not doing the OR mapping, to make ActiveRecord into an empty shell. So far it’s mostly just hand waving and attractive talk, but they are well worth watching.”

What is the future of the stressed stack? “It’s all a moving target,” Bray said. “But that means it’s a good time to be in this business. Time was if you were building a serious, non-trivial, web-facing application for people paying real money, you had to use Java EE or .NET, and the OR that came out of the box, and Oracle, and this and that and the other. These days, you don’t have to do any of that stuff, and people won’t look at you like you’re crazy. And that’s a good thing.” ®

More about

TIP US OFF

Send us news


Other stories you might like