>See 
>https://postgr.es/m/CA%2BTgmoY4j%2Bp7JY69ry8GpOSMMdZNYqU6dtiONPrcxaVG%2BSPByg%40mail.gmail.com
>In more detail:
>1. there is a transaction open on the primary server (server A)
>2. the transaction inserts a row
>3. a checkpoint happens
>4. the transaction commits
>5. the session reads the row it just inserted, which sets hint bits on the row
>that mark it as generally visible
>Now the standby (server B) promoted between steps 3 and 4, which means that on 
>server B
>(the new primary), the transaction didn't commit and the row is invisible.
>Now if we run pg_rewind on server A, it examines the local WAL to find all the 
>blocks
>that were modified after the last common checkpoint (which happened in step 3 
>above).
>If neither wal_log_hints = on nor checksums are enabled (which effectively 
>forces
>WAL-logging hint bit changes), there is no track of step 5 in the WAL, and 
>pg_rewind
>fails to copy that block from server B.  The consequence is that after 
>pg_rewind, the
>row is *still* visible on server A because of the hint bits.  That is data 
>corruption.
>Therefore, the requirement cannot be relaxed.

Yes I known the step and I have check the mail link. As described in the top 
mail we can find some way to solve the problem so that pg_rewind can run 
without wal_log_hints and data_checksums. 

Currently pg_rewind search wal start at checkpoint lsn or redo lsn, I mean to 
search more wal to cover whole releated transactions so any releated pages with 
copyed, and we never warried about hint bits issue. 

Anyway, I wish my mail in right format. Because my last mail reply to Michael 
out of order and  miss from this thread. 
---Movead Li

Reply via email to