[rucksack-devel] Enhancements to Rucksack
Jochen Schmidt
js at crispylogics.com
Sun Feb 13 16:46:22 UTC 2011
Without having the source at hand - it wasn't much work. I've reader- and writer-transactions. You decide what you need when doing with-transaction. Trying to write within a reader transaction restarts it as a writer transaction though. Readers can be parallel and writers are serialized.
I remember also, that I had to change conflict handling, because instances got modified before the conflict is recognized.
I changed how instances are initialized when read (activated) from disk so that transient slots can get initialized (think "sockets", "database connections" a.s.o.).
I also tried to split class definition from schema updates, so that one can define rucksack classes without an active database.
Currently I investigate how to implement a peristent (functional) B-Tree (like in couchdb).
--
Jochen Schmidt
Am 13.02.2011 um 16:18 schrieb John Pallister <john at synchromesh.com>:
> Hi Jochen,
>
> I completely understand. If you could post a few notes to the list
> about the approach you've taken, that would be great also. I'm curious
> about how you've done this, and how much modification to the Rucksack
> internals is required... which is about as close as I've ever come to
> being interested in anything to do with the internal workings of a
> database or persistent store. ;)
>
> Cheers,
>
> John :^P
>
> On Sun, Feb 13, 2011 at 2:48 PM, Jochen Schmidt <js at crispylogics.com> wrote:
>> Hello John,
>>
>> I definitely want to publish the modifications - I just was sidetracked by some urgent customer projects. I'll look into it and put a Git repository for others to access on some server.
>>
>> ciao,
>> Jochen
>>
>> --
>> Jochen Schmidt
>>
>> Am 13.02.2011 um 14:13 schrieb John Pallister <john at synchromesh.com>:
>>
>>> Hello list,
>>>
>>> I thought I'd chime in since I am using Rucksack in a paid-for project
>>> (using LispWorks on Windows FWIW). I'm developing a client-server
>>> application that runs on an intranet, so there are only around a dozen
>>> users and the amounts of data are relatively small. Consequently I can
>>> (mostly) get away with just locking the entire store while I access
>>> it. Most access is serialised into one or two threads by virtue of the
>>> client-server nature anyway.
>>>
>>> Rucksack has been great because it fits the task very nicely, and the
>>> fact it's all CL and doesn't need any external libraries/processes
>>> keeps things nice and simple (i.e. adding an index is as simple as
>>> recompiling the persistent class).
>>>
>>> However I think it would be great to see it develop a little further,
>>> and I'd urge Jochen (and anyone else) to consider releasing their
>>> modifications that implement some basic multi-user access.
>>>
>>> And thanks Arthur for doing such a great job with Rucksack in the first place!
>>>
>>> Cheers,
>>>
>>> John :^P
>>> --
>>> John Pallister
>>> john at johnp.net
>>> john at synchromesh.com
>>>
>>> _______________________________________________
>>> rucksack-devel mailing list
>>> rucksack-devel at common-lisp.net
>>> http://common-lisp.net/cgi-bin/mailman/listinfo/rucksack-devel
>>
More information about the rucksack-devel
mailing list