Re: Write Ahead Logging for Hash Indexes
Ashutosh Sharma <ashu.coek88@gmail.com>
From: Ashutosh Sharma <ashu.coek88@gmail.com>
To: Jesper Pedersen <jesper.pedersen@redhat.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Jeff Janes <jeff.janes@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-09-14T09:15:35Z
Lists: pgsql-hackers
Hi All, I am getting following error when running the test script shared by Jeff -[1] . The error is observed upon executing the test script for around 3-4 hrs. 57869 INSERT XX000 2016-09-14 07:58:01.211 IST:ERROR: lock buffer_content 1 is not held 57869 INSERT XX000 2016-09-14 07:58:01.211 IST:STATEMENT: insert into foo (index) select $1 from generate_series(1,10000) 124388 INSERT XX000 2016-09-14 11:24:13.593 IST:ERROR: lock buffer_content 10 is not held 124388 INSERT XX000 2016-09-14 11:24:13.593 IST:STATEMENT: insert into foo (index) select $1 from generate_series(1,10000) 124381 INSERT XX000 2016-09-14 11:24:13.594 IST:ERROR: lock buffer_content 10 is not held 124381 INSERT XX000 2016-09-14 11:24:13.594 IST:STATEMENT: insert into foo (index) select $1 from generate_series(1,10000) [1]- https://www.postgresql.org/message-id/CAMkU%3D1xRt8jBBB7g_7K41W00%3Dbr9UrxMVn_rhWhKPLaHfEdM5A%40mail.gmail.com Please note that i am performing the test on latest patch for concurrent hash index and WAL log in hash index shared by Amit yesterday. With Regards, Ashutosh Sharma EnterpriseDB: http://www.enterprisedb.com On Wed, Sep 14, 2016 at 12:04 AM, Jesper Pedersen <jesper.pedersen@redhat.com> wrote: > On 09/13/2016 07:41 AM, Amit Kapila wrote: >>> >>> 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. >> > > I think it is better now. > >>> 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. >> > > I meant there is an extra ';' on the "if" statements: > > + if (BufferIsValid(bukcetbuf)); <-- > > in hash_xlog_move_page_contents, hash_xlog_squeeze_page and > hash_xlog_delete. > > > Best regards, > Jesper > > > > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers
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