What constitutes a transaction layer when talking about database systems?
For example, LevelDB doesn't support multi-statement transactions. I read somewhere that you would have to deal with those in a "transactional layer". What would this layer have to do to add transaction support to a lower-level library that doesn't support transactions? There are various ways to define transactions and there are various ways to implement them. A common property of a transaction is that it's ACID: Atomicity - all or nothing. All of the tasks of a database transaction must be completed; If incomplete due to any possible reasons, the database transaction must be aborted.