Обсуждение: Implementing an Index Access Method in PG 8.4

Поиск
Список
Период
Сортировка

Implementing an Index Access Method in PG 8.4

От
Carsten Kropf
Дата:
Hi *,
I have a question according to the implementation of a new index access method in Postgres. Is it necessary to
implementa new resource manager for XLog when I am trying to achieve a stable new index access method? 
I actually don't know how to register a new ressource manager (if I would have to). Is there a way to bypass this using
somekind of "generic" resource manager that needs some kind of standardized input values, or do I have to do this
manually?
Actually my main problem here is, that I am just doing the implementation of some examples of index structures, just
basicthings to test what is to be done when implementing the stuff. However I found, that all the currently available
structuresin the source distribution do have their own recovery functionality using own resource managers. Thus I
thoughtthat I will probably have to add support for this, too, but I don't know exactly if it is really necessary (and,
asI already mentioned, how this would be possible). 

Best regards,
    Carsten Kropf

Re: Implementing an Index Access Method in PG 8.4

От
Greg Stark
Дата:
On Tue, Feb 23, 2010 at 10:00 AM, Carsten Kropf <ckropf2@fh-hof.de> wrote:
> I have a question according to the implementation of a new index access method in Postgres. Is it necessary to
implementa new resource manager for XLog when I am trying to achieve a stable new index access method? 
>

It's not currently possible to register a new recovery manager for a
module built outside the Postgres source tree. What's happened in the
past is new index methods weren't recoverable (after a database crash
indexes had to be rebuilt) but when they were integrated into the
Postgres source tree adding recoverability was a major piece of that
integration.

There's been some talk about allowing modules to register new recovery
managers but in the past it gets stuck on where to store information
about the recovery manager since the database tables aren't available.
And on how to guarantee that the backup database and the original
database have the same idea of which recovery manager is which.

--
greg

Re: Implementing an Index Access Method in PG 8.4

От
Carsten Kropf
Дата:
Ok, thanks so far.
The main question for me now is how to support all the XLog stuff in my own access method. I cannot set it up using the
WALrecovery procedure. So, what do I have to insert when doing a XLogInsert for example? I don't know which values to
putin there or doesn't it just matter, based on the fact that no recovery will be done at all? How do I register to the
XLogcomponent in order to achieve some message that an index recreation has to be done by the user? 
Actually, I have looked at the code provided by the backend index methods (like GiST or btree) and copied some of the
codeand adopted it to my wishes. So, now, I am totally confused how to set up a page properly without knowing how to
putdata in using XLog components. Could anybody please give me a hint how to achieve this? 
Am I able to use the XLog stuff at all?

Best regards
    Carsten Kropf
Am 23.02.2010 um 11:21 schrieb Greg Stark:

> On Tue, Feb 23, 2010 at 10:00 AM, Carsten Kropf <ckropf2@fh-hof.de> wrote:
>> I have a question according to the implementation of a new index access method in Postgres. Is it necessary to
implementa new resource manager for XLog when I am trying to achieve a stable new index access method? 
>>
>
> It's not currently possible to register a new recovery manager for a
> module built outside the Postgres source tree. What's happened in the
> past is new index methods weren't recoverable (after a database crash
> indexes had to be rebuilt) but when they were integrated into the
> Postgres source tree adding recoverability was a major piece of that
> integration.
>
> There's been some talk about allowing modules to register new recovery
> managers but in the past it gets stuck on where to store information
> about the recovery manager since the database tables aren't available.
> And on how to guarantee that the backup database and the original
> database have the same idea of which recovery manager is which.
>
> --
> greg
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general