How Database Updates are Propagated
- Last UpdatedJan 31, 2025
- 2 minute read
In a Global project, database changes are propagated from the primary location of the database to all secondary locations of the database.
Databases are updated session by session; that is, each time someone does a SAVEWORK the changes they have made are added to the end of the database file as a new session. Only complete sessions are transferred. This makes sure the integrity of the database, and also avoids transferring large amounts of data across the communications links (except when databases have been compacted: see the note below).
Before the automatic updating can start, Update events must be created between locations. Update events define how often the Global daemons check the databases to see if there have been any updates. The checks are based on the Session Number of the databases. For example, location AAA has a direct on-line link to the Hub. A Design database PIPING/PIPING-A which is primary at location AAA may be at session number 5, and at session number 4 at the Hub. Therefore the database at the hub will be updated with the changes. These changes may then be propagated to other locations that have copies of PIPING/PIPING-A.
Note:
If databases have been compacted by merging sessions or backtracking, the whole of
the most up-to-date database will be transferred. Therefore, if a database is large,
it is better to use the daemon to carry out remote merging. Remote merging at a primary
location automatically causes remote merging at the affected secondary locations,
so avoiding the need to copy the whole database. Refer to Propagation of Databases of Access-Type Update for further information.
Users reading the database will not see any changes until a session transfer is complete and they do a GETWORK (if they are in a session).

Note:
The Global database is automatically propagated, although not instantaneously. Changes
which affect a particular Satellite will cause the Global database to be propagated
automatically to that Satellite. In addition, the Global database is propagated by
Update events. If there are no Global commands, the Global database will not get propagated.
Refer to Propagation of Databases of Access-Type Update for further information.