> If theory is correct, executing the loop more than once should cause the database size to stay relatively the same after the first run. > However, each time I re-execute the loop, the size always increase by a good factor. > I do not think it's the transaction log file because of the increment amount seemed large. > I also tried to insert and delete directly in the database, this method does seem to re-use already allocated pages. > Am I doing something wrong?
no, as far I know, that's because Elephant sucks -- it doesn't have garbage collector. you remove objects from btree, but Elephant doesn't know if there are no references elsewhere, so it just keeps this object. note that this happens for objects only because they are stored in special way (slots are stored separately) -- there would be no problems with strings, numbers or some aggregates of thereof. if you want this space to be reclaimed, use drop-pobject function -- it should erase object's slots. (if object is indexed, use drop-instances -- then it will also delete it from index. (um, weird: can't it be one generic method?) alternative way is to use migration -- stuff that is not won't be copied. _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel