Re: [HACKERS] GSoC 2017: weekly progress reports (week 4) and patchfor hash index
От | Amit Kapila |
---|---|
Тема | Re: [HACKERS] GSoC 2017: weekly progress reports (week 4) and patchfor hash index |
Дата | |
Msg-id | CAA4eK1JKh8ph+eUmJqRZsM-wX_p1XaiidM1hAhG=KG8iY5KAHA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] GSoC 2017: weekly progress reports (week 4) and patchfor hash index (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: [HACKERS] GSoC 2017: weekly progress reports (week 4) and patchfor hash index
|
Список | pgsql-hackers |
On Mon, Mar 12, 2018 at 7:18 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Mon, Mar 12, 2018 at 12:18 AM, Alexander Korotkov > <a.korotkov@postgrespro.ru> wrote: >> On Sat, Mar 3, 2018 at 2:53 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: >>> >>> On Fri, Mar 2, 2018 at 9:27 AM, Thomas Munro >>> > If that is indeed a race, could it be fixed by >>> > calling PredicateLockPageSplit() at the start of _hash_splitbucket() >>> > instead? >>> > >>> >>> Yes, but I think it would be better if we call this once we are sure >>> that at least one tuple from the old bucket has been transferred >>> (consider if all tuples in the old bucket are dead). >> >> >> Is it really fair? For example, predicate lock can be held by session >> which queried some key, but didn't find any corresponding tuple. >> If we imagine this key should be in new bucket while all existing >> tuples would be left in old bucket. As I get, in this case no locks >> would be transferred since no tuples were moved to the new bucket. >> So, further insertion to the new bucket wouldn't conflict with session, >> which looked for non-existing key, while it should. Do it make sense? >> > > Valid point, I think on split we should always transfer locks from old > bucket to new bucket. > Attached patch changes it as per above suggestion. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: