Christopher Browne cbbrowne at ca.afilias.info
Tue May 5 11:44:10 PDT 2009
Joseph S <jks at selectacast.net> writes:
> What is going on here? This reindexing has been going on for far
> longer than the initial copy time. Any why is it reindexing? 
> finishTableAfterCopy() should be a noop.

finishTableAfterCopy is definitely NOT a no-op - it does indeed
properly need to reindex the table, because, in an earlier step
(prepareTableForCopy()), the indices were shut off.

It is *WAY* more efficient to recreate indices in bulk than it is to
load data in with the indices active.

I would presume that this table, "el", is one that is rather large,
and which has several indices?

We have seen cases where it took ~1hr to COPY data into an (unindexed)
table, then several hours to reindex it.  That may appear expensive,
but the point is that it's substantially *less* expensive than the
"several *additional* hours" that would be required to COPY the data
into the table *with* indices.  It isn't remarkable for it to take
much longer to generate indices than it does to COPY data into the
table; COPY is mighty efficient.

In short, this isn't a mistake, and if we did as you suggest, it would
be expected to take considerably longer than 4 hours to load the data
into that table.
-- 
let name="cbbrowne" and tld="linuxdatabases.info" in String.concat "@" [name;tld];;
http://cbbrowne.com/info/linux.html
Rules of the Evil Overlord #144. "I will order my guards to stand in a
line  when they shoot  at the  hero so  he cannot  duck and  have them
accidentally shoot each  other. Also, I will order  some to aim above,
below, and to the sides so he cannot jump out of the way."
<http://www.eviloverlord.com/>



More information about the Slony1-general mailing list