Sound advice - blog

Tales from the homeworld

My current feeds

Sat, 2008-Feb-09

SQLite and Polling locks

Rusty,

I agree that the SQLITE_BUSY return code is insane. The root cause is that sqlite is not using blocking operating system locks, meaning it has to poll to determine whether it can obtain access or not. Internally it has already retried its locks a number of times before reporting SQLITE_BUSY back to you.

I hacked sqlite 2 for WRSA's internal use to use blocking locks. Unfortunately, I have never gotten around to figuring out whether blocking locks can be introduced to v3 without causing problems. The v3 locking model is much more complex. Most of this feature is held in a single source file (os.c, iirc), so it should be possible for a single human to get their head around it. If anyone does get it together, perhaps it would be worth submitting a patch back to DRH via the mailing list.

Benjamin

Sat, 2008-Feb-09

RESTWiki Updates

I have had a rough time with services of late, but am now officially back on the Internet. To celebrate, I have done some minor revision to a RESTWiki article on how to design XML file formats for semantic-web-scale information exchange. I have also summarised some recent blog content into a page on how to do reliable messaging with plain HTTP and simple idempotent messages.

Have fun reading!

Update 2008-02-09: And here is another article on achieving high availability characteristics between a HTTP server and client

Benjamin