Lava Primary Server

The Primary Server is the central server in a Lava Distributed SQL network, and the sole permanent repository for all data stored in the database.

Conventional Functionality

The Lava Primary Server is much more than just a database server. In point of fact, the Lava Server contains - as a small part of its total functional range - all the functionality of a conventional database server. In other words, it is completely possible to use the Lava Primary Server in exactly the same way you would use an Oracle server, for example - and all the server functionality you would expect to see is fully supported.

However, this would be a rather inappropriate way to use the Lava Server, since it is capable of so much more.

Distributed Database Functionality

In addition to all the conventional functionality, the Lava Primary Server contains all the mechanisms required to act as a Distributed SQL server. What this means is that, if you build a client application on the Lava Distributed Client database, your application does not have to use the restrictive and clumsy techniques normally associated with multi-user database application development.

When a Distributed Client connects to the Lava Primary Server, the server accesses administrator-configured lists associated with the user to determine which schemas or tables need to be distributed to the client database, and in what way. It then accumulates all required information and transmits a compressed and encrypted data package to the client. The client database then unpacks this message and constructs a perfect replica of the required tables and schemas locally - on the user's workstation.

There are different modes of distribution for tables of different sizes (see On-demand tables for information on how huge tables are handled) but for the majority of tables the entire dataset is distributed in a single transmission. Due to the proprietary technology embedded in the Lava Primary Server and Distributed Client, this is accomplished with amazing speed. On a modest 100 Mbit LAN it is perfectly possible to distribute a database subset of over 100Mb (a pretty large subset, probably consisting of several hundreds of thousands of rows of data) in a mere 5 seconds. (By way of comparison, copying 100Mb of files across a 100 Mbit LAN will typically take 17 seconds or so). As it is possible to configure multiple distribution subsets, the exact data set distributed to a particular client application can be fine-tuned to include exactly and only the required information.

Once the initial distribution phase is completed, the Primary Server keeps every distributed client updated with all modifications, additions and deletions to the distributed data tables. This is achieved through transmission of update packets which are automatically generated whenever an update arrives from a distributed client. Typical delay (latency) between an update executing on a distributed client and the update arriving at another distributed client on the network is around 5 seconds.

Additional Functionality

Aside from functionality commonly associated with databases, the Lava Primary Server also presents Version Control functionality as part of the standard function set.

Most databases include functionality to store large data (Blobs) as the content of a particular column type within tables. The Lava Server also includes this form of data storage.

In addition, the Lava Server includes a separate facility for storing files, Blobs or large data, independently of regular table data. Included in this functionality is the facility for creating and maintaining reverse deltas (version control) on these files or data. A full-text search facility (including wildcard facilities) for these files is included in the Gadgets package. For further information, see Blobs and Files.