Hi Niels (and others), Thank you very much for the help.
The MonetDB/MIL server indeed only comes with the handles to build transaction support (such as locking etc). The SQL server complements this with full transaction support. This is based on Optimistic Concurrency Control. A transaction simply starts and at the end checks the used columns where not changed by other transactions during its lifetime. All changes are then logged to a writeahead log and once this is completed the 'commit' is done.
Does this mean that a transaction can be aborted by the time the client issues a commit request?? Wasn't it better to implement classic 2PL (two-phase locking) for an MMDB? At least the early papers in main memory databases advocate using simple 2PL with coarse lock granularity, since transactions execute faster and concurrency becomes less important. Thanks, Rodrigo