On 05/12/2014 12:30 AM, Andres Freund wrote:
>> >So if I were to take Andres'
>> >complaint seriously at all, I'd be thinking in terms of "do we need to
>> >widen BlockNumber to int64?", not "how do we make this print as
>> >unsigned?". But I doubt such a proposal would fly, because of the
>> >negative impact on index sizes.
> Yea, I am not wild for that either. I guess migrating to a postgres with
> a larger blocksize is the next step.
A larger block size won't buy you very much time either.
We could steal some bits from the OffsetNumber portion of an
ItemPointer. If we assume the max. block size of 32kb, and that each
Item takes at least 16 bytes, you only need 11 bits for the offset
number. That leaves 5 bits unused, and if we use them to expand the
block number to 37 bits in total, that's enough for 1 PB with the
default 8k block size.
But I concur that in practice, if you're dealing with 16TB tables, it's
time to partition.
- Heikki