Administrator Guide : Administering solidDB® : Creating checkpoints
  
Creating checkpoints
A checkpoint updates the database file or files on disk. Specifically, the checkpoint copies pages from the memory cache of the database server to the database file on the disk drive. The server does the copy in a transactionally-consistent way; in other words, it copies only the results of committed transactions. The result is that all of the data in the database file is committed data from complete transactions. If the server fails between checkpoints, the disk drive has a consistent and valid (although not necessarily up-to-date) snapshot of the data.
Between checkpoints, the server writes committed transactions to a transaction log. If the server fails, any transactions committed since the last checkpoint can be recovered from this transaction log. After a system crash, the database will start recovering transactions from the latest checkpoint.
Checkpoints can be seen as the main write operations to the database files on disk. The server does not write the results of each individual INSERT/UPDATE/ DELETE statement (or even the result of each transaction) to the disk as it happens. Instead, the server accumulates committed transactions (in the form of updated pages in memory) and writes them to the disk only during checkpoints. The server can also use part of the database file as swap space if the server cache overflows. In this situation, the server also writes to the database file.
solidDB® has an automatic checkpoint creation daemon, which creates a checkpoint after a certain number of writes to the log files. For more information about controlling the frequency of checkpoints, see Tuning checkpoints.
Checkpoints apply also to persistent in-memory tables, not only disk-based tables.
Note There can be only one checkpoint in the database at a time. When a new checkpoint is created successfully, the older checkpoint is automatically erased. If the server process is terminated in the middle of checkpoint creation, the previous checkpoint is used for recovery.
A checkpoint can require a substantial amount of I/O, and can affect the responsiveness of the server while the checkpoint is occurring.
Creating checkpoints manually
Before and after a database operation, you might want to create a checkpoint manually. To create a checkpoint manually, use the ADMIN COMMAND 'makecp' command.
You can also force a checkpoint using a timed command. See Entering timed commands for more details.
See also
Administering solidDB®