[redland-dev] Concurrent updates with MySQL storage engine

Dave Beckett dave at dajobe.org
Thu Sep 28 02:24:38 UTC 2006


Jan Algermissen wrote on 4th September:
> On Jul 27, 2006, at 7:31 AM, Dave Beckett wrote:
> 
>> Jan Algermissen wrote:
>>> Hi,
>>>
>>> AFAIK, transactionality has not yet been added to Redland and as the
>>> MySQL storage uses ISAM (as opposed to InnoDB) tables, so I cannot
>>> really add it myself by simply getting hold of the connection handle. At
>>> least not without loosing the ability to update redland with new
>>> releases.
>>
>> but we could add storage parameters to let you switch table type (small
>> change) or add an API call to get the connection handle (another small
>> change)
>>
> 
> [Sorry if this has already been answered and I only missed it]

Sorry I'm taking so long to answer, busy at work.

Reminder, the tracking bug for this is
   http://bugs.librdf.org/mantis/view.php?id=38


> These two changes would be absolutely sufficient for what I need to do.
> What are the chances that you manage to add them to Redland? I am also
> happy to help in doing that, but I'd need some hints what places of the
> code I have to change - so that I don't miss any, especially in the
> bindings.

There's little chance I can work on it soon.  I'm trying to fix Rasqal
bugs now.  See http://librdf.org/rasqal/RELEASE.html for progress.

To add something new to the storage API, you need to update
the storage factory (e.g. new method void* get_connection_handle(...) )
and then reflect that in the API itself with a new function
librdf_storage_get_connection_handle(...) that calls the
factory->get_connection_handle if it's not NULL.

Then go to the mysql storage code librdf_storage_mysql, implement
a new function librdf_storage_mysql_get_connection_handle and
register it with the storage factory when the mysql store starts up.

The storage parameters part is easier since there's code in the mysql
startup that reads parameters now, you could use that to switch
the table type.  Would need to paramterise the table create strings
with that.  [Aside, all this stuff should be more programmed, rather
than fixed strings].

Dave


More information about the redland-dev mailing list