about the goals and interface of db_txn()