Txn objects created by the Env.BeginTxn method now have a finalizer than
aborts them if they become unreachable before being committed. Aside
from freeing memory this can help databases from growing indefinitely
and can also unlock an environment from a lost write transaction. These
benefits are new for unmanaged transactions. Managed transactions have
never had such shortcomings.
These benchmark comparisons should be taken with a grain of salt. There
are some unexplained big swings. But unmanaged transactions do not
appear to have a significant performance impact. And renewed
transactions do not suffer from the finalizer.
Fixes #27
Txn objects created by the Env.BeginTxn method now have a finalizer than aborts them if they become unreachable before being committed. Aside from freeing memory this can help databases from growing indefinitely and can also unlock an environment from a lost write transaction. These benefits are new for unmanaged transactions. Managed transactions have never had such shortcomings.
These benchmark comparisons should be taken with a grain of salt. There are some unexplained big swings. But unmanaged transactions do not appear to have a significant performance impact. And renewed transactions do not suffer from the finalizer.