When database is rollback a long transaction , it may take a long time. User don't want to wait for rollback to finish.
One scenario is that user has made a large change on a table that is not that important table so they are willing to drop it (or they can recreate the data). So they would rather Db2 make the affected table not accessible and not perform all the compensation on that table.
Why is it useful?
|Who would benefit from this IDEA?|
How should it work?
the transaction being rolled back holds various resources to protect the changes that are still to be backed out. Terminating the rollback means not performing the backing out and release these resources. Then other applications will see inconsistent data. So there will be consequences for such termination. User will have to at least agree that they are willing to live with such consequences on all (or at least some) of the affected data.
We should give user a choice. If user can accept data lost, we can terminate the rollback quickly and make database usable.