Btrieve
Encyclopedia
Btrieve is a transactional database (navigational database
Navigational database
A navigational database is a type of database characterized by the fact that objects in it are found primarily by following references from other objects...

) software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data
Data
The term data refers to qualitative or quantitative attributes of a variable or set of variables. Data are typically the results of measurements and can be the basis of graphs, images, or observations of a set of variables. Data are often viewed as the lowest level of abstraction from which...

 for fast retrieval. There have been several versions of the product for DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, older versions of Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Windows 98
Windows 98
Windows 98 is a graphical operating system by Microsoft. It is the second major release in the Windows 9x line of operating systems. It was released to manufacturing on 15 May 1998 and to retail on 25 June 1998. Windows 98 is the successor to Windows 95. Like its predecessor, it is a hybrid...

, Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

, Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...

, Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...

, Windows Server 2003
Windows Server 2003
Windows Server 2003 is a server operating system produced by Microsoft, introduced on 24 April 2003. An updated version, Windows Server 2003 R2, was released to manufacturing on 6 December 2005...

, 32-bit IBM OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 and for Novell NetWare
Novell NetWare
NetWare is a network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, with network protocols based on the archetypal Xerox Network Systems stack....

.

It was originally a record manager that was published by SoftCraft, written by Doug Woodward and owned by his brother Loyd Woodward at around the same time as the release of the first IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

s. 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 its founders Doug and Nancy Woodward by Novell in 1987 for integration into their Netware operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 in addition to continuing with the MS-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 to spin the product and technology off to the original founders, Doug and Nancy Woodward along with Ron Harris, in 1994 to be developed by a new company known as Btrieve Technologies, Inc. (BTI).

Btrieve was modularized starting with version 6.15 and became one of two database front-ends that plugged into a standard software interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

 called the Micro-Kernel Database Engine. The Btrieve front-end supported the Btrieve API and the other front-end was called Scalable SQL, a relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

 product based upon the MKDE that used its own variety of Structured Query Language, otherwise known as SQL. After these versions were released (Btrieve 6.15 and ScalableSQL v4) the company was renamed to Pervasive Software
Pervasive Software
Pervasive Software develops and distributes data infrastructure software and ETL tools that integrate, analyze, secure, manage and harvest data from disparate sources. Pervasive Data Integrator and Pervasive Data Profiler are the flagship integration products, and the Pervasive PSQL relational...

 prior to their IPO. Shortly thereafter the Btrieve and ScalableSQL products were combined into the products now known and sold as Pervasive.SQL or PSQL. Btrieve was continued for a few years while ScalableSQL was quickly discontinued with customers encouraged to upgrade to Pervasive.SQL which supported both SQL and Btrieve applications.

Architecture

Btrieve is not a relational database management system
Relational database management system
A relational database management system is a database management system that is based on the relational model as introduced by E. F. Codd. Most popular databases currently in use are based on the relational database model....

 (RDBMS). Early descriptions of Btrieve referred to it as a record manager (though Pervasive initially used the term navigational database
Navigational database
A navigational database is a type of database characterized by the fact that objects in it are found primarily by following references from other objects...

 but later changed this to transactional database) because it only deals with the underlying record creation, data retrieval, record updating and data deletion primitives. It uses ISAM
ISAM
ISAM stands for Indexed Sequential Access Method, a method for indexing data for fast retrieval. ISAM was originally developed by IBM for mainframe computers...

 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 allowed 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, while 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 allow the ability to recover data more easily.

The Btrieve file format consists entirely of pages, which are the data that moves between memory and storage media when the engine performs an I/O operation. Versions prior to 6.0 merely used data pages, index pages and a file control record (FCR). The file had an index for searching that linked to physical pages. Beginning with version 6.0 logical pages started to be used, which are pages that are mapped to physical pages (pages at a fixed location in the file) on the disk through the use of a set of page allocation tables (PATs). The FCR is a record that contains important information about Btrieve files, such as the number of pages in current use. In order to avoid corruption in the database Btrieve uses two methods of updating records: pre-image paging in Btrieve versions before 6.0 and shadow paging in subsequent versions. It was mainly the change-over from pre-image paging to shadow-paging that caused radical file format changes that broke compatibility between version 6 and previous versions.

History

