SearchEnterpriseLinux.com recently caught up with Sleepycat Software Inc. CEO Mike Olson to find out what's new with open source Berkeley DB. In these excerpts from that conversation, Olsen talks about where Berkeley DB is positioned in the marketplace, and where it's going in terms of features and functionality.
What exactly does Sleepycat mean when it calls Berkeley DB a developer databse?
Mike Olson: What we mean specifically by 'developer database' is that our software is aimed at professional software developers building applications that they're going to deliver to end users. Relational vendors like Oracle and [Microsoft] and MySQL deliver relational databases to IT shops -- to enterprises that are going to run them in data centers. Berkeley DB is meant to be dropped into applications that either run on a server or distributed to end users.
Who are some of your customers and how do they use Berkeley DB?
Olson: Our customers include companies like EMC that build storage engines that need inside themselves never to lose data. But they don't look to the end user like enterprise applications do. Another example is Google. When you use services at Google where you sign on, you're talking to a Berkeley DB database. [You also talk to Berkeley DB] when you go visit Amazon.com and you hit that page that says, 'Welcome Mark. If you're not Mark click here.' You actually hit the Berkeley DB database more than 800 times to fetch the data that personalizes that page and delivers it to you. None of those looks to you, the consumer, like a relational application or like a database application at all.
How else is Sleepycat different from relational database vendors?
Olson: We view ourselves as very different from relational database vendors. We aim at a different market. We talk to different customers building different things, and we're an ingredient.
Messaging systems from SendMail and Sun Microsystems use Berkeley DB internally to store and forward the email messages that you read everyday. But you don't know about that because you're an email consumer. Likewise, when you look up names on the Web, you have to go to a name server somewhere to figure out what that address is. Well, you touch Berkeley DB when you do that. The [product] that we provide is for programmers who build applications and services. But the data management part isn't the key value that the end user sees.
Can you give me a brief history of Sleepycat?
Olson: Berkeley DB was originally developed at the University of California, Berkeley, hence the name. The software was distributed from the university under what is called a BSD license. It was absolutely for free. You could do whatever you wanted with it. The university didn't care as long as you preserved the copyright notices. In 1996, Netscape Communications was building some enterprise infrastructure applications, specifically something called an NLDAP server. The code from which they started used the academic version of Berkeley DB. But it wasn't very good because you couldn't have multiple people making updates at the same time. If the power was lost at an inopportune moment, your database would be corrupt. As a result, Netscape approached [Berkeley DB developers] about adding features that would make it enterprise grade. As a result of that conversation, Sleepycat was formed.
How do Sleepycat's licensing policies work?
Olson: The license that we chose at Sleepycat for our version of Berkeley DB is even more aggressively open source than the university license. We chose a license that is now called the Sleepycat Public License. It's recognized by the Open Source Institute as a legitimate open source license. It's designed to behave exactly like the General Public License. You can download and use our software for free. When you combine it with an application of your own, the entire source code for the app that uses DB also must be open source.
Of course, proprietary vendors [like Cisco and Sun Microsystems] that use Berkeley DB can't make all of their source code available on those terms. They just can't do it. The good news is that Sleepycat either owns or has rights to all of the intellectual property in the software. The original base software developed at the university permitted us to commercialize it. We added a bunch of new features and new services that we wrote the source code for. We have the standing to write a different license for anybody that needs one.
You have two choices when you come to Sleepycat. You can download and use the software under the Sleepycat public license for free. It costs you nothing. You get no warranties and you have to give your source code away, but lots of people are willing to do that. If you're not willing to do that, you can merely pay us a license fee, and we'll write you a proprietary license. In that case, we look exactly like all of your other proprietary suppliers. We offer the same indemnification in our paid licenses as Microsoft and Hewlett-Packard and all of the other software vendors.
Can you run down the Sleepycat product line?
Olson: We have three different products in the Berkeley DB product family. The product we call Berkeley DB is the thing that we've distributed since the very first days of the company. That is in version 4.3.
We also recently introduced something called Berkeley DB Java Edition. It is philosophically the same product as Berkeley DB, but it's written and designed 100% in pure Java for customers that care about that. [It features the] same services, the same ideas and the same way of deploying services. But it runs in a JVM rather than as an executable program compiled from C code. That product is in version 1.7 and has been shipping for a couple of years now.
We also have something called Berkeley DB XML, which is a native XML database that is lowered on top of our long lived Berkeley DB product. It does XQuery and XPathQuery processing and it understands schema. You can store XML documents natively in the underlying Berkeley DB database and the query processing stuff is provided.
Can you name some of the new features you're working on for future version of Berkely DB?
Olson: We are improving the way that Berkeley DB runs in these applications. If some parts of our customers' products fail in the field, we're making the entire application continue to run anyway. We're rolling out some major new improvements in our high availability product to make it easier to deploy for customers building these high availability applications. One other thing that we're doing in [Berkeley DB version 4.4] is making it possible to use less disc space much more effectively.