Re: Write Ahead Logging for Hash Indexes
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Jesper Pedersen <jesper.pedersen@redhat.com>
Cc: Jeff Janes <jeff.janes@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-09-13T11:41:53Z
Lists: pgsql-hackers
Attachments
- wal_hash_index_v3.patch (application/octet-stream) patch v3
On Mon, Sep 12, 2016 at 10:24 PM, Jesper Pedersen <jesper.pedersen@redhat.com> wrote: > > Some initial feedback. > Thanks for looking into patch. > README: > +in_complete split flag. The reader algorithm works correctly, as it will > scan > > What flag ? > in-complete-split flag which indicates that split has to be finished for that particular bucket. The value of these flags are LH_BUCKET_NEW_PAGE_SPLIT and LH_BUCKET_OLD_PAGE_SPLIT for new and old bucket respectively. It is set in hasho_flag in special area of page. I have slightly expanded the definition in README, but not sure if it is good idea to mention flags defined in hash.h. Let me know, if still it is unclear or you want some thing additional to be added in README. > hashxlog.c: > > hash_xlog_move_page_contents > hash_xlog_squeeze_page > > Both have "bukcetbuf" (-> "bucketbuf"), and > > + if (BufferIsValid(bukcetbuf)); > > -> > > + if (BufferIsValid(bucketbuf)) > > and indent following line: > > LockBufferForCleanup(bukcetbuf); > > hash_xlog_delete > > has the "if" issue too. > Fixed all the above cosmetic issues. > hash.h: > > Move the XLog related content to hash_xlog.h > Moved and renamed hashxlog.c to hash_xlog.c to match the name with corresponding .h file. Note - This patch is to be applied on top of concurrent hash index v6 version [1]. Jeff, use this version of patch for further review and test. [1] - https://www.postgresql.org/message-id/CAA4eK1%2BERbP%2B7mdKkAhJZWQ_dTdkocbpt7LSWFwCQvUHBXzkmA%40mail.gmail.com -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Add a regression test for snapshot too old with hash indexes.
- 42bdaebf1618 10.0 landed
-
hash: Add write-ahead logging support.
- c11453ce0aea 10.0 landed
-
Improve coding in _hash_addovflpage.
- e898437460f5 10.0 cited
-
Remove _hash_wrtbuf() in favor of calling MarkBufferDirty().
- 25216c989384 10.0 cited
-
Improve hash index bucket split behavior.
- 6d46f4783efe 10.0 cited