On the topic of nested skiplist transactions

Bron Gondwana brong at fastmail.fm
Tue Sep 2 03:11:51 EDT 2008


On Tue, 2 Sep 2008 16:29:33 +1000, "Bron Gondwana" <brong at fastmail.fm> said:
> I've been thinking a bit about transactions and skiplists these past few
> days, since sending the patch that refactors the skiplist locking code.

For reference, here's what BDB does:

http://www.oracle.com/technology/documentation/berkeley-db/db/ref/transapp/nested.html

My proposal is different in that it doesn't support multiple nested concurrent
transactions.  If you open up a new transaction, you must complete it (one way
or the other) before anything can happen outside that transaction.

You can, however, open yet another sub-nested transaction like so:

t1 (
  STORE 'a' 'x'
  t2 ( 
    t3 (
      DELETE 'a'
      t4 (
        STORE 'a' 'z'
        ROLLBACK
      )
      COMMIT
    )
    COMMIT
  )
  COMMIT
)

But basically every transaction can be considered equivalent to a single operation
in the parent transaction.

Bron.
-- 
  Bron Gondwana
  brong at fastmail.fm



More information about the Cyrus-devel mailing list