I am reading "Database Systems" by Kifer, Bernstein, and Lewis. In chapter 19 on transaction models, it discusses how a flat transaction can adhere perfectly to ACID, but other transaction models are needed that sacrifice some of the ACID properties (such as isolation) for gains in performance, flexibility, etc...
The archetypal example given is a flat transaction for a multiple segment international flight reservation: London/NY/Chicago/DesMoines with oversea and domestic trip segments where if a domestic segment (NY/Chic/DM) needs to be rerouted (NY/St Louis/DM) a flat transaction has to abort completely and loses a successful subtransaction (London/NY), but with savepoints after each segment the transaction can roll back to NY and reroute from there.
I have 2 questions:
If adding savepoints is the only change made to the flat transaction, does it still belong to the flat transaction model category or is it called something else (it is not Distributed, Nested, or Chained, but is there a category name for it or is it just called flat transaction with savepoints?)
Which of the ACID properties, if any, are sacrificed by adding the savepoints to a flat transaction? It seems to me even with savepoints/rollbacks it is still atomic, consistent, isolated, and durable. Are all ACID properties maintained and is the only drawback the cost of creating the savepoints?