1.2. Architectural Fundamentals

Before we proceed, you should understand the basic LightDB system architecture. Understanding how the parts of LightDB interact will make this chapter somewhat clearer.

In database jargon, LightDB uses a client/server model. A LightDB session consists of the following cooperating processes (programs):

As is typical of client/server applications, the client and the server can be on different hosts. In that case they communicate over a TCP/IP network connection. You should keep this in mind, because the files that can be accessed on a client machine might not be accessible (or might only be accessible using a different file name) on the database server machine.

The LightDB server can handle multiple concurrent connections from clients. To achieve this it starts (forks) a new process for each connection. From that point on, the client and the new server process communicate without intervention by the original lightdb process. Thus, the master server process is always running, waiting for client connections, whereas client and associated server processes come and go. (All of this is of course invisible to the user. We only mention it here for completeness.)