Hi Rami,
Transaction is made up of one or more queries. So a long running
transaction can be many small queries.
When a query is running it will block everything else unless you have
multithreaded on. A long running transaction (made up of many small
queries) will not block other queries, but will lock tables, depending
on what you are doing.
"long running updating transaction seems to block all other activity".
Do you mean a long running update statement or a long running
transaction made up of many small updates? If it is a long running
single update then it will block, if it is many small updates in a
larger transaction then it shouldn't block (unless it is locking the
table, but I don't think that should happen in MVCC???).
Are you sure you need MVCC? Can you just pick a transaction isolation
level so you can still query the table while it is being updated?, or is
that the point of MVCC, sorry I'm not full bottle on that stuff.
Perhaps if you post a test case and example of what is happening then
that will help to clarify?
I had an issue with long running transactions made up of many small
updates and inserts, it turned out the best way for me was to
restructure what I was doing to just use small transactions, but I know
that isn't the solution for every case because sometimes you really need
that transactional integrity.
Hope this helps,
Ryan
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.