rkm1000 wrote:
Hi all,

I decided to take a shot at cells and allegrocache.

This is pretty scary, two hours earlier I got invited to talk at ILC 2008 and thought I would do RDFCells.

I started by adding (:metaclass db.ac:persistent-class) to model-object. Committing changes revealed that allegocache doesn't know how to encode cells::cells or cells::c-dependent. I expected that would be the case.

Allegrocache will encode structures when provided a method encode- object, but I've run into a couple of problems. Encoding the caller- store member of a cells struct leads to a stack overflow. I imagine allegrocache handles circular references when dealing with collections of CLOS objects, but it doesn't appear to do so with encode-object and structs. At least that is what I'm thinking is the problem for now...

Yeah, you have to manage circularities yourself, but one does the same when using print/read for serialization, I guess the standard is to force the client to handle circs.


The other problem is with the rule member of c-ruled. Is serializing a function even possible?

Either use EVAL or a diabolical trick: for any lambda you want to store, define a persistent class with a slot with an initform producing that lambda. AC has to convert that to an initform-function, which you can then call to get lambdas. Sick. If you have a suitable Franz license, just use eval. The other issue is getting the form defining the lambda saved. I think Cells keeps rules in symbolic form in a slot for debugging purposes, so you just need to make sure that gets stored.


I have suspicions about solutions to both of these, but before I bloody my forehead I thought I would ask if anyone has attempted to use allegrocache with cells and what their experiences have been.

I did AllegroStore+Cells. At the time Cells was mop-based and Astore played nice with the MOP. Went incredibly well, but I did have to add a layer of code to achieve the functionality I desired. Probably a full few weeks effort.

Well worth it and quite exciting to see (a) a self-updating database and (b) seamless auto-update of any view of the DB as the DB changed underneath it.

kt
_______________________________________________
cells-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/cells-devel

Reply via email to