1. After a certain point, consecutive GIN index splits cause a problem.
The new RHS block numbers are consecutive from 111780+
That's newly created page. Splitted page might have any number
2. The incomplete splits stay around indefinitely after creation and we
aren't trying to remove the wrong split at any point. We're either never
creating an xlog record, or we are ignoring it in recovery, or we are
somehow making multiple entries then not removing all of them.
Agreed
3. The root seems to move, which isn't what I personally was expecting
to see. It seems root refers to the highest parent involved in the
split.
root in this context means parent of splitted page. Actually, there is a lot of
B-tree in GIN, see http://www.sigaev.ru/gin/GinStructure.pdf
4. We're writing lots of redo in between failed page splits. So *almost*
everything is working correctly.
5. This starts to happen when we have very large indexes. This may be
coincidental but the first relation file is fairly full (900+ MB).
Yes. It seems to me that conditions of error are very rare and B-tree over
ItemPointers (second level of GIN) has a big capacity, 1000+ items per page. So,
splits occur rather rare.
--
Teodor Sigaev E-mail: teodor@xxxxxxxxx
WWW: http://www.sigaev.ru/