Btrieve has been owned and developed by three different companies: SoftCraft, Novell and Btrieve Technologies, Inc. (later renamed Pervasive Software). They have a committed and loyal developer-base and in all the company's literature they remain fully committed to the product; in fact Pervasive have set up a "Btrieve Society" to recognise existing developers.

Under MS-DOS Btrieve up to version 5 was a Terminate-and-Stay-Resident program which functioned as an application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 (API) database engine
Database engine
A database engine is the underlying software component that a database management system uses to create, read, update and delete data from a database....

, supplying applications programs with function calls to implement a multi-user database with record locking
Record locking
Record locking is the technique of preventing simultaneous access to data in a database, to prevent inconsistent results.The classic example is demonstrated by two bank clerks attempting to update the same bank account for two different transactions. Clerks 1 and 2 both retrieve the account's...

; the network version worked in a similar way.

In the early years MS-DOS versions up to version 5 sold for a relatively high price, of the order of US$1,000, but the executable Terminate-and-Stay-Resident (TSR) database engine
Database engine
A database engine is the underlying software component that a database management system uses to create, read, update and delete data from a database....

 file could be distributed with applications without payment of any licence fee.

SoftCraft years

The product was launched in February 1982 by SoftCraft, a firm located in Austin
Austin, Texas
Austin is the capital city of the U.S. state of :Texas and the seat of Travis County. Located in Central Texas on the eastern edge of the American Southwest, it is the fourth-largest city in Texas and the 14th most populous city in the United States. It was the third-fastest-growing large city in...

, Texas
Texas
Texas is the second largest U.S. state by both area and population, and the largest state by area in the contiguous United States.The name, based on the Caddo word "Tejas" meaning "friends" or "allies", was applied by the Spanish to the Caddo themselves and to the region of their settlement in...

, by Doug and Nancy Woodward. Doug became the vice-president and handled software development, and 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
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...

 2.x 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
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

 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, while the killer-app database manager on the PC, dBase II and its successors, was a database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...

 (DBMS) which could be used either as a free-standing general-purpose application or a database programming language. Btrieve was also more expensive to purchase 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
Data dictionary
A data dictionary, or metadata repository, as defined in the IBM Dictionary of Computing, is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format." The term may have one of several closely related meanings pertaining to...

 to enforce relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

 rules.

Novell acquisition


In 1987 Novell
Novell
Novell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...

 started diversifying and buying companies to add to their NetWare operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer 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 VAP (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
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

, OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. Version 6.0 was released in June 1992, however it was not promoted extensively by Novell, and due to enhancements (such as the change from pre-imaging to shadow-paging) 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, which was an SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....

 interpreter that was 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 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 also done minimal promotion of Btrieve, largely due to the long time (24 months) it took to release version 6. Negotiations between Nancy and Doug Woodward with Novell were entered into and after two years Novell announced (on January 26, 1994) that it was going to transfer ownership of Btrieve to Btrieve Technologies, Incorporated (also known as BTI). On April 29, 1994 the transfer was completed and Nancy Woodward became the Chairman of BTI and Doug Woodward was made the Chief Technical Officer
Chief technical officer
A chief technology officer is an executive-level position in a company or other entity whose occupant is focused on scientific and technological issues within an organization....

. The CEO position was given to Ron Harris, a former employee of Texas Instruments
Texas Instruments
Texas Instruments Inc. , widely known as TI, is an American company based in Dallas, Texas, United States, which develops and commercializes semiconductor and computer technology...

, 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 July 1, 1994 Btrieve 6.15 was released for DOS, Windows and OS/2. Novell SQL was renamed to Scalable SQL to reflect the change in ownership of the company. In 1995 version 6.15 was released for Novell NetWare, Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

 Server and for Windows NT/95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...

, and thus became a cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 database product. The concept of a Micro Kernel Database Engine (MKDE) was introduced in this version.

Pervasive Software

In 1996 the company renamed itself to Pervasive Software
Pervasive Software
Pervasive Software develops and distributes data infrastructure software and ETL tools that integrate, analyze, secure, manage and harvest data from disparate sources. Pervasive Data Integrator and Pervasive Data Profiler are the flagship integration products, and the Pervasive PSQL relational...

, and their product 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
Initial public offering
An initial public offering or stock market launch, is the first sale of stock by a private company to the public. It can be used by either small or large companies to raise expansion capital and become publicly traded enterprises...

 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 (5.1 was the first version affected). 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.

Btrieve for DOS

There was one DOS client-based configuration of Btrieve created by SoftCraft. SoftCraft's definition of a client-based version was a "Btrieve engine running on a particular workstation." This meant that the record-management engine connected directly to the files via operating system functions and modified the records accordingly, whether the files were local or on a network. The client-based engine allowed five concurrent
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

 users to access the database at any one time. All processing of the records was done on the local workstation the engine was installed on. Btrieve for DOS used the SEFS and MEFS modes for file sharing.

Btrieve for Netware

Btrieve for Netware was essentially the same as Btrieve for DOS with some extra features only available on Netware at the time. It ran a server process, called BSERVER, on the file-sharing server and this managed data I/O
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

 in conjunction with the network file system. The server process was first implemented as a Netware Value Added Process (VAP) called BSERVER.VAP, but was switched to a Netware NetWare Loadable Module (NLM) soon after. Basically, BSERVER was the database engine that dealt with access to records, however it also accepted requests from the transmittal of requested data to another server via the BROUTER process.

Btrieve used requesters to make database I/O requests from the client workstation. These requesters were available for DOS, OS/2, Microsoft Windows, and UnixWare
UnixWare
UnixWare is a Unix operating system maintained by The SCO Group . UnixWare is typically deployed as a server rather than desktop. Binary distributions of UnixWare are available for x86 architecture computers. It was originally released by Univel, a jointly owned venture of AT&T's Unix System...

. The program BREQUEST.EXE accepted I/O requests via the Btrieve API and relayed them to BSERVER. It then handled the responses from BSERVER and relayed them back to the appropriate applications.

The BROUTER process allowed for incoming requests to be "routed" to a copy of the database on another server. It was loaded on the Netware server and dealt with communication between multiple server processes running on the one file-server through the use of two File Server Tables (FSTs). According to Pervasive, these provide a list of "server names and addresses, and the Server Routing Table (SRT)". BROUTER also allowed communication requests to be routed to the correct server via SPX by looking up the BSPXCOM NLM and coordinated locks and other mechanisms that controlled access to the data in the Btrieve database.

Btrieve for DOS used the SEFS and MEFS modes for file sharing, and because it was able to run on a network it was able to use exclusive and concurrent transactions.

Btrieve for Windows

Btrieve for Windows was created before the company rewrote the codebase to use the MKDE. It featured SEFS and MEFS file sharing mechanisms; used shadow-paging and allowed for exclusive and concurrent locks. It handled version 6.x and 6.1 files differently: version 6.x files could handle operations on “chunks” of records rather than locking up the whole record; it handled records that were over 64KB; implemented VATs, ACSs, new data types; allowed for percentage operations (where the record could be located and manipulated by the physical location in the file) and handled duplicate keys. Version 6.x was capable of dropping or adding any index on the fly (version 6.0 and below could only drop supplemental indexes). Version 6.1 files allowed for concurrent and system transactions; the optional renumbering of keys; case insensitive ACS tables and enhanced locking operations.

Btrieve for Windows could run as a client to the database that utilized SEFS or MEFS modes, or it could directly access the Btrieve server.

Client-based Btrieve

The client-based version of Btrieve has all the database files either directly on the local computer or via a mapped network drive (setup using DOS’s NET USE command).

Applications make a function call to WBTRCALL.DLL, a loader and requester interface. The loader and requester module checks the BTI.INI configuration file is correctly setup to load the client-based Btrieve engine. In turn, this loads the local interface to the btrieve engine (WBTRLOCL.DLL). If necessary, this local interface loads the Btrieve engine (WBTR32.EXE) into memory and sends the necessary database requests to it. The database engine then calls various Win32 system libraries to perform file operations on the database files.

Client-based Btrieve accessing server-based Btrieve

The client-based version of Btrieve for Windows could access server-based versions of Btrieve via a DOS-based "requester". The requestor required the use of DOS Protected Mode Interface
DOS Protected Mode Interface
In computing, the DOS Protected Mode Interface is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the processor not available in real mode...

 (DPMI) which allows the program access to DOS's extended memory
Extended memory
In DOS memory management, extended memory refers to memory above the first megabyte of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems...

 which could only accessed using the Protected Mode
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units...

 functionality of the CPU's x86 architecture.

As with the client-based interface, the Btrieve-based application makes a call to the WBTRCALL.DLL loader and requester interface library. This library checks the BTI.INI file to see if it needs to access data on the local system or whether it needs to access data on a remote server. If it needs to access the server then it uses the Windows version of DPMI to access a DOS-based requester named BREQUEST.EXE. The requester then establishes a network connection to the server, which processes the request and passes back a message to the requester when the database request is completed.

Btrieve for Windows NT/Windows 95

Btrieve for Windows NT and Windows 95 was released in 1995 along with Btrieve for Netware and Btrieve for Windows NT Server. It had reached version 6.15 and started using the MKDE. The file sharing mechanisms remained the same as it still used SEFS and MEFS file sharing modes; used shadow-paging and allowed for exclusive and concurrent locks. This version of Btrieve allowed for null
Null
-In computing:* Null , a special marker and keyword in SQL* Null character, the zero-valued ASCII character, also designated by NUL, often used as a terminator, separator or filler* Null device, a special computer file that discards all data written to it...

 values in keys, which meant that a record could be entered into the database when information on the key was not available. It meant that the key would not be included into the index, and this helped decrease unnecessary searching of the database via the index. It also introduced the concept of a system transaction and a user transaction. (see System and user transactions). The MKDE also allowed gaps between auto-incremented keys. Variable-tail allocation tables were introduced in version 6.15, so they were included in the Windows NT/95 build of Btrieve.

There are two configurations of Btrieve for Windows NT/95: standalone workstation and client/server.

Standalone Workstation

When using the standalone workstation configuration of Btrieve, all processing of records is done on the local workstation
Workstation
A workstation is a high-end microcomputer designed for technical or scientific applications. Intended primarily to be used by one person at a time, they are commonly connected to a local area network and run multi-user operating systems...

. The workstation relies on the underlying mechanisms of Windows to allow the MKDE (the W32MKDE.EXE program) to gain direct access to the database files, and uses lock files to deal with concurrency issues.

In this configuration the application makes calls to the Btrieve API, or Microkernel Interface (WBTRV32.DLL). The call is then processed by this interface and passed along to the MKDE (W32MKDE.EXE) which then uses the underlying operating system file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

 (whether it be network or local) to directly access the database files.

This leads to some peculiar issues. If Btrieve uses Windows file sharing and has the database engine open files directly on a file share, for instance, and there is network instability (or even if a network cable is unplugged) during an update the fields used to link one Btrieve file to another can become unsynchronized (to all intents and purposes the data loses its relationships or links to other data) and the database file itself can get corrupted (though the chance of this is reduced due to pre-image paging).

Client/Server

When using the client/server (or Server edition) configuration of Btrieve, processing of records is generally done on a Windows file server via a mapped drive (a way of mapping a file share to a "virtual" disk drive in Windows via the NET USE command). It utilises the permissions that you are assigned when authenticating, either from when logging on or via the permissions given for the NET USE is utilised.

On Windows 95 the MKDE interface (a Windows dynamic link library (DLL) called WBTRV32.DLL) actually determines what database access method is in use via the configuration file. If it detects that both the client/server and workstation engines are installed on the one machine it checks whether the target is set to workstation or server. If running on Windows NT and the server process NTMKDE.EXE is running along with the standalone workstation process W32MKDE.EXE it looks in the registry to determine if the target is either server or workstation. In both cases, if the MKDE interface is set to workstation (the "Standalone workstation" configuration) it uses the MKDE (W32MKDE.EXE) to directly access the file. If it is set to server then the MKDE interface on the client uses a communications module (on Windows 95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...

 this is W32BTICM.DLL, on Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

 this is NTBTICM.DLL) that "talks" to the server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

. The server itself has its own matching communications module (again either W32BTICM.DLL or NTBTICM.DLL) that resides on the mapped drive. The server DLL then communicates with the server MKDE (NTMKDE.EXE) which updates records, then sends a confirmation that the operation succeeded back through the communications module to the client.

The advantage of this system is that if a network connection failure occurs the MKDE on the server will be able to detect this and recover in a more graceful manner than the workstation configuration is able to.

Configuration

A configuration utility was included with Btrieve to alter MKDE settings. The settings that could be changed were:
  • File settings: this category contains settings related to files, file handles, record locks, indexes, and log files. The number of open files and logical file handles was set in here, as well as the number of record locks per client; index balancing and an option to create files in pre 6.x format are in this category. It also controlled whether the Microkernel kept a log of operations executed on selected files. In this section the method of file sharing could be set to either MEFS or SEFS. The system transaction hold limit sets the number of system transactions performed during write operations for shared files.
  • Memory organisation: this category contained settings related to the size of buffers the Microkernel needed to allocate for various purposes.
  • Client/System transactions: this category contains settings related to transactions, including the number supported and how and when they will be logged.
  • System resources/directories: this category contains settings related to the number of clients and threads supported as well as the location of various system files.
  • Trace operations: this category contains settings related to tracing various Btrieve operations. Tracing is an advanced feature used mainly for debugging
    Debugging
    Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...

     purposes.

Pervasive.SQL 7

Pervasive SQL 7 was released in March, 1998, and included Scalable SQL 4 and Btrieve 7.0. Btrieve 7.0 ran on the same platforms as Btrieve 6.x: Windows 95, Windows NT 3.51 & 4, Netware and DOS. However, the company changed to a component-based architecture called SmartComponents to resolve compatibility issues with upgrades. This used a component identification scheme both embedded into the file and encoded into the file name, along with dynamic binding of "glue files" (DLLs loaded into memory only when needed). The dynamic binding of components was done using a new "Abstract OS Services DLL" that looked for the latest version of the appropriate needed component via the file name encoding. This "glue module" is then loaded into memory and used. The old log file format of Btrieve 6.x was also replaced with a new centralised log called PVSW.LOG and that had a unified and enhanced log file format. They also improved their error messages and error message reporting mechanisms.

The MKDE was retained in Pervasive.SQL 7. However, due to the new component architecture's dynamic binding, the internal architecture was modified. The application using Btrieve calls a services manager which then searches through various configured directories for specific encoded filename. The file name loaded for Btrieve files in Backus-Naur form is:

::= "BIF"
::= "W1" | "W2" | "W3" | "W9" | "WT" | "NW" | "O3"
::=
::=
::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Embedded filename platform codes
Code Platform
W1 Windows 3.1x
Windows 3.1x
Windows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...

, incl. Windows for Workgroups (Win16)
W2 Extended Windows (32-bit Watcom
Watcom
Watcom International Corporation was founded in 1981 by three former employees of the Computer Systems Group at the University of Waterloo, in Waterloo, Ontario, Canada...

 Extender)
W3 Windows 95, Windows NT (Win32)
W9 Windows 95
WT Windows NT
NW Netware 3.x and 4.x
O3 OS/2 (32-bit)


The "glue" module, which is a DLL, is loaded into memory and becomes the interface to the MKDE. The MKDE then determines whether it is configured to be a workstation based configuration or a server based configuration. It then passes requests via its communications "requester" module onto the database server, or directly modifies the database files if configured in workstation mode.

Pervasive.SQL 2000/2000i

Pervasive.SQL 2000 and Pervasive.SQL 2000i uses essentially the same architecture as Pervasive.SQL 7, though 2000i includes i*Net server. It uses the same component model, has the ability to use the Btrieve or Scalable SQL engines and continues using an MKDE. This version included support for Red Hat Linux
Red Hat Linux
Red Hat Linux, assembled by the company Red Hat, was a popular Linux based operating system until its discontinuation in 2004.Red Hat Linux 1.0 was released on November 3, 1994...

, Caldera OpenLinux
Caldera OpenLinux
Caldera OpenLinux is a defunct Linux distribution that was created by the former Caldera Systems corporation. It was the early "business-oriented distribution" and foreshadowed the direction of developments that came to most other distributions and the Linux community generally.-Novell and...

, SUSE
SUSE Linux distributions
SUSE Linux is a computer operating system. It is built on top of the open source Linux kernel and is distributed with system and application software from other open source projects. SUSE Linux is of German origin and mainly developed in Europe. The first version appeared in early 1994, making...

 and Solaris. It also had better integration with Terminal Services
Terminal Services
Remote Desktop Services in Windows Server 2008 R2, formerly known as Terminal Services in Windows Server 2008 and previous versions, is one of the components of Microsoft Windows that allows a user to access applications and data on a remote computer over a network, using the Remote Desktop...

, though only one instance of the database engine may run on any terminal server platform. You cannot run separate copies of the database engine within two or more terminal sessions.

Pervasive.SQL V8

Introduced in December 2002, Pervasive.SQL V8 improves the performance of both Btrieve and SQL applications using a number of new technologies.
  • Client side caching greatly improves read performance by maintaining a portion of the database's contents on the local PC.
  • Turbo Write Acceleration (TWA) groups disk writes into groups, minimizing interactions with disk.
  • Transaction Logging provides a slightly less failure protection than transaction durability, but improves overall performance.


The V8 Security Feature Pack (a mid-release product update designated 8.5) added important new security features designed to lock down Pervasive.SQL data files. Prior to 8.5, access to Btrieve data was controlled by the operating system's security mechanism. This meant that any user who needed read/write access to the database, also needed read/write access to the underlying data files. 8.5 introduced new security models, which allow administrators to control access to the Btrieve data using database security. Once activated, database security no longer requires that the user has access to the underlying files. In addition, client/server configurations no longer require the use of network shares or mapped drives. Applications can reference secure Btrieve data using a URI connection string.

Pervasive PSQL v9

Pervasive PSQL v9 includes new Java GUIs, built on the Eclipse framework. These GUIs are available for both Microsoft Windows and Linux. In addition, v9 included many SQL performance and syntax updates, improving both the speed and flexibility of all of the SQL interfaces - ADO.Net, JDBC, ODBC, and OLE DB. Finally, PSQL v9 expanded the Btrieve maximum file size from 64GB in 8.x and earlier file formats to 128 GB in 9.0 format files, and again to 256GB for files in the 9.5 file format.

In conjunction with PSQL v9 Pervasive reintroduced the DDF Builder utility and added support for text searching with the Full Text Search (FTS) add-on, which was later removed from the product line. DDF Builder provides a mechanism for Btrieve users to define the meta data for existing Btrieve files, thus allowing Btrieve data to be accessible via SQL tools and utilities.

All versions of the MKDE retain full backward read-level compatibility with earlier versions of Btrieve, including those that pre-date introduction of the MKDE itself, and do not change the file's version unless specifically requested to do so. Btrieve files that are in the 5.x or older file formats MUST be rebuilt (using the GUI or command line Rebuild utilities) to 6.x or newer format to support database writes from the 9.0 or newer database engine.

Pervasive PSQL v10

Pervasive PSQL v10 was released in September of 2007 and was the first version of Pervasive PSQL Server and Client to provide support for 64-bit operating systems. The Btrieve API and distributing tuning interface (DTI) were both enhanced to support 64-bit. Pervasive PSQL Workgroup and other components of the SDK were not enhanced for 64-bit support.

The release of Pervasive PSQL v10 was timed to offer support for the then newly available Windows Vista and soon to arrive Windows Server 2008 operating systems. Pervasive PSQL v10 Server, Workgroup and Client all support Windows Vista. Pervasive PSQL v10 Server is Certified for Windows Server 2008.

Also included in Pervasive PSQL v10 was Xtreme I/O (XIO), a 32-bit Windows database accelerator that enabled access of extended memory to expand the database cached past the normal 2GB limit on 32-bit Windows systems. XIO also included update compression algorithms and streamlined writing techniques to improve database I/O performance.

Digital license enforcement, called Product Authorization, was introduced for the Pervasive PSQL product line with Pervasive PSQL v10. Product Authorization was initially implemented with trial downloads and e-commerce orders. Products sold through the Pervasive Distributor and ISV partners were upgrade to include product authorization with the release of Pervasive PSQL v10 SP3 in November 2009. Pervasive PSQL v10 SP3 was also released as a Windows 7 compatible application.

Pervasive PSQL v10 retained backward compatibility by using the 9.5 file format with an increase in the maximum data file size to 256GB and increase in the maximum page size to 16,384 bytes.

Support for NetWare, Windows NT, Windows 98, Windows ME, DOS 6.22 and 16-bit applications were dropped with Pervasive PSQL v10. Although the Windows and Linux versions of Pervasive PSQL v9 products are no longer sold, Pervasive still sells and supports Pervasive PSQL v9 for NetWare.

In 2010, Pervasive Software released Pervasive PSQL v11, which allows users to take full advantage of multithreading for faster database processing.

Pervasive PSQL v11

Pervasive PSQL v11 was released in September of 2010. One of the key drivers of the engineering effort behind Pervasive PSQL v11 was the redesign of the database engine to increase performance and scalability on multi-core CPU's. Pervasive PSQL v11 optimizes parallel threads performing similar activities, allowing the database to engage multiple cores during task execution. PSQL v11 also provides enhancements to the low-level synchronization mechanisms in the navigational interface. Multiple users can read the same cached file pages simultaneously and their operations can proceed on independent cores. Non-user activity such as checkpoints and log management can run on separate cores and multiple users accessing independent files can proceed on different cores.

Multi-core support is available with all versions of PSQL v11: 32- and 64-bit Windows and Linux Servers, and 32-bit Workgroup. Internal testing at Pervasive documented performance increases of 300% when comparing PSQL v10 to PSQL v11 on a 8-core server running Microsoft 2008 Enterprise Server SP2(64-bit).

(IPv6
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...

) support on Windows is included in Pervsive PSQL v11 with continued support for IPv4 environments. Pervasive PSQL v11 supports IPv6 with both the Btrieve and DTI (Distributed Tuning Interface) access methods.

64-bit server versions of PSQL v11 include a 64-bit relational/SQL engine as well as the 64-bit navigational/Btrieve engine, along with a 64-bit ODBC driver. The driver is installed with the 64-bit versions of PSQL Server and PSQL Client.

Pervasive updated the PSQL software development kit with the addition of the Pervasive PSQL ADO.NET Data Provider 3.5. The Data Provider 3.5 is compliant with .NET Framework versions 2.0, 3.0, 3.5, 3.5 SP1 and 4.0, and runs under .NET Framework 4.0 with support for Entity Framework 1.0 features. Pervasive PSQL v11 also updated the PDAC (Pervasive Direct Access Components) access method with support for Embardacero's RAD Studio 2009 and RAD Studio 2010.

Product Authorization was extended in Pervasive PSQL v11 to include OEM customers, along with the introduction of a web based portal for OEM's to generate keys and manage licenses for PSQL v11. Telephone authorization (a method of authorizing Pervasive PSQL without requiring an Internet connection) was first introduced with PSQL v11 and made available to all Pervasive customers.

Pervasive PSQL v11 continues with the 9.5 file format, maintaining backward compability with previous releases.

Support for Windows 2000 was dropped with Pervasive PSQL v11.

Pervasive PSQL Ecosystem

Pervasive now offers a number of add-on products which extend the basic features of the PSQL DBMS. The latest versions of each of the products, AuditMaster v7, Backup Agent v3, and DataExchange v4, were released in December 2010.
  • Pervasive AuditMaster provides real-time auditing of all database interactions, whether Btrieve or SQL. Logs of data events can be queried to track changes to sensitive data. Alerts can also be created to notify the appropriate personnel or launch the associated process.
  • Pervasive Backup Agent manages PSQL's continuous operations mode and allows backup software to reliably copy online databases.
  • Pervasive DataExchange provides data synchronization and replication between two or more PSQL engines, ensuring that critical data is always available.

See also

  • Architecture of Btrieve
    Architecture of Btrieve
    Btrieve is a database developed by Pervasive. The architecture of Btrieve has been designed with record management in mind. This means that Btrieve only deals with the underlying record creation, data retrieval, record updating and data deletion primitives...

  • Pervasive Software
    Pervasive Software
    Pervasive Software develops and distributes data infrastructure software and ETL tools that integrate, analyze, secure, manage and harvest data from disparate sources. Pervasive Data Integrator and Pervasive Data Profiler are the flagship integration products, and the Pervasive PSQL relational...

  • Microsoft Jet Database Engine
    Microsoft Jet Database Engine
    The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built. A database engine is the underlying component of a database, a collection of information stored on a computer in a systematic way...


Sources


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK