I have multiple processes reading and writing to the same table and I've noticed really persistent concurrency problems:

  File "/usr/lib/python2.5/site-packages/monetdb/sql/cursors.py", line 208, in execute
    self.__store_result(block)
  File "/usr/lib/python2.5/site-packages/monetdb/sql/cursors.py", line 520, in __store_result
    self.__exception_handler(InterfaceError, "Unknown state, %s" % block)
  File "/usr/lib/python2.5/site-packages/monetdb/sql/cursors.py", line 574, in __exception_handler
    raise exception_class(message)
InterfaceError: Unknown state, &2 65541 -1
!ERROR: COMMIT: transaction is aborted because of concurency conflicts, will ROLLBACK instead

I'm not sure what the problem is, but it exists in such a way that all operations that load or update information in MonetDB have to be put into a loop to continuously retry.

I'm using autocommit, but I would expect MonetDB to handle concurrency issues in a decent way, like maybe blocking a query until the other query finished.  I'm not clobbering data, most of these are just bulk load operations that insert new rows.

Is there any way to address this issue without having to putting retry loops around all of the code I'm writing to write to the database?

73,
Matthew W. Jones (KI4ZIB)
http://matburt.net