2008/12/10 Ian Eslick <[EMAIL PROTECTED]>: > Have you updated from elephant-unstable recently? I found a bug where > indices were not properly updated that I think was in the core > elephant code. However there may be a bug specific to postmodern. > > Ian >
Nope, this isn't the problem, or at least I haven't seen this happening. My problem is that blobs never seem to get deleted. The postmodern backend appears to store all slot values (and btree values, etc) in a great big table called blob. So, if I do something like, say, (defpclass myclass () ((slot1 :accessor slot1 :initarg :slot1))) (defvar *lots-of-objects* (with-transaction () (loop for i from 1 to 10000 collect (make-instance 'myclass :slot1 i)))) (loop for i in *lots-of-objects* do (drop-pobject i)) then the slot definitions in the slot table are removed, but the actual slot _values_, which live in the blob table, are retained. Is this intended behaviour? It has become a problem for me, as I'm left with a huge blob table full mostly of things which have been deleted or replaced; (setf (slot1 myobject) 4) has the same effect where slot1 in myobject already has a value. I realise I could migrate to free up space, but I'd really like to avoid the downtime if at all possible. One thing that did occur to me was that I could record the current maximum bid in the blob table, then go through each tree table, including root, and also the slots table, recording blob id references in each one. Then take the entire set of bids from the blob table; anything present in the blob table but not referred to in any of the trees or slots table, and with bid less than or equal to the maximum bid when the procedure was started, should be obsolete, and deleting it should be safe. Does this sound reasonable, or am I missing something? I already tried it on a non-production database, and it seemed to work; I couldn't find any problems afterwards, but I'd like to be sure I'm not doing anything silly. Thanks Rob _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel