[elephant-devel] Re: sqite3 - always increase database size
Alex Mizrahi
killerstorm at newmail.ru
Tue Apr 8 16:33:21 UTC 2008
> 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.
More information about the elephant-devel
mailing list