Обсуждение: WAL file internals and why a 64 bit will not work on a 32 bit

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

WAL file internals and why a 64 bit will not work on a 32 bit

От
"Dhaval Shah"
Дата:
I do know that WAL files taken from a 64 bit OS will not work on a 32
bit OS. However I have to prepare a technical answer to this.

That is, questions like - why a WAL file from 64 bit will not work in
32 bit. Also does the WAL file differ for same architecture but
different kind of partitions?

Regards
Dhaval

Re: WAL file internals and why a 64 bit will not work on a 32 bit

От
Richard Huxton
Дата:
Dhaval Shah wrote:
> I do know that WAL files taken from a 64 bit OS will not work on a 32
> bit OS. However I have to prepare a technical answer to this.
>
> That is, questions like - why a WAL file from 64 bit will not work in
> 32 bit. Also does the WAL file differ for same architecture but
> different kind of partitions?

The WAL files track on-disk changes. That is, they represent the bytes
changed in individual blocks. So - both machines will need to have
*identical* on-disk formats for the WAL transfer to work.

It can be something as small as a configuration option chosen when
compiling PostgreSQL. For example - you can change between
floating-point and integer date-times at ./configure time and if you use
different settings on two identical machines then the WAL files will be
incompatible.

The obvious incompatibility I'd expect in a 32 to 64-bit changeover
would be alignment of data fields to 32 or 64-bit boundaries. I've not
checked, but I'd be surprised if there wasn't some difference there.

--
   Richard Huxton
   Archonet Ltd

Re: WAL file internals and why a 64 bit will not work on a 32 bit

От
"Dhaval Shah"
Дата:
Thanks.

If I partition my disk differently between the primary and standby
will that be a problem?

Regards
Dhaval

On 5/10/07, Richard Huxton <dev@archonet.com> wrote:
> Dhaval Shah wrote:
> > I do know that WAL files taken from a 64 bit OS will not work on a 32
> > bit OS. However I have to prepare a technical answer to this.
> >
> > That is, questions like - why a WAL file from 64 bit will not work in
> > 32 bit. Also does the WAL file differ for same architecture but
> > different kind of partitions?
>
> The WAL files track on-disk changes. That is, they represent the bytes
> changed in individual blocks. So - both machines will need to have
> *identical* on-disk formats for the WAL transfer to work.
>
> It can be something as small as a configuration option chosen when
> compiling PostgreSQL. For example - you can change between
> floating-point and integer date-times at ./configure time and if you use
> different settings on two identical machines then the WAL files will be
> incompatible.
>
> The obvious incompatibility I'd expect in a 32 to 64-bit changeover
> would be alignment of data fields to 32 or 64-bit boundaries. I've not
> checked, but I'd be surprised if there wasn't some difference there.
>
> --
>    Richard Huxton
>    Archonet Ltd
>


--
Dhaval Shah

Re: WAL file internals and why a 64 bit will not work on a 32 bit

От
Tom Lane
Дата:
"Dhaval Shah" <dhaval.shah.m@gmail.com> writes:
> If I partition my disk differently between the primary and standby
> will that be a problem?

Only if the slave runs out of space in a place where the master doesn't.

            regards, tom lane