Re: Hash Indexes

Поиск
Список
Период
Сортировка
От Mithun Cy
Тема Re: Hash Indexes
Дата
Msg-id CAD__OujhppJoudzG_+V7coPYWrM3CZO8xhtaiZfzW93xySaLBQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Hash Indexes  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: Hash Indexes  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On Thu, Jun 16, 2016 at 12:58 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:

I have a question regarding code changes in _hash_first.

+        /*
+         * Conditionally get the lock on primary bucket page for search while
+        * holding lock on meta page. If we have to wait, then release the meta
+         * page lock and retry it in a hard way.
+         */
+        bucket = _hash_hashkey2bucket(hashkey,
+                                                                  metap->hashm_maxbucket,
+                                                                  metap->hashm_highmask,
+                                                                  metap->hashm_lowmask);
+
+        blkno = BUCKET_TO_BLKNO(metap, bucket);
+
+        /* Fetch the primary bucket page for the bucket */
+        buf = ReadBuffer(rel, blkno);
+        if (!ConditionalLockBufferShared(buf))

Here we try to take lock on bucket page but I think if successful we do not recheck whether any split happened before taking lock. Is this not necessary now?

Also  below "if" is always true as we enter here only when outer "if (retry)" is true.
+                        if (retry)
+                        {
+                                if (oldblkno == blkno)
+                                        break;
+                                _hash_relbuf(rel, buf);
+                        }

--
Thanks and Regards
Mithun C Y

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: primary_conninfo missing from pg_stat_wal_receiver
Следующее
От: Amit Langote
Дата:
Сообщение: Re: Postgres_fdw join pushdown - wrong results with whole-row reference