This summarizes the key points from a document containing solutions to problems about transaction locking and concurrency control.
1. It is not safe for a transaction to release an intention-write lock on a file before committing, as this could lead to a non-serializable execution.
2. For multi-granularity locking, a transaction must hold an intention-write lock on a data item's parent if it holds a write or intention-write lock on the data item. Holding a read lock on the parent instead is incorrect.
3. For multi-version concurrency control, a read-only transaction will read the versions of rows that were committed before the transaction started, even if other transactions committed