Three Days of Bad Rows

A pricing bug shipped three days ago has been writing wrong discount values into a table that is still taking normal traffic. Point-in-time recovery covers the whole window. What is the safest way to fix the data?

A

Replay the archived write-ahead log over production while filtering out the transactions produced by the buggy code path

B

Restore a separate copy to a timestamp just before the bug shipped, then reconcile the affected rows into production

C

Roll the production database back to the timestamp just before the bug shipped and resume traffic from there

D

Promote a read replica that was provisioned before the deploy, since it never applied any of the bad writes