Btrieve


Btrieve is a transactional database software product. It is based on Indexed Sequential Access Method, which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Linux, older versions of Microsoft Windows, 32-bit IBM OS/2 and for Novell NetWare.
It was originally a record manager published by SoftCraft. Btrieve was written by Doug Woodward and Nancy Woodward and initial funding was provided in part by Doug's brother Loyd Woodward. Around the same time as the release of the first IBM PCs, Doug received 50% of the company as a wedding gift and later purchased the remainder from his brother. After gaining market share and popularity, it was acquired from Doug and Nancy Woodward by Novell in 1987, for integration into their NetWare operating system in addition to continuing with the DOS version. The product gained significant market share as a database embedded in mid-market applications in addition to being embedded in every copy of NetWare 2.x, 3.x and 4.x since it was available on every NetWare network. After some reorganization within Novell, it was decided in 1994 to spin off the product and technology to Doug and Nancy Woodward along with Ron Harris, to be developed by a new company known as Btrieve Technologies, Inc..
Btrieve was modularized starting with version 6.15 and became one of two database front-ends that plugged into a standard software interface called the MicroKernel Database Engine. The Btrieve front-end supported the Btrieve API and the other front-end was called Scalable SQL, a relational database product based upon the MKDE that used its own variety of Structured Query Language, otherwise known as SQL. After these versions were released the company was renamed to Pervasive Software prior to their IPO. Shortly thereafter the Btrieve and ScalableSQL products were combined into the products sold as Pervasive.SQL or PSQL, and later Actian Zen. Btrieve continued for a few years while ScalableSQL was quickly dropped. Customers were encouraged to upgrade to Pervasive.SQL, which supported both SQL and Btrieve applications.

Architecture

Btrieve is not a relational database management system. Early descriptions of Btrieve referred to it as a record manager because it only deals with the underlying record creation, data retrieval, record updating and data deletion primitives. It uses ISAM as its underlying indexing and storage mechanism. A key part of Pervasive's architecture is the use of a MicroKernel Database Engine, which allows different database backends to be modularised and integrated easily into their DBMS package, Pervasive.SQL. This has enabled them to support both their Btrieve navigational database engine and an SQL-based engine, Scalable SQL.
Current versions of Btrieve support system transactions and user transactions, where system transactions are a bundle of non-transactional operations and/or user transactions, whereas user transactions are transactions that work on actual data in the database. System transactions were developed to allow multiple transactions to be done in a batch and to make data recovery easier.
The Btrieve file format consists entirely of pages, which are the data that move between memory and storage when the engine performs an input/output operation. Versions prior to 6.0 merely used data pages, index pages and a file control record. The file had an index for searching that linked to physical pages. Beginning with version 6.0 logical pages were used. Logical are mapped to physical pages on the disk by page allocation tables. The file control record contains important information about Btrieve files, such as the number of pages in current use. To avoid database corruption, Btrieve uses two methods of updating records: pre-image paging in Btrieve versions before 6.0, and shadow paging in subsequent versions. It was primarily the change-over from pre-image paging to shadow-paging, which necessitated radical file format changes, that caused compatibility issues between version 6 and previous versions.

History

Btrieve has been owned and developed by four different companies: SoftCraft, Novell, Btrieve Technologies, Inc., and Actian Corporation. They have a committed and loyal developer-base and according to company literature, they remain fully committed to the product. Pervasive Software set up a "Btrieve Society" to recognise existing developers.
Under DOS, Btrieve up to version 5, was a terminate-and-stay-resident program which functioned as an application programming interface database engine, supplying applications programs with function calls to implement a multi-user database with record locking. The network version worked in a similar way.
In the early years, DOS versions up to version 5 sold for a price of around US$1,000, but the executable TSR database engine file could be distributed with applications without charge.

SoftCraft years

The product was launched in February 1982 by SoftCraft, a firm located in Austin, Texas, by Doug and Nancy Woodward. Doug became the vice-president and handled software development, Nancy became the president of the company. They released a number of versions over the next few years: in February 1983 they released the Btrieve 2.x series, and when MS-DOS 2.0 developed support for file and directory handles, they released Btrieve 3.0. When MS-DOS 3.1 standardised its internal interfaces in March 1985, they released Btrieve 3.1 C/S one month later, which had network and client/server support. In February 1986, Btrieve 4.0 was released, and when the 4.1 upgrade was released it gained support for extended key types and supplemental indexes.
Although Btrieve was fairly popular, it was an API database engine. The killer-app database manager on the PC, dBase II and its successors, were database management systems which could be used either as a free-standing, general-purpose application, or a database programming language. Btrieve was also more expensive to buy than dBase, although run-time licensing was free of charge. Btrieve grew to a developer base of over 5,000 users and was widely used in the financial area. The company took some time to create a user interface for the product, however in 1984 they released Xtrieve, a menu-driven program that used a new.DDF data dictionary to enforce relational database rules.

Novell acquisition

In 1987, Novell started diversifying and buying companies to add to their NetWare operating system. One of the companies they purchased was SoftCraft. Nancy Woodward became the Vice-President and General Manager of Novell's Austin operations while Doug Woodward became the Vice-President of Advanced Database Technologies. Early the next year, Btrieve 5.0 was released to run as a native NetWare application, or Value Added Process. According to Jim Kyle, "it had auto-increment key types, the BROUTER network process server, data-only and key-only files, and optional data compression". Version 5.1 was released in 1990 with increased file-handling transaction capability, logging and roll-forward operations, along with several API enhancements. Several versions were created for DOS, OS/2 and Microsoft Windows. Version 6.0 was released in June 1992. However, it was not promoted extensively by Novell, and due to enhancements, it was incompatible with previous versions of Btrieve. The market did not increase much for Btrieve and it did not see wide adoption due to these issues.
When the company was acquired by Novell, SoftCraft had been working on a product called XQL, an SQL interpreter designed to better deal with industry standard SQL, which the Xtrieve package was not fully compliant with. This became the basis for NetWare SQL, which was initially released in 1989, and was a bare-bones SQL interpreter which implemented the base IBM version of SQL.
Btrieve saw good adoption by LAN-based software. A PC Magazine review of accounting software in 1993 reported that seven of the 11 reviewed packages were based on it—up from three in 1991—with one more vendor planning to release a Btrieve version. The magazine cited high network performance and many reporting tools as the database's virtues.

Btrieve Technologies, Inc.

By 1994, Novell had largely given up on attempting to make NetWare into a complete alternative operating system, and started selling off many of the companies it had acquired only a few years earlier. They had minimally promoted Btrieve, largely due to the delay in releasing version 6. Negotiations between The Woodwards and Novell were entered into, and after two years Novell announced on 26 Jan, 1994 that it was going to transfer ownership of Btrieve to Btrieve Technologies, Incorporated. On 29 April 1994, the transfer was completed and Nancy Woodward became the Chairman of BTI and Doug Woodward was made the Chief Technical Officer. The CEO position was given to Ron Harris, a former employee of Texas Instruments, and one of the founding employees of Citrix Systems, Inc. where he was employed first as Director of Strategic Planning, then as Vice-President of Marketing, and finally as the Product Group Vice President.
Btrieve was totally rewritten, and on 1 July 1994 Btrieve 6.15 for DOS, Windows and OS/2 was released. Novell SQL was renamed to Scalable SQL reflecting the change in ownership of the company. In 1995, version 6.15 was released for Novell NetWare, Windows NT Server and for Windows NT/95, and thus became a cross-platform database product. The concept of a Micro Kernel Database Engine was introduced in this version.

Pervasive Software

In 1996, the company renamed itself to Pervasive Software, and their product to Pervasive.SQL. In 1997, the company went public. They did this in order to allow greater penetration of the relational database market and to re-align as an SQL vendor, though they are still marketing and developing Btrieve. Pervasive completed its IPO in September. The company continued using the MKDE in version 6.30. In 1997, Pervasive released ScalableSQL 4.0, a relational database product, and Btrieve 7.0.
In 2000, Novell was criticized after it ceased bundling Pervasive.SQL with NetWare from version 5.1 onwards; instead, it shipped with a trial version that shut down after 90 days. The latest version, Pervasive PSQL Summit v11, was released in September 2010.