[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