Database Management
The Transactional File Server (TFS) specializes in the serving and managing of files on a given medium. The TFS API is a set of functions called by the runtime library to manage the sharing of databases among one or more runtime library instances. In a normal multi-user configuration (see below for more about configurations), the TFS functions are wrapped into a server process called rdm-tfs
that listens for runtime connections and serves the connections with remote procedure calls. This listener my be started in applications built with RDM, but this is a more advanced topic. To connect to a particular rdm-tfs
process, the runtime library needs to know the domain name of the computer on which rdm-tfs
is running, and the port on which it is listening, for example, "tfs.raima.com:21553
". Standard TCP/IP can be used to make the connection, whether the runtime library and rdm-tfs
are on the same computer or different computers (when on the same computer, optimizations are made, and a shared-memory protocol is available by default).
In the figure below, it shows that one runtime library may have connections to multiple rdm-tfs
processes, and one rdm-tfs
may be used by multiple runtime libraries. To the applications using the runtime libraries, and the rdm-tfs
processes, the locations of the other processes are invisible, so all processes may be on one computer, or all may be on different computers. This provides opportunities for true distributed processing.
An rdm-tfs
should be considered a "database controller" in much the same way as a disk is managed by a disk controller. A TFS is initialized with a root directory (elsewhere called the "document root") in which are stored all files managed by the TFS. If one computer has multiple disk controllers, it is recommended that one rdm-tfs
is assigned to each controller. This facilitates parallelism on one computer, especially when multiple CPU cores are also present.
A complete system may have multiple rdm-tfs
running on one computer, and multiple computers networked together. Each rdm-tfs
will be able to run in parallel with the others, allowing the performance to scale accordingly.
The TFS can manage multiple database instances. However, any database instance can be managed by ONLY one TFS.