[elephant-devel] test concurrency

Alex Mizrahi killerstorm at newmail.ru
Tue Mar 25 12:49:24 UTC 2008


i've sort of extended concurreny tests with various scenarios and checks.

these checks test for consistensy and proper transactional isolation and 
atomicity.

but some backends (read: CLSQL) might have problems supporting high level of 
isolation.
so, does it make sense to support weaker isolation "profiles"?
i suspect that backend with weaker isolation will just fail.
but probably it can pass some subset of tests and get "weak isolation 
certification".
if there are people who think it's important, i'd be glad to here from you.

also, postmodern backend passes all tests except one -- creating the first 
instance of indexed class inside multiple threads.
it's pretty same problem as i've described in "class indexing txn problems" 
message, but with more complexities.

problem is actually in creating indices for class. thread that starts first 
will create index structures and will write into index-cache slot.
other threads might see this cache before that first thread commits, and 
will fail using index btree because of transactional isolation.

Ian, you said you know a workaround for this problem. will it work in this 
case -- disallowing concurrent threads to see index cache slot?

if other threads will not see cache before txn commits, they will try to 
make index themselves. i think we can make sure that concurrent attempts to 
make index will result into write conflict, and so one of transaction will 
be restarted. this should also work in case of multiple processes. 






More information about the elephant-devel mailing list