“How-To” notes on common tasks

Recover from disappearing clients

Current (as of April 2014) versions of the MonetDB server do not check for clients timing out. That is, if a remote client connects to the server and opens a transaction, then dies without shutting down cleanly for some reason (power failure, network glitch, ...), the transaction will remain open indefinitely. MonetDB logs all incremental updates during the transaction. Eventually, this will both cripple performance and take a huge amount of space.

Recover by stopping and restarting the database:

$ monetdb stop ${database}
stoping database '${database}'... done

Start it again and the logs will be replayed and then removed:

$ monetdb start ${database}
starting database '${database}'... done

Note that this procedure may take a long time (several hours) to replay a large volume of logs.

Future versions of MonetDB (unreleased as of April 2014) will include a fix for this issue by enabling SO_KEEPALIVE on the TCP socket.

Create a schema diagram

As shown in the schema documentation.

documentation/devref/database/schema in the TKP tree contains a mini django projects that can be used to update the schema image. See the README file in the directory for instructions how to use and set up the django project.