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

Started by Dhaval Shahalmost 19 years ago4 messagesgeneral
Jump to latest
#1Dhaval Shah
dhaval.shah.m@gmail.com

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

#2Richard Huxton
dev@archonet.com
In reply to: Dhaval Shah (#1)
Re: WAL file internals and why a 64 bit will not work on a 32 bit

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

#3Dhaval Shah
dhaval.shah.m@gmail.com
In reply to: Richard Huxton (#2)
Re: WAL file internals and why a 64 bit will not work on a 32 bit

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dhaval Shah (#3)
Re: WAL file internals and why a 64 bit will not work on a 32 bit

"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