On Mon, Mar 28, 2016 at 1:55 AM, Robert Haas <[email protected]> wrote:
> > One is like below-->
> > -------------------------
> > In AddExtraBlock
> > {
> > I add page to FSM one by one like v13 does.
> > then update the full FSM tree up till root
> > }
>
> Not following this. Did you attach this version?
>
No I did not attached this.. During rough experiment, tried this, did not
produced any patch, I will send this.
> > Results:
> > ----------
> > 1. With this performance is little less than v14 but the problem of extra
> > relation size is solved.
> > 2. With this we can conclude that extra size of relation in v14 is
> because
> > some while extending the pages, its not immediately available and at end
> > some of the pages are left unused.
>
> I agree with that conclusion. I'm not quite sure where that leaves
> us, though. We can go back to v13, but why isn't that producing extra
> pages? It seems like it should: whenever a bulk extend rolls over to
> a new FSM page, concurrent backends will search either the old or the
> new one but not both.
>
> Maybe we could do this - not sure if it's what you were suggesting above:
>
> 1. Add the pages one at a time, and do RecordPageWithFreeSpace after each
> one.
> 2. After inserting them all, go back and update the upper levels of
> the FSM tree up the root.
>
Yes same, I wanted to explained the same above.
> Another idea is:
>
> If ConditionalLockRelationForExtension fails to get the lock
> immediately, search the last *two* pages of the FSM for a free page.
>
> Just brainstorming here.
I think this is better option, Since we will search last two pages of FSM
tree, then no need to update the upper level of the FSM tree. Right ?
I will test and post the result with this option.
--
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com