Question about SERIALIZE transaction isolation
Date: Wed, 17 Jun 2009 04:33:12 -0700 (PDT)
Message-ID: <330366c9-0c34-4826-a31e-896e466e0e0e_at_k2g2000yql.googlegroups.com>
Hi,
i'm nearly ready for my first release of my new concurrent, multithreaded,
ACID transactional, logical idempotent logging, lock-free
database engine (key/value storage).
OK, enough buzzwords for today :)
Some of you were kind enough to help me a couple of times with my
questions. This one is about the behaviour of a read-only transaction
in the SERIALIZE isolation level.
TXN A:
BEGIN
INSERT (a, b)
TXN B:
BEGIN
FIND (a)
Does the lookup of an un-committed item return KEY_NOT_FOUND or does it create a transaction conflict?
Some background: In my Database all transaction conflicts are discovered in memory, without accessing the buffers. My Transactions do not lock each other or keep locks during their life time. Currently, if there's a conflict, my insert/erase functions return an error (TXN_CONFLICT).
I did some research about the SERIALIZE isolation level but found documentation which mentions that a lookup would cause a wait (http:// www.redhat.com/docs/manuals/database/RHDB-2.0-Manual/admin_user/xact-serializable.html). But i think that it's annoying when most range queries fail because of conflicts. I think it's better if the uncommitted key is ignored (only for lookups).
Thanks
Christoph
PS: you see that i'm wearing a developer hat, i'm not a DB admin or SQL guru... Received on Wed Jun 17 2009 - 13:33:12 CEST