db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oystein.Grov...@Sun.COM (Øystein Grøvlen)
Subject Re: [jira] Created: (DERBY-510) DERBY-132 resolved ? Table not automatically compressed
Date Thu, 18 Aug 2005 12:30:02 GMT
>>>>> "MM" == Mike Matrigali <mikem_app@sbcglobal.net> writes:

    MM> 1.) is done today, as I was trying to say in the note.  We currently
    MM>      maintain a bit map that either marks pages as completely empty,
    MM>      or "somewhat" empty.  Both sets of pages are used when doing
    MM>      inserts.  There may be more work to get the "somewhat" empty
    MM>      pages to be used more.

So the question here is the definition of "somewhat" empty?

    MM> 2.) As you say, space is never returned to the OS unless the compress
    MM>      system procedures are called manually.

It would be very nice if one would be able to do this automatically.
I guess the major problem is that since this involves moving records
between pages, one will have to update index references.  Doing this
row by row will be more expensive than first make a compressed version
of the table and then rebuild its indexes on this copy.

One idea I have is to only lazily update an index when a record is
moved. Instead, a mapping between previous and current record id will
be recorded. When an outdated index entry is used, this could be
detected and remapped to the new record id.  A background thread could
sequentially scan the index and update outdated references.  This
would be more efficient than an index look-up for each record that is
moved.

-- 
Øystein


Mime
View raw message