[rucksack-devel] with-transaction

Arthur Lemmens alemmens at xs4all.nl
Thu Aug 28 16:47:05 UTC 2008


Helmut Enders wrote:

> Do I always need a
>     (with-transaction .. wrapper,
> even if I'm only reading?

In principle this wouldn't be necessary for single threaded applications.
But it is necessary for multithreaded applications that can have reading
and writing transactions 'at the same time'.  In such cases a reading
transaction could be reading an older version of an object while a
writing transaction is creating a newer version.  That's why Rucksack
always expects an active transaction, even if you're only reading.

But I must admit that I never tested these parallel transactions in
practice, and it's the part of Rucksack that I feel the least confident
about.  I also don't expect that I'm going to need parallel transactions
for real work soon, so it's unlikely to see much improvement unless
other people start working on it.

But I /am/ using Rucksack nowadays to work with relatively large datasets
(in computational linguistics), and Rucksack's performance is beginning to
annoy me.  So I'm experimenting with simpler and faster heaps and trying
to optimize some of the btree code.

Arthur





More information about the rucksack-devel mailing list