Re: Sequence Access Method WIP

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: Simon Riggs <simon(at)2ndQuadrant(dot)com>
Cc: Andres Freund <andres(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Sequence Access Method WIP
Date: 2013-11-25 09:01:29
Message-ID: 529311E9.8050905@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 24.11.2013 19:23, Simon Riggs wrote:
> On 18 November 2013 07:06, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> wrote:
>> On 18.11.2013 13:48, Simon Riggs wrote:
>>>
>>> On 18 November 2013 07:50, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
>>> wrote:
>>>
>>>> It doesn't go far enough, it's still too *low*-level. The sequence AM
>>>> implementation shouldn't need to have direct access to the buffer page at
>>>> all.
>>>
>>>> I don't think the sequence AM should be in control of 'cached'. The
>>>> caching
>>>> is done outside the AM. And log_cnt probably should be passed to the
>>>> _alloc
>>>> function directly as an argument, ie. the server code asks the AM to
>>>> allocate N new values in one call.
>>>
>>> I can't see what the rationale of your arguments is. All index Ams
>>> write WAL and control buffer locking etc..
>>
>> Index AM's are completely responsible for the on-disk structure, while with
>> the proposed API, both the AM and the backend are intimately aware of the
>> on-disk representation. Such a shared responsibility is not a good thing in
>> an API. I would also be fine with going 100% to the index AM direction, and
>> remove all knowledge of the on-disk layout from the backend code and move it
>> into the AMs. Then you could actually implement the discussed "store all
>> sequences in a single file" change by writing a new sequence AM for it.
>
> I think the way to resolve this is to do both of these things, i.e. a
> two level API
>
> 1. Implement SeqAM API at the most generic level. Add a nextval() call
> as well as alloc()
>
> 2. Also implement the proposed changes to alloc()

The proposed changes to alloc() would still suffer from all the problems
that I complained about. Adding a new API alongside doesn't help with that.

- Heikki

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dimitri Fontaine 2013-11-25 09:17:12 Re: Status of FDW pushdowns
Previous Message Christian Ullrich 2013-11-25 08:42:54 Re: PostgreSQL Service on Windows does not start. ~ "is not a valid Win32 application"