Jim Starkey was working at DEC on their Datatrive network database[?] product when he came up with an idea for a new system to manage concurrent changes by many users. Now known as multi-generational or versioning systems, his idea would dramatically simplify the existing problems of locking which were proving to be a serious problem for the new relational database systems being developed at the time. He wanted to work on his idea at DEC, but at the time DEC had just started a relational database effort known as RDB. When they found out about his JDB project a turf war broke out, and Starkey eventually decided to quit.
He had heard that the local workstation vendor Apollo Computer[?] was looking for a database offering on their Unix machines, and agreed to fund development. With their encouragment he formed Groton Database Systems (named after the town, Groton, Massachusetts[?] where they were located) on Labour Day 1984 and started work on what would eventually be released as InterBase in 1986. Apollo suffered a corporate shakeup and decided to exit the software business, but but this time the product was making money.
Between 1986 and 1991 the product was gradually sold to Ashton-Tate[?], makers of the famous dBASE who were at the time purchasing various database companies in order to fill out their portfolio. The company was soon in trouble, and Borland purchased Ashton-Tate in 1991, acquiring InterBase as part of the deal.
In early 2000, Borland announced that InterBase would be open sourced, and began negotiations to spin off a separate company to manage the product. When the people who were to run the new company and Borland could not agree on the terms of the separation, InterBase remained a Borland product, and the source code for InterBase version 6 was released under a variant of the Mozilla Public License in mid-2000.
With the InterBase division at Borland under new management, the company released a commercial version of InterBase version 6 and then 6.5, and made several updates to the open source code before announcing that it would no longer actively develop the open source project. Two open source forks of the InterBase 6 code, however, remain in active development (Firebird and Yaffil[?]).
At the end of 2002, Borland released InterBase version 7, featuring support for SMP, enhanced support for monitoring and control of the server by administrators, and more (http://www.dbginc.com/tech_pprs/ib7/IB7.htm).
Consider a simple banking application where two users have access to the funds in a particular account. Bob reads the account and finds there is 1000 dollars in it, so he withdraws 500. Jane reads the same account before Bob has changed it, sees 1000 dollars, and withdraws 800. Needless to say, any database system with multi-user access needs some sort of system for dealing with these sorts of transactions.
Traditional products used locks which stated that a particular user was going to modify a record. Once the lock was placed, no one else could read or modify the data until the lock was released. Of course this is not terribly useful, because the problem only occurs if one of the users actually changes the data in question, so in reality most locks don't happen until someone attempts to do a write. However this also has problems, because if two users both attempt to run a transaction at the same time, both locks will stop each other and a deadlock occurs.
This might not sound like a problem, and it isn't on its own. However locking becomes a real problem when combined with another feature common to all such systems, transactions. This is because transactions typically involve both a read and a write, in this case to read the value of the account, and then change it. In order to be cancelled, the entire transaction, including the read, must be locked.
Starkey's idea was to eliminate locks entirely. Instead, each record in the database could exist in more than one version. For instance, when Bob and Jane read the accounts they would both get "version 1", reading 1000 dollars. When Bob then changes the account to make his withdrawl the data is not overwritten, but instead a new "version 2" will be created with 500 dollars. Jane's attempt to make her 800 dollar withdrawl will notice that there is a new version 2, and her attempt to make a withdrawl will fail. In this system, readers can never block writers.
External links:
Search Encyclopedia
|
Featured Article
|