Re: Relation extension scalability
От | Dilip Kumar |
---|---|
Тема | Re: Relation extension scalability |
Дата | |
Msg-id | CAFiTN-sH1PmdEwn=Xut0ne6Ux+fczb5jmDMpFSUhxP8jUjM9rg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Relation extension scalability (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: Relation extension scalability
|
Список | pgsql-hackers |
On Thu, Mar 24, 2016 at 6:13 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:
1.+GetPageWithFreeSpaceUsingOldPage(Relation rel, BlockNumber oldPage,+ Size spaceNeeded){..+ /*+ * If fsm_set_and_search found a suitable new block, return that.+ * Otherwise, search as usual.+ */..}In the above comment, you are referring wrong function.
Fixed
2.+static int+fsm_search_from_addr(Relation rel, FSMAddress addr, uint8 minValue)+{+ Buffer buf;+ int newslot = -1;++ buf = fsm_readbuf(rel, addr, true);+ LockBuffer(buf, BUFFER_LOCK_SHARE);++ if (minValue != 0)+ {+ /* Search while we still hold the lock */+ newslot = fsm_search_avail(buf, minValue,+ addr.level == FSM_BOTTOM_LEVEL,+ false);In this new API, I don't understand why we need minValue != 0 check, basically if user of API doesn't want to search for space > 0, then what is the need of calling this API? I think this API should use Assert for minValue!=0 unless you see reason for not doing so.
Agree, it should be assert.
>
> GetNearestPageWithFreeSpace? (although not sure that's accurate description, maybe Nearby would be better)
>
Better than what is used in patch.Yet another possibility could be to call it as GetPageWithFreeSpaceExtended and call it from GetPageWithFreeSpace with value of oldPage as InvalidBlockNumber.
Yes I like this.. Changed the same.
Вложения
В списке pgsql-hackers по дате отправления: