Fwd: GSoC 2017 Proposal for "Explicitly support predicate locks in index access methods besides btree"

From: anant khandelwal <anantbietec(at)gmail(dot)com>
To: Kevin Grittner <kgrittn(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Fwd: GSoC 2017 Proposal for "Explicitly support predicate locks in index access methods besides btree"
Date: 2017-04-03 17:48:16
Message-ID: CAD=a8SDotUoLZt+_fCndSAi=rq2XcGye8Bp-gvFMrikNfvcctw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

---------- Forwarded message ----------
From: anant khandelwal <anantbietec(at)gmail(dot)com>
Date: Mon, Apr 3, 2017 at 11:13 PM
Subject: Re: [HACKERS] GSoC 2017 Proposal for "Explicitly support predicate
locks in index access methods besides btree"
To: Kevin Grittner <kgrittn(at)gmail(dot)com>

First ,I have read from this

https://github.com/postgres/postgres/blob/master/src/
backend/storage/lmgr/README-SSI ------Other Index AM implementation

then i understand that at https://github.com/postgres/postgres/tree/master/
src/backend/access/gist--------

gistplacetopage is the workhorse function that performs one step of the
insertion. If the tuple fits, it inserts it to the given page, otherwise it
splits the page, and constructs the new downlink tuples for the split
pages. The caller must then call gistplacetopage() on the parent page to
insert the downlink tuples.

then i look at how btree does that it does that by having a function -----

https://github.com/postgres/postgres/blob/master/src/backend/access/nbtree/
nbtinsert.c

PredicateLockPageSplit(rel,BufferGetBlockNumber(buf),
BufferGetBlockNumber(rbuf));

then i find how PredicateLockPage is called from --------https://github.com/
postgres/postgres/blob/master/src/backend/access/nbtree/nbtsearch.c

then i find how CheckPredicateLocking() is locking is implemented -----

https://github.com/postgres/postgres/blob/master/src/backend/access/nbtree/
nbtinsert.c

The only conflict predicate locking cares about for indexes is when
* an index tuple insert conflicts with an existing lock. Since the
* actual location of the insert is hard to predict because of the
* random search used to prevent O(N^2) performance when there are
* many duplicate entries, we can just use the "first valid" page.

then gistScanPage() ----- https://github.com/postgres/postgres/blob/master/
src/backend/access/gist/gistget.c

Scan all items on the GiST index page identified by *pageItem, and insert
* them into the queue (or directly to output areas)
So we need to put the predicateLockPage() there

I think i have provided sufficient proof for the Index AM gist if you want
i can give proof for all other ones also.

Thanks
Anant

On Mon, Apr 3, 2017 at 10:03 PM, Kevin Grittner <kgrittn(at)gmail(dot)com> wrote:

> On Sat, Apr 1, 2017 at 9:03 AM, anant khandelwal <anantbietec(at)gmail(dot)com>
> wrote:
>
> > My name is Anant Khandelwal currently i am pursuing masters from IIT -
> Delhi
> > and previously i am a software engineer.
> >
> > I am particularly interested in working on the project "Explicitly
> support
> > predicate locks in index access methods besides b tree".
>
> Anant,
>
> Your post was mostly identical (as in copy/paste level identical) to a
> post by Shubham Barai four days earlier.
>
> https://www.postgresql.org/message-id/CALxAEPvRcJzz0SJ2KB_gh
> aTRrdEj08rygUrFtr5NUQxc6uTeuQ(at)mail(dot)gmail(dot)com
>
> https://www.postgresql.org/message-id/CAD=a8SBZWGD4U-TASJP0O
> wTPiLEffHoz5O5eV0Um6digqBVvfg(at)mail(dot)gmail(dot)com
>
> Unless you can produce convincing proof to the contrary, your proposal
> will be disqualified because of plagiarism.
>
> --
> Kevin Grittner
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2017-04-03 17:52:12 Re: parallel bitmapscan isn't exercised in regression tests
Previous Message Andres Freund 2017-04-03 17:43:54 Re: Rewriting the test of pg_upgrade as a TAP test