On 2021-Aug-17, Bossart, Nathan wrote:
> On 8/16/21, 5:09 PM, "alvherre@alvh.no-ip.org" <alvherre@alvh.no-ip.org> wrote:
> > The reason for the latter is that I suspect the segment boundary map
> > will also have a use to fix the streaming replication issue I mentioned
> > earlier in the thread. This also makes me think that we'll want the wal
> > record *start* address to be in the hash table too, not just its *end*
> > address. So we'll use the start-1 as position to send, rather than the
> > end-of-segment when GetFlushRecPtr() returns that.
>
> I've been thinking about the next steps for this one, too. ISTM we'll
> need to basically assume that the flush pointer jumps along record
> boundaries except for the cross-segment records. I don't know if that
> is the safest assumption, but I think the alternative involves
> recording every record boundary in the map.
I'm not sure I understand your idea correctly. Perhaps another solution
is to assume that the flush pointer jumps along record boundaries
*including* for cross-segment records. The problem stems precisely from
the fact that we set the flush pointer at segment boundaries, even when
they aren't record boundary.
--
Álvaro Herrera 39°49'30"S 73°17'W — https://www.EnterpriseDB.com/
Bob [Floyd] used to say that he was planning to get a Ph.D. by the "green
stamp method," namely by saving envelopes addressed to him as 'Dr. Floyd'.
After collecting 500 such letters, he mused, a university somewhere in
Arizona would probably grant him a degree. (Don Knuth